- PositionModify
- PositionClose
- Исполнение по запросу - Открытие и закрытие позиций - Торговля - MetaTrader 5 для iPhone
Есть мысли или примеры кода ?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Aleksey Panfilov, 2018.10.18 15:13
if( ..... && ((New_Time[0]-3600* Start_Hour) % 86400 < 3600*Period_Hour) // обусловлено интервалом внутри суток && ((New_Time[0]-3600*(96+Start_Weekly_Hour))%(86400*7) < 3600*Period_Weekly_Hour) // обусловлено интервалом внутри недели (неделя 168 часов) )
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ограничить торговлю в советнике в указанный период времени...
Vladimir Pastushak, 2018.11.04 11:14
Артем, мне нужно остановить советника с 22 00 до 02 00
Функции что ты дал не подходят...
Предложенные выше подходят
Start_Hour =22
Period_Hour =4В данном виде функция на разрешение торговать в течении Period_Hour, чтобы сделать запрет нужно знак поменять с "<" на ">" .
Я ж в личку кинул функции. Что не так?
Артем, мне нужно остановить советника с 22 00 до 02 00
Функции что ты дал не подходят...
Артем, мне нужно остановить советника с 22 00 до 02 00
Функции что ты дал не подходят...
Проверяешь время и делаешь выводы - торговать или нет.
Вот как раз эта проверка мне и нужна
Не могу сообразить как остановить именно с 22 00 до 02 00 ...
Условие типа Hour() > 22 && Hour()<2 не прокатит
Вот как раз эта проверка мне и нужна
Отправляешь в функции текущее время. Они вернут часы и минуты. Сравниваешь с заданными и делаешь выводы.
Я то же поначалу думал что так просто
Я то же поначалу думал что так просто
Это не просто, а очень просто :)
Так кажется
#property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict //+------------------------------------------------------------------+ enum ENUM_HOUR { h00,/*00*/ h01,/*01*/ h02,/*02*/ h03,/*03*/ h04,/*04*/ h05,/*05*/ h06,/*06*/ h07,/*07*/ h08,/*08*/ h09,/*09*/ h10,/*10*/ h11,/*11*/ h12,/*12*/ h13,/*13*/ h14,/*14*/ h15,/*15*/ h16,/*16*/ h17,/*17*/ h18,/*18*/ h19,/*19*/ h20,/*20*/ h21,/*21*/ h22,/*22*/ h23,/*23*/ }; sinput string sinput1="1.Установка границ работы по времени:";//---------------------------- input ENUM_HOUR StartHourSession1 = h22; input ENUM_HOUR StopHourSession1 = h03; input ENUM_HOUR StartHourSession2 = h07; input ENUM_HOUR StopHourSession2 = h12; //+------------------------------------------------------------------+ //| class CSession | //+------------------------------------------------------------------+ class CSession { private: int StartHour,StopHour; bool intraday; public: void CSession(ENUM_HOUR hstart,ENUM_HOUR hstop); void ~CSession(void){}; bool CheckSession(datetime t); }; //+------------------------------------------------------------------+ void CSession::CSession(ENUM_HOUR hstart,ENUM_HOUR hstop) { StartHour=hstart; StopHour=hstop; if(StopHour>StartHour) intraday=true; else intraday=false; } //+------------------------------------------------------------------+ bool CSession::CheckSession(datetime t) { int h=TimeHour(t); bool result; if(intraday) { if(h>=StartHour && h<StopHour) result=true; else result=false; }else{ if(h>=StopHour && h<StartHour) result=false; else result=true; } return(result); } //+------------------------------------------------------------------+ CSession *session1,*session2; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { session1 = new CSession(StartHourSession1,StopHourSession1); session2 = new CSession(StartHourSession2,StopHourSession2); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete session1; delete session2; } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { datetime nowtime; nowtime=TimeCurrent(); if(session1.CheckSession(nowtime)) { // Сессия 1 } if(session2.CheckSession(nowtime)) { // Сессия 2 } } //+------------------------------------------------------------------+
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования