Страница 3 из 3

Re: Как узнать количество отложников по инструменту?

Добавлено: 24 июл 2019, 12:36
evge
evge писал(а):Если я объявляю [х] равным 1, что это будет значит в рамках вышеуказанного кода?


Код: Выделить всё

var orders = GetActiveOrders();
var Quantity = orders[1].Quantity;

получить Quantity второго ордера если он есть, а если его нет, то получить ошибку:

index-out-of-range-01.png
index-out-of-range-01.png (6.07 КБ) 14397 просмотров


Поэтому прежде чем обратится по конкретному индексу за значением, необходимо убедится что там это значение имеется, требуемый индекс в пределах всего размера коллекции (orders.Count):

Если мы ожидаем не менее 2х ордеров, то так:

Код: Выделить всё

var orders = GetActiveOrders();
var Quantity = 0;
if (orders.Count >=2) Quantity = orders[1].Quantity;

Re: Как узнать количество отложников по инструменту?

Добавлено: 24 июл 2019, 18:25
Balalayka
evge писал(а):
evge писал(а):Если мы ожидаем не менее 2х ордеров, то так:

Код: Выделить всё

var orders = GetActiveOrders();
var Quantity = 0;
if (orders.Count >=2) Quantity = orders[1].Quantity;


Кажется oxi ранее писал, что у робота не может быть более двух активных ордеров, так что, наверно это единственно верный вариант)
orders[0].Quantity; это соответственно получение данных по первому ордеру?
Какой первый, а какой второй определяется, верно, хронологически?

P.S. Евгений спасибо за разъяснения, сам бы я точно до этого не дошел

Re: Как узнать количество отложников по инструменту?

Добавлено: 25 авг 2019, 13:37
Sergeoq
Подскажите пожалуйста, как правильно написать равенство?

Код: Выделить всё

if (GetActiveOrders ().Count > 0) {
    if (GetActiveOrders () [0].AvailableActions == EnterLongLimit) {...}
}

Re: Как узнать количество отложников по инструменту?

Добавлено: 25 авг 2019, 20:00
evge
Попробуйте так == "EnterLongLimit"

Re: Как узнать количество отложников по инструменту?

Добавлено: 25 авг 2019, 20:41
Sergeoq
evge писал(а):Попробуйте так == "EnterLongLimit"

Так тоже ошибка...

Re: Как узнать количество отложников по инструменту?

Добавлено: 26 авг 2019, 11:08
Sergeoq
Разобрался, вот так работает!

Код: Выделить всё

if (GetActiveOrders ().Count > 0) {
    if (GetActiveOrders () [0].AvailableActions.ToString () == "EnterLongLimit") {...}
}