множественные ордера за одну сессию... как этого избежать

 

начнём со старт

{

здесь опентраде=фалсе.

проверка на открытие ордера по магику если магик == то OpenTrade = true;


а здесь надо проверить по истории был ли ордер открыт и закрыт в последнию торговую сессию чтобы избежать повторного открытия.

total=OrdersHistoryTotal( );

for(int i = Total-1; i >= 0; i--)
{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)== false) break;
if(OrderMagicNumber()== MAGICMACD){

datetime ctm=OrderOpenTime();//чтот дальше незнаю куда


}
}


тут открываються ордера если опентраде=фалсе.

}


последний закрытый ордер имеет какой порядковый номер?

тоесть если я только что закрыл ордер он будет номер 0 или номер последний?

и как узнать был ли ордер в этоту сессию?

 

тому, кто научился брать "свой пипс" - никакое программирование не страшнО! Удачи и творческих успехов!

 
Верно. Сам учись :)))
 
"Свой пипс" - это звучит гордо! )))
 
CoreWinTT писал(а) >>

...

Будем считать воспитальную часть оконченой)

Порядковый номер последнего закрытого ордера обычно OrdersHistoryTotal( )-1;

Логика Ваша почти верна.

Если Вы говорите о сессии, то она имеет минимум время своего начала, т.е. время открытия или/и закрытия ордера из истории сделок надо проверять с временем интересующей сессии.

 
Figar0 писал(а) >>

Порядковый номер последнего закрытого ордера обычно OrdersHistoryTotal( )-1;

Если Вы говорите о сессии, то она имеет минимум время своего начала, т.е. время открытия или/и закрытия ордера из истории сделок надо проверять с временем интересующей сессии.

это если мы говорим о тестере, в онлайне все далеко не так, и ордера будут фильтроваться по разному, поэтому нужен перебор ордеров. нахождение последнего по времени закрытия. и сравнение его с интересующим временемю

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