if (Hour()>=10&&Hour()<21)
пример организации работы советника внутри временного окна - советник PROphet / в CodeBase/,
работает,как часики!
extern bool Timer = true; extern int OpenHour = 22; extern int CloseHour = 7; int Timers() { if (Timer == false) return (1); if (OpenHour < CloseHour) { if (Hour() >= OpenHour && Hour() < CloseHour) return (1); else return (0); } if (OpenHour > CloseHour) { if ((Hour() >= OpenHour && OpenHour <= 23) || (Hour() < CloseHour && CloseHour >= 0)) return (1); else return (0); } } if (Timers() == 1) { ..... }
liza 20.12.2008 17:47
Не работает!!!
Оно не может неработать:
int start() {
if (Hour()<10 && Hour()>=21) return (0);
// ...
// your code
// ...
return (0);
}
Код который обрабатывает подобное должен быть НЕ ОПАСЕН
например
сделок нет !!! то отсекаем по времени и тут все в порядке с логикой
а вот если на счете есть сделки
нужно пропускать в блок который ЗАКРОЕТ сделку если возникнет сигнал!
т е просто тупо - не стоит блокировать работу по времени
---
если же правилами ТС допускается бросать на произвол судьбы сделки
то конечно можно и такой код применить
--
в моем советнике есть сигнал на закрытие ! даже вне его рабочей сессии !!!
у меня код анализирует сделки советника! ( ручные сделки или сделки другой ТС нге учитываются )
Поделюсь своим блоком ограничения по времени из рабочего советника
extern string m="Permission to restrict trade in time"; extern bool TradeTime=false; extern string n="Hour start of trading"; extern int StartTrade=20; extern string o="Hour late trade"; extern int EndTrade=8; //-----------------------------------------------------------------------------+ // Функция контроля времени торговли | //-----------------------------------------------------------------------------+ bool TradeTime(){ int StartTradeHour=StartTrade; int EndTradeHour=EndTrade; if(!TradeOfTime){ gTime=StringConcatenate("the end of trading on Friday in ",DoubleToStr(EndTradeHour,0),":00 am"); if(DayOfWeek()==5){if(TimeHour(TimeCurrent())>EndTradeHour){return(false);}} if(DayOfWeek()==1){if(TimeHour(TimeCurrent())<2){return(false);}} if(DayOfWeek()==6||DayOfWeek()==0){return(false);} return(true);} if(DayOfWeek()==5){StartTradeHour=0;if(TimeHour(TimeCurrent())>EndTradeHour){return(false);}}else{StartTradeHour=StartTrade;} if(DayOfWeek()==1){if(TimeHour(TimeCurrent())<2){gTime="Start tarde in 01:00 am";return(false);}} if(DayOfWeek()==6||DayOfWeek()==0){return(false);} if(StartTradeHour<EndTradeHour){ if(TimeHour(TimeCurrent())>=StartTradeHour&&TimeHour(TimeCurrent())<EndTradeHour ||CountOpOrd("0")>0){ gTime=StringConcatenate("By the end of trading session :",DoubleToStr((EndTradeHour-TimeHour(TimeCurrent())),0)," hours"); return(true);}} if(StartTradeHour>EndTradeHour){ if(TimeHour(TimeCurrent())>=StartTradeHour||TimeHour(TimeCurrent())<EndTradeHour ||CountOpOrd("0")>0){ gTime=StringConcatenate("By the end of trading session :",DoubleToStr((EndTradeHour-TimeHour(TimeCurrent())),0)," hours"); return(true);}} gTime=StringConcatenate("resting to : ",StartTradeHour,": 00"); return(false); } //+------------------------------------------------------------------+ //| Подсчитывает количество открытых ордеров согласно условиям | //+------------------------------------------------------------------+ int CountOpOrd(string Sy="",int Typ=-1,int Magik=-1){int count=0; if(Sy=="0"){Sy=Symbol();} for(int i=0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Sy||Sy==""){ if(OrderType()==Typ||Typ==(-1)){ if(OrderMagicNumber()==Magik||Magik==(-1)){ if(OrderCloseTime()==0){ count++; } } } } } } return(count); }
Спасибо за уточнение!
int start() { if (Hour()<10 && Hour()>=21) return (0); // ... // your code // ... return (0); }
Предложенный вариант действительно не работает.
Вот верный.
if (Hour()<10 || Hour()>=21) return (0);

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я добавила в советник StartTime и EndTime и переменную trigger.
Но это не работает в том виде в котором я это сделала.
Подскажите или покажите как это сделать!
То что сделала я в прикрепленном файле.