Стратегии и роботы > Как узнать количество отложников по инструменту?

Обсуждение, описание стратегий и роботов, идеи для стратегий
Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

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

Непрочитанное сообщение evge » 24 июл 2019, 12:36

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 КБ) 14271 просмотр


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

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

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

var orders = GetActiveOrders();
var Quantity = 0;
if (orders.Count >=2) Quantity = orders[1].Quantity;
никогда такого не было и вот опять

Balalayka
Сообщения: 38
Зарегистрирован: 21 сен 2018, 10:57
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Непрочитанное сообщение Balalayka » 24 июл 2019, 18:25

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

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

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


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

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

Sergeoq
Сообщения: 5
Зарегистрирован: 25 авг 2019, 13:30
Благодарил (а): 2 раза

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

Непрочитанное сообщение Sergeoq » 25 авг 2019, 13:37

Подскажите пожалуйста, как правильно написать равенство?

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

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

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

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

Непрочитанное сообщение evge » 25 авг 2019, 20:00

Попробуйте так == "EnterLongLimit"
никогда такого не было и вот опять

Sergeoq
Сообщения: 5
Зарегистрирован: 25 авг 2019, 13:30
Благодарил (а): 2 раза

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

Непрочитанное сообщение Sergeoq » 25 авг 2019, 20:41

evge писал(а):Попробуйте так == "EnterLongLimit"

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

Sergeoq
Сообщения: 5
Зарегистрирован: 25 авг 2019, 13:30
Благодарил (а): 2 раза

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

Непрочитанное сообщение Sergeoq » 26 авг 2019, 11:08

Разобрался, вот так работает!

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

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


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 10 гостей