int start()
{
if(!isTradeTimeInt(21, 30, 01, 00)) return;
а в конце кода вот это
//+------------------------------------------------------------------+//| Описание : Возвращает флаг разрешения торговли по времени. |//+----------------------------------------------------------------------------+//| Параметры: |//| hb - часы времени начала торговли |//| mb - минуты времени начала торговли |//| he - часы времени окончания торговли |//| me - минуты времени окончания торговли |//+----------------------------------------------------------------------------+bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
datetime db, de; // Время начала и окончания работыint hc; // Часы текущего времени торгового сервера
db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
hc=TimeHour(TimeCurrent());
if (db>=de) {
if (hc>=he) de+=24*60*60; else db-=24*60*60;
}
if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
elsereturn(False);
}
externint StartHour = 21; // Время закрытия, часыexternint StartMinute = 30; // Время закрытия, минутыexternint CloseHour = 01; // Время закрытия, часыexternint CloseMinute = 0; // Время закрытия, минуты//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
if(isTradeTimeInt(StartHour,StartMinute,CloseHour,CloseMinute))
{
//Здесь то,,,,//что работает, в этом диапозоне времени
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Описание : Возвращает флаг разрешения торговли по времени. |//+----------------------------------------------------------------------------+//| Параметры: |//| hb - часы времени начала торговли |//| mb - минуты времени начала торговли |//| he - часы времени окончания торговли |//| me - минуты времени окончания торговли |//+----------------------------------------------------------------------------+bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
datetime db, de; // Время начала и окончания работыint hc; // Часы текущего времени торгового сервера
db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)hb+":"+(string)mb);
de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)me);
hc=TimeHour(TimeCurrent());
if (db>=de) {
if (hc>=he) de+=24*60*60; else db-=24*60*60;
}
if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
elsereturn(False);
}
チャート上にグラフィカルなオブジェクトを作成します。ある名前のオブジェクトがあれば、OnStart()の先頭で終了する。ロックを解除するには、手動でオブジェクトを削除してください。
ありがとうございました。
また、どのように終了するかというと、return(0);ではエラーになります。
。
ありがとうございました。
どうすればいいのか?return(0);ではエラーになる。
。
ファンクションタイプにより異なります。start()じゃなくてOnTick()だとvoidだからreturnでいいんじゃね?
return;
プリントに関するコメントは、作業時に不要な場合は、こちらをご覧ください。
ありがとうございました。外部設定でEAの動作に時間制限を設ける方法を教えてください。
これを追加しました。
ファンクションタイプによって異なります。今はstart()ではなくOnTick()で、voidなのでreturnするだけです。
ありがとうございました。
ありがとうございました。EAの外部設定に時間制限を設ける方法を教えてください。
これを追加
EAにインジケータを表示させることはできますか?MQL5のChartIndicatorAddの 代替品です。
また、カスタムインジケーターを元に計算を行うEAの例はどこにあるのでしょうか?
移動平均の傾きや価格と移動平均の交点の角度をある角度で規定することが可能かどうか教えてください。 。
しかし、角度ではなく、その角度の正接だけをとれば、思い通りになるのです。
私のExpert Advisorは、int init()で、まず1000本のバーの履歴をテストし、次にstart()します。テスターでは3〜4秒で終わりますが、実際には約8分かかります。
何に関連することができるのか?どうすればテスターと同じようにテストに時間をかけられるのか?
EAにインジケータを表示させることはできますか?MQL5のChartIndicatorAddの代替品です。
また、カスタムインジケーターを元に計算を行うEAの例はどこにあるのでしょうか?