Проблема с OrderSelect - страница 2

 
OrderSelect () - это выборка из массива. А нумерация элементов массива начинается с нуля.
 
ivania:
Я не правильно выразился, отсчет ордеров в OrderSelect(). Если открыто два ордера, то первый выбирается OrderSelect(0,.....) а второй OrderSelect(1,.....)
Ну, в программировании как-то так принято, с нуля начинать счёт, традиция, знаете ли, из математики пришло ;)
 
evillive:
Ну, в программировании как-то так принято, с нуля начинать счёт, традиция, знаете ли, из математики пришло ;)

Раз уж зашла речь о OrderSelect(), то и я спрошу. После того как ордер выбран до какого момента он остаётся выбранным? Варианты: пока не будет выбран другой ордер, по окончании функции start() ...? Какие ещё мнения?
 
khorosh:
Раз уж зашла речь о OrderSelect(), то и я спрошу. После того как ордер выбран до какого момента он остаётся выбранным? Варианты: пока не будет выбран другой ордер, по окончании функции start() ...? Какие ещё мнения?


вариант первый
 
evillive:

вариант первый
А что между тиками выбор ордера разве не теряется?
 
khorosh:
А что между тиками выбор ордера разве не теряется?


А куда он денется-то?
 
evillive:

А куда он денется-то?

Так деться то он не денется, но будет ли по прежнему выбран на втором тике. Эксперимент надо сделать, да лень - спать охота.
 
После выбора ордера по тикету, надо запросить дату его закрытия, если нулевая, значит ордер еще в рынке!
 
Victor Nikolaev #:  Это недокументированная возможность. И в обновленном языке может не работать

Вот документация про номера:

А вот про OrderClosePrice()

Обратите внимание: говорится про выбранный ордер. В каком состоянии ордер (открыт, закрыт) уточнение отсутствует. Значит, верно для любого.

Экспериментально установил, что Bid и Ask теряют актуальность с течением времени, если пришел следующий тик, а эксперт все продолжает вычисления. И их нужно восстанавливать с помощью RefreshRates(), a OrderClosePrice() всегда возвращает актуальную величину.

Причина обращения: