А последний закрытый по профиту ордер предварительно 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
Извиняюсь. Принял за разработчика.
А разработчикам информация к размышлению:
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--)
for(int o_closed=HistoryTotal( )-1; o_closed>=0; o_closed--)
Спасибо огромное
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как запретить эксперту, открывать новую позицию, если после закрытия не прошло некоторое время?
Пробовал: if(CurTime()-OrderCloseTime()<960) return(0); // никак не влияет.