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

 
Ihor Herasko:

最後に閉じたH1ローソクと一緒に閉じたM30ローソクを取りたい場合、それは1だけでなく、2つのインデックスを持つローソクになることができます。もう一つは、前のH1ローソクの終値と同じなら、なぜM30の終値が 取られるのかが不明なことです。つまり、この場合、他のTFの終値を聞いても、現在のTFの終値と同じなので、意味がないのです。

まさに私たちが知るべきは、H1内部のM30の終値です。

バーの開閉を制御していることが原因だと判明。ありがとうございます。

 

ループ内の価格High[i+1] +/-10*Point と下位のフラクタルとの 比較は、インジケータではどうですか?

等しければ、矢印をつける Buf_o[i+1]=High[i+1] ;.

 

こんにちは。

MetaTrader 4 testerでテストするために、簡単なバイナリ攻略コードを書きたいのですが。内蔵のテスターではバイナリー戦略を完全にテストできないことは承知していますが、テスト期間中に利益を上げた取引の割合を知りたいだけなのです。案件の有効期限を設定することができません。OrderSendオペレータを使用しています。

OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0, "5",15167,Expiration,clrGreen) を実行します。

自動売買を行う場合はすべてうまくいくのですが、ブローカーの規約によると、有効期限はポジションへのコメントで指定されています。この場合、私のコメントは「5」です。5分である。しかし、テスターは当然ながら、このコメントを有効期限を示すものとは考えていない。Expirationパラメータに異なる値を設定しても、テスターは全く反応しません。まず、ストラテジーのシグナルに従って取引を開始し、テスト期間終了の瞬間にテスト期間内のすべての取引を終了させます。その結果、テスト 結果がまったく正しくありません。

テスターにわかりやすい有効期限を指定するには?私はまだ「旧」バージョンのコードをマスターしているところです。

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
kirson-7:

テスターが理解できる有効期限を設定するにはどうしたらよいですか?

現在時刻=開始時刻+5分の場合はポジションをクローズし、タイムフレームがM5の場合は新しいバーの開始時にクローズします。
 

High[i+1] +/-10*Point がフラクタルの価格と正確に等しくならないようにするにはどうしたらよいですか?

 {
//---
   if(rates_total<2) return(0);

   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      // BufferUP[i+1]=EMPTY_VALUE;
      
      //
      for(int y=i+2;y<=i+100;y++)
        {
         if(low[i+1]==iFractals(Symbol(),0,MODE_HIGH,y))estb=true;
        }
      if(estb)
        {
         BufferUP[i+1]=low[i+1]-distance*Point;//НЕПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      estb=0;
      //==//
      for(int y=i+2;y<=i+100;y++)
        {
         if(high[i+1]==iFractals(Symbol(),0,MODE_LOWER,y))ests=true;
        }
      if(ests)
        {
         BufferDN[i+1]=high[i+1]+distance*Point;//ПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      ests=0;

      //Comment("");
     }
   return(rates_total);
  }
 
bij:

High[i+1] +/-10*Point がフラクタルの価格と正確に等しくならないようにするにはどうしたらよいですか?

値の差は10*Pointより大きいが、その差がプラスになるかマイナスになるかを検討する必要がある。
 
bij:
現在時刻=ポジション開始時刻+5分の場合、またはタイムフレームがM5の場合は新しいバーの開始時にポジションをクローズします。
また、OrderSendオペレータのパラメータリストにある標準的な有効期限はなぜ機能しないのでしょうか?私の例ではExpirationと記されています。
 
kirson-7:
OrderSendオペレータのパラメータリストにある標準的な有効期限が機能しないのはなぜですか?私の例ではExpirationと表示されています。
これは、保留中の注文の 場合です
 
大きなロットから小さなロットへのクローズオーダー(文字列Symbol, int type, bool hand orders, int Magic)を作成するのを手伝ってください。
例:シンボル選択、タイプ、ハンドオーダーを考慮するかどうか、マジックナンバー。


 
Hello All: ユーザー定義関数でポジションを開く(例えば市場で買う)ことを規定し、買うための異なるシグナルがあるときにこの関数を呼び出すことは可能ですか?すなわち、MACDは、この関数に対処した - 位置が開かれ、_Muwingsの信号は、この関数に対処した - 再び買い......など。あるいは、具体的なケースごとに、シグナルを出すときに、OrderSand(Symbol,OP_BAI, etc.)と書く必要がある。