Подскажите плиззззз

 
Часто бывает, что на баре где сработал TakeProfit, появляется новый сигнал на открытие.
Как запретить эксперту, открывать новую позицию, если после закрытия не прошло некоторое время?

Пробовал: if(CurTime()-OrderCloseTime()<960) return(0); // никак не влияет.
 
А последний закрытый по профиту ордер предварительно OrderSelect?
for( o_closed=HistoryTotal( ); o_closed>0; o_closed--)
{
   if(OrderSelect( o_closed, SELECT_BY_POS , MODE_HISTORY )==true &&  //если выбран ордер в истории
      OrderClosePrice()==OrderTakeProfit() ) //и закрыт он по значению TakeProfit)
      if(OrderCloseTime()>Last_OTPTime)
      {
          Last_OTPTime=OrderCloseTime();
      }
}
if(CurTime()-Last_OTPTime<960) Sleep((960+Last_OTPTime-CurTime())*1000) ;
 
А последний закрытый по профиту ордер предварительно OrderSelect?

Так значит Вы признаете, что в тестере недоработки и хотите, чтобы мы их обходили программным путем вместо того, чтобы разбраться почему это происходит? Кстати, почему? Ведь сам эксперт такое не делает.
 
А последний закрытый по профиту ордер предварительно OrderSelect?

Так значит Вы признаете, что в тестере недоработки и хотите, чтобы мы их обходили программным путем вместо того, чтобы разбраться почему это происходит? Кстати, почему? Ведь сам эксперт такое не делает.

2Juga
Я такой же пользователь как и ты. О каких недоработках ты говоришь?
 
Спасибо Profi_R. Вставил Ваш код, перед условием для открытия.
Проблема не решилась. Наверное, делаю что-то не так.

 datetime Last_OTPTime;   
for(int o_closed=HistoryTotal( ); o_closed>0; o_closed--)
{
   if(OrderSelect( o_closed, SELECT_BY_POS , MODE_HISTORY )==true &&  //если выбран ордер в истории
      OrderClosePrice()==OrderTakeProfit() ) //и закрыт он по значению TakeProfit)
      if(OrderCloseTime()>Last_OTPTime)
      {
          Last_OTPTime=OrderCloseTime();
      }
}
if(CurTime()-Last_OTPTime<960) Sleep((960+Last_OTPTime-CurTime())*1000) ;

 
   if(total<1) 



[img]D:\MetaTrader 4\tester\11.gif[/img]


 
2Profi_R
Извиняюсь. Принял за разработчика.


А разработчикам информация к размышлению:


http://www.imgreactor.com/hosted/1444/ta.GIF

Происходит именно то, о чем говориться в первом постинге Oleka
 
В своей подсказке не учел, что индексация ордеров начинается с нуля, поэтому правильнее будет
for(int o_closed=HistoryTotal( )-1; o_closed>=0; o_closed--)
 
В своей подсказке не учел, что индексация ордеров начинается с нуля, поэтому правильнее будет


for(int o_closed=HistoryTotal( )-1; o_closed>=0; o_closed--)


Спасибо огромное