どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 530

 
Integer:

チャート上にグラフィカルなオブジェクトを作成します。ある名前のオブジェクトがあれば、OnStart()の先頭で終了する。ロックを解除するには、手動でオブジェクトを削除してください。

ありがとうございました。

また、どのように終了するかというと、return(0);ではエラーになります。

 
abeiks:

ありがとうございました。

どうすればいいのか?return(0);ではエラーになる。

ファンクションタイプにより異なります。start()じゃなくてOnTick()だとvoidだからreturnでいいんじゃね?

return;
 
r772ra:
プリントに関するコメントは、作業時に不要な場合は、こちらをご覧ください。

ありがとうございました。外部設定でEAの動作に時間制限を設ける方法を教えてください。

これを追加しました。


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);
  else return(False);
}
 
Integer:

ファンクションタイプによって異なります。今はstart()ではなくOnTick()で、voidなのでreturnするだけです。


ありがとうございました。
 
tatianati:

ありがとうございました。EAの外部設定に時間制限を設ける方法を教えてください。

これを追加

extern int   StartHour     = 21;      // Время закрытия, часы
extern int   StartMinute   = 30;      // Время закрытия, минуты
extern int   CloseHour     = 01;      // Время закрытия, часы
extern int   CloseMinute   = 0;      // Время закрытия, минуты
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   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);
  else return(False);
}
 

EAにインジケータを表示させることはできますか?MQL5のChartIndicatorAddの 代替品です。


また、カスタムインジケーターを元に計算を行うEAの例はどこにあるのでしょうか?

 
移動平均の 傾きや価格と移動平均の交点の角度をある角度で規定することが可能かどうか教えてください。
 
Profitov:
移動平均の傾きや価格と移動平均の交点の角度をある角度で規定することが可能かどうか教えてください。 。
今度は「チャートの目盛り によって角度が変わるので、それは無理です」と説明し始める......。
しかし、角度ではなく、その角度の正接だけをとれば、思い通りになるのです。
 
どなたかご存知の方、アドバイスお願いします。

私のExpert Advisorは、int init()で、まず1000本のバーの履歴をテストし、次にstart()します。テスターでは3〜4秒で終わりますが、実際には約8分かかります。
何に関連することができるのか?どうすればテスターと同じようにテストに時間をかけられるのか?
 
agvozdezkiy:

EAにインジケータを表示させることはできますか?MQL5のChartIndicatorAddの代替品です。


また、カスタムインジケーターを元に計算を行うEAの例はどこにあるのでしょうか?

https://book.mql4.com/ru/samples/icustom