Страница 2 из 3
Re: Как узнать количество отложников по инструменту?
Добавлено: 22 июл 2019, 15:01
Balalayka
evge писал(а):Так выше Дмитрий (oxi) это и описал.
Ну там чуть изменить и будет в переменных.
Код: Выделить всё
var orders = GetActiveOrders();
var count = orders.Count;
for (int i = 0; i < count; i++)
{
var Quantity = orders[i].Quantity;
var OrderDirection = orders[i].OrderDirection;
}
Евгений спасибо!
Теперь буду знать, что так можно
А подобная схема справедлива в отношении всех подобных функций? Например, GetFinInfo() GetPosition() ?
Re: Как узнать количество отложников по инструменту?
Добавлено: 22 июл 2019, 15:10
evge
var position = GetPosition();
position.Price – учетная цена
position.LongPosition – позиция Long (положительная величина)
position.ShortPosition – позиция Short (положительная величина)
position.Position – позиция по инструменту (положительная – позиция long, отрицательная – short)
аналогично и в FinInfo();
GetFinInfo() – функция возврата информации по инструменту, используемому в стратегии
• Lot– Размер торгового лота, штук (аналог LotSize()). Тип int
• PriceStep – Текущая стоимость шага цены (аналог GetPriceStep()). Тип double
• PriceStepCost – Текущая стоимость шага цены. Тип double
• UpPrice – Верхний предельный уровень цены заявки. Тип double
• DownPrice – Нижний предельный уровень цены заявки. Тип double
• GtBuy – Гарантийные требования биржи для открытия длинной позиции, руб/шт. Тип double
• GtSell – Гарантийные требования биржи для открытия «короткой» позиции, руб/шт. Тип double
var I = GetFinInfo();
var UpPrice = I.UpPrice;
var DownPrice = I.DownPrice;
Re: Как узнать количество отложников по инструменту?
Добавлено: 23 июл 2019, 10:50
Balalayka
Евгений добрый день!
Код: Выделить всё
var orders = GetActiveOrders();
var count = orders.Count;
for (int i = 0; i < count; i++)
{
var Quantity = orders[i].Quantity;
}
if ( (CurrentPosition() == 1) && (Quantity == 0) )
{
StopLoss(AverPrice() + P5 * GetPriceStep(), SignalPriceType.Price);
}
Имя Quantity отсутствует в контексте. Где допускаю ошибку?
Re: Как узнать количество отложников по инструменту?
Добавлено: 23 июл 2019, 12:05
evge
Приветствую!
За циклом надо объявлять.
Переменную объявленную в цикле не будет видно за его пределами.
А вообще не понятен смысл такого способа.
В итоге в вашем Quantity будет значение из последнего ордера.
Какой смысл перебирать тогда в цикле?
Re: Как узнать количество отложников по инструменту?
Добавлено: 23 июл 2019, 13:18
Balalayka
evge писал(а):За циклом надо объявлять.
Переменную объявленную в цикле не будет видно за его пределами.
Понял
evge писал(а):
А вообще не понятен смысл такого способа.
В итоге в вашем Quantity будет значение из последнего ордера.
Какой смысл перебирать тогда в цикле?
Я честно говоря и не знаю нужен здесь цикл или нет
Просто именно такой способ описан и в документации и ранее в теме.
Мне лишь нужно знать, существует ли открытый ордер (стоплос), зарегистрированный системой, на определенном этапе исполнения кода робота, в частности в данном примере, когда текущая позиция равна одному лоту.
Евгений, если не затруднит, покажите пример как сделать это оптимальным способом?
Re: Как узнать количество отложников по инструменту?
Добавлено: 24 июл 2019, 09:09
Balalayka
evge писал(а):var position = GetPosition();
position.Price – учетная цена
position.LongPosition – позиция Long (положительная величина)
position.ShortPosition – позиция Short (положительная величина)
position.Position – позиция по инструменту (положительная – позиция long, отрицательная – short)
аналогично и в FinInfo();
GetFinInfo() – функция возврата информации по инструменту, используемому в стратегии
• Lot– Размер торгового лота, штук (аналог LotSize()). Тип int
• PriceStep – Текущая стоимость шага цены (аналог GetPriceStep()). Тип double
• PriceStepCost – Текущая стоимость шага цены. Тип double
• UpPrice – Верхний предельный уровень цены заявки. Тип double
• DownPrice – Нижний предельный уровень цены заявки. Тип double
• GtBuy – Гарантийные требования биржи для открытия длинной позиции, руб/шт. Тип double
• GtSell – Гарантийные требования биржи для открытия «короткой» позиции, руб/шт. Тип double
var I = GetFinInfo();
var UpPrice = I.UpPrice;
var DownPrice = I.DownPrice;
На основе вашего примера
Код: Выделить всё
var orders = GetActiveOrders();
var Quantity = orders.Quantity;
Не удалось найти метод расширения Quantity
Re: Как узнать количество отложников по инструменту?
Добавлено: 24 июл 2019, 11:34
evge
var orders = GetActiveOrders();
var Quantity = orders[x].Quantity;
где x - индекс от 0 до orders.Count.
Re: Как узнать количество отложников по инструменту?
Добавлено: 24 июл 2019, 12:06
Balalayka
evge писал(а):var orders = GetActiveOrders();
var Quantity = orders[x].Quantity;
где x - индекс от 0 до orders.Count.
[x] - же нужно объявлять? Это будет х = 0 ?
Re: Как узнать количество отложников по инструменту?
Добавлено: 24 июл 2019, 12:12
evge
x - индекс, может быть числом, может быть переменной, параметром
Re: Как узнать количество отложников по инструменту?
Добавлено: 24 июл 2019, 12:28
Balalayka
evge писал(а):x - индекс, может быть числом, может быть переменной, параметром
Тогда еще глупый вопрос разрешите
Если я объявляю [х] равным 1, что это будет значит в рамках вышеуказанного кода? т.е. какая логика воздействия на orders[x].Quantity;