//-----------------------------------------------------------------------------+// Функция контроля времени торговли |//-----------------------------------------------------------------------------+bool TradeTime(int StartTradeHour,int EndTradeHour){if(! TradeOfTime){if(DayOfWeek()==6||DayOfWeek()==0){
gTimeEngl="Start trade in 01:00 am";
gTimeRus="Начало торговли в понедельник в 01:00";return(false);}return(true);}if(DayOfWeek()==6||DayOfWeek()==0){
gTimeEngl="Start trade in 01:00 am";
gTimeRus="Начало торговли в понедельник в 01:00";return(false);}if( StartTradeHour< EndTradeHour){if(TimeHour(TimeCurrent())>= StartTradeHour&&TimeHour(TimeCurrent())< EndTradeHour
||( CountOpOrd("0")>0)){
gTimeEngl=StringConcatenate("By the end of trading session :",DoubleToStr(( EndTradeHour-TimeHour(TimeCurrent())),0)," hours");
gTimeRus=StringConcatenate("До конца торговой сессии :",DoubleToStr(( EndTradeHour-TimeHour(TimeCurrent())),0)," часов");return(true);}}if( StartTradeHour> EndTradeHour){if(TimeHour(TimeCurrent())>= StartTradeHour||TimeHour(TimeCurrent())< EndTradeHour
||( CountOpOrd("0")>0)){
gTimeEngl=StringConcatenate("By the end of trading session :",DoubleToStr(( EndTradeHour-TimeHour(TimeCurrent())),0)," hours");
gTimeRus=StringConcatenate("До конца торговой сессии :",DoubleToStr(( EndTradeHour-TimeHour(TimeCurrent())),0)," часов");return(true);}}
gTimeEngl=StringConcatenate("resting to : ", StartTradeHour,": 00");
gTimeRus=StringConcatenate("отдыхаем до : ", StartTradeHour,": 00");return(false);}
//-----------------------------------------------------------------------------+// Определяет дату конца торговли |//-----------------------------------------------------------------------------+bool EndTradeForDateTime(string EndTradeData){//"Enterting Date of End trading in eeee.mm.dd";if( EndTradeData==""){
gInf1rus="Дата конца торговли не определена ";
gInf1engl="Date of the end of trading is not defined ";
gColor1=LimeGreen;return(false);}int EndData=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));int DataEnd=StrToTime( EndTradeData);if( EndData>= DataEnd){
gInf1rus="Торговля остановленна "+ EndTradeData;
gInf1engl="Trading stopped "+ EndTradeData;
gColor1=Red;return(true);}
gInf1rus="Торговля будет остановленна "+ EndTradeData;
gInf1engl="Trading will be stopped "+ EndTradeData;
gColor1=LimeGreen;return(false);}
このバリエーションは......フィットします。
OpenHourとCloseHourをパラメータに入れれば、複数のインターバルを持ちたい人も満足できるはずです。
タイムトレード(OpenHour1, CloseHour1)、タイムトレード(OpenHour2, CloseHour2)、......を作成します。
で、好きなように組み合わせます。
一回掲示
矢張り
で、一旦終了とします。...で終わりです。
"急いで埋めなくていいよ、まだここでやることがあるから..." :))
Если нужны ещё и минуты для более точного определения временного интервала, например для ночного скальпера.
もちろん、最低でも数十分は必要です。
また、曜日や、曜日ごとに個別の時間を設定する機能や
ある日の選択・入札。
練習してみると、曜日によってパターンの効き方が違うことがわかります。
同じ口座で異なる商品で同時に動作するEAのマジックを自動生成する簡単な公式が思い浮かびました。