MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1769

 

皆さん、こんにちは。mt4でd1でインジケーターのテストを開始し、そこからシグナルが出たらn1に切り替える必要があるか教えてください。テストを中断することなくできますか?

 
DanilaMactep #:

皆さん、こんにちは。mt4でd1でインジケータのテストを開始し、そこからシグナルが出たらn1に切り替える必要があるか教えてください。テストを中断することなくできますか?

ノー

H1で起動し、D1からの信号を取得する必要があります。

 
DanilaMactep #:

皆さん、こんにちは。mt4でd1でインジケーターのテストを開始し、そこからシグナルが出たらn1に切り替える必要があるか教えてください。テストを中断することなくできますか?

テスターで時間軸の切り替えはできません。したがって、ティックモデルOHLCをM1に 設定し、H1またはD1のシグナルを見るか、H1を選択し、D1 からのシグナルを待つ必要があります。

 
MakarFX #:

ノー

H1で動作させ、D1から信号を取得する必要がある

Expert Advisorがテストされた場合です。手動でテストする必要がある。つまり、Expert Advisorをテストに接続し、インジケータをテストチャートにアタッチすればいいのです。そして、テスト中にタイムフレームを手動で切り替える必要があります。これは、スクリプトなどを使ってできるのでしょうか?

 
DanilaMactep #:

これは、EAをテストしている場合です。しかし、手動でテストする必要があります。つまり、EAをテストに接続し、テストチャートにインジケータを配置すればいいのですね。そして、テスト中にタイムフレームを手動で切り替えなければならない。これは、スクリプトなどを使ってできるのでしょうか?

インジケーターから信号が出ますか?
 
MakarFX #:
インジケーターから信号が出ていますか?
インジケータからはい、しかし、唯一の低い時間枠でそのトレンドラインとその後のカウンタートレンドラインを打つという形で - おそらく後で私はそれを明確にするためにビデオを記録します;-)。
 
DanilaMactep #:
インジケータからはい、しかし、唯一のそのトレンドラインを打つの形で、その後低いタイムフレームのカウンタートレンドラインに - おそらく後で私はそれを明確にするためにビデオを記録します;-)

MTFインジケータを作れば幸せになれる)

 
MakarFX #:

MTFインジケータをやれば幸せになれる)

何を見落としているのか、教えてください。これはEAに搭載されている機能です。

エラー:アレイの制限を超えました

int TradeSignal() 
  {
   int limit, i, sig=-1;
   double Ma_curr, Ma_prev, Buffer[];
   limit=MaPeriod*3;
   for(i=limit;i>=0;i--)
     {
      Ma_curr=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i);
      Ma_prev=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i+1);
      Buffer[i]=Ma_curr-Ma_prev;
      if(Buffer[i]>0) sig=0;
      if(Buffer[i]<0) sig=1;
     }
   return(sig);
  }
 
MakarFX #:

何が足りないのか、教えていただけませんか?これはEAに搭載されている機能です。

エラー:アレイオーバーラン

Buffer配列にメモリが割り当てられていません。

int TradeSignal() 
  {
   int limit, i, sig=-1;
   double Ma_curr, Ma_prev, Buffer[];
   limit=MaPeriod*3;
   ArrayResize(Buffer, limit);
   for(i=limit-1;i>=0;i--)
     {
      Ma_curr=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i);
      Ma_prev=iMA(_Symbol,_Period,MaPeriod,0,MaMethod,MaPrice,i+1);
      Buffer[i]=Ma_curr-Ma_prev;
      if(Buffer[i]>0) sig=0;
      if(Buffer[i]<0) sig=1;
     }
   return(sig);
  }
 
Mihail Matkovskij #:

Buffer配列に割り当てられたメモリがありません。

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