現在、MT5 Strategy Testerでマルチ通貨ペアのEAをバックテストしていますが、異なる通貨ペアにアタッチすると異なる結果が得られます。EAはAUDUSDとGBPCHFで取引しています。
AUDUSDに貼り付けると10kの利益が出ます。
GBPCHFにつけたら3万円以上の利益が出ました。
USDCHFにつけると(USDCHFをフォローする場合、OnTick()関数がAUDUSDとGBPCHFの両方の変化に反応すると思っていました)17k程度の利益が出ます。
OnTick()関数の使い方の問題なのでしょうか?それとも、多通貨EAのバックテストに何か隠れた問題があるのでしょうか?それとも、私のコードに何らかの混乱があるだけなのでしょうか?
このコードは、実際には重要ではないはずです。すべての取引が2つの定義済みの通貨ペアで行われ、すべての取引も毎ティックではなく、新しいバーのオープニングで行われる場合、なぜTesterは添付の通貨ペアに違いを生じさせるのでしょうか?
OnTick()の代わりにOnBookEvent()を試してみてはいかがでしょうか?- OnTick()は、現在のシンボルのティックが到着したときにのみトリガされます。
OnBookEvent
OnBookEvent()関数は、BookEvent ハンドラです。BookEventは、Depth of Marketが変更されたときのみExpert Advisorに生成されます。この関数はvoid型で、string型のパラメータを1つ持つ必要があります。
voidOnBookEvent(conststring&symbol); |
任意のシンボルのBookEventイベントを受信するには、MarketBookAdd() 関数を使用して、このシンボルのこれらのイベントを受信するように事前に登録する必要があるだけです。特定のシンボルに対するBookEventイベントの受信を解除するには、MarketBookRelease() を呼び出します。
他のイベントとは異なり、BookEvent イベントはブロードキャストされます。つまり、ある Expert Advisor が MarketBookAdd を使用して BookEvent イベントの受信を申し込むと、OnBookEvent() ハンドラを持つ他の Expert Advisor はすべてこのイベントを受信します。 したがって、シンボルの名前を解析する必要があり、それは const string& symbol パラメータとしてハンドラに 渡されています。
私も同じ問題を経験しています。多通貨EAのバックテストでは、ストラテジーテスターパネルでどのシンボルを選択するかによって、全く異なる動作が得られます。
これは非常に煩わしいことです。ロッシュ?どなたか、コメントお願いします。
オンティックが選択したチャートにのみ適用されるとしても、envidと私の両方が新しいバーのオープニングで動作しています。私の場合、日足を使っているので、様々な通貨の新しいバーのオープンティックが異なる時間に発生しても、私が経験するような劇的な違いは発生しないはずです。
明らかな理由により、私のEAは含まれていません。ここで公開されたEAで同じ問題があるかどうか見てみましょう。https://www.mql5.com/en/articles/105。
多通貨EAの構築に成功している方、特にこの差異に悩まされていない方のご意見をお聞かせいただければ幸いです。
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
OnTick()の代わりにOnBookEvent()を試してみてはいかがでしょうか?- OnTick()は、現在のシンボルのティックが到着したときにのみトリガされます。
OnBookEvent
OnBookEvent()関数は、BookEvent ハンドラです。BookEventは、Depth of Marketが変更されたときのみExpert Advisorに生成されます。この関数はvoid型で、string型のパラメータを1つ持つ必要があります。
voidOnBookEvent(conststring&symbol); |
任意のシンボルのBookEventイベントを受信するには、MarketBookAdd() 関数を使用して、このシンボルのこれらのイベントを受信するように事前に登録する必要があるだけです。特定のシンボルに対するBookEventイベントの受信を解除するには、MarketBookRelease() を呼び出します。
他のイベントとは異なり、BookEvent イベントはブロードキャストされます。つまり、ある Expert Advisor が MarketBookAdd を使用して BookEvent イベントの受信を申し込むと、OnBookEvent() ハンドラを持つ他のすべての Expert Advisor がこのイベントを受信します。 このため、ハンドラに const string& symbol パラメータとして渡されたシンボルの名前を解析する必要が あります。
以下はその例です。https://www.mql5.com/en/articles/105 のTEMA EAを使用すると、次のような異なる動作が得られます。
必要なのはEA exp_tema_en.mq5とインジケータ multistochastic_en.mq5 だけです。
この例では、添付のパラメータセットファイルを使用しました。このEAはEURUSD、USDCHF、USDJPYのペアを取引します(これらのパラメータを使用します)。
EURUSDにつけると、以下のようになります。
USDCHFにつけると、以下のようになります。
そして、USDJPYで私たちは以下を得ます。
さらに、AUDUSDでEAを実行すると、結果は以下のようになります。
同じEA、同じタイムフレーム(H1)、同じ取引ペア、同じ日付(2009.01.01-2009.03.01)です。
ということなのでしょうか?また、もしそうだとしたら、どなたかこの意味を教えていただけないでしょうか?
本当に多通貨のバックテスト/最適化の準備ができているのでしょうか?
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
以下はその例です。https://www.mql5.com/en/articles/105 のTEMA EAを使用すると、次のような異なる動作が得られます。
必要なのはEA exp_tema_en.mq5とインジケータ multistochastic_en.mq5 だけです。
この例では、添付のパラメータセットファイルを使用しました。このEAはEURUSD、USDCHF、USDJPYのペアを取引します(これらのパラメータを使用します)。
これをEURUSDにつけると、以下のようになります。
USDCHFにつけると、以下のようになります。
そして、USDJPYでは次のようになります。
さらに、AUDUSDでEAを実行すると、結果は以下のようになります。
同じEA、同じタイムフレーム(H1)、同じ取引ペア、同じ日付(2009.01.01-2009.03.01)です。
ということなのでしょうか?また、もしそうだとしたら、どなたかこの意味を教えていただけないでしょうか?
本当に多通貨のバックテスト/最適化の準備ができているのでしょうか?
こんにちは、私も同じ問題(異なる結果)を抱えていましたが、IsNewBar()で解決しました。
私はbaqと同意見です、ではどうすればいいのでしょうか?
IsNewBar(あるシンボル)の場合のみ、blah blah blah。
私のEAでは、異なるシンボルに接続して同じ結果を得ました。
私が関数を取得した記事はこちらです: https://www.mql5.com/en/articles/105
- 2010.07.08
- Nikolay Kositsin
- www.mql5.com
こんにちは、私は同じ問題(異なる結果)を持っていたが、IsNewBar()でそれを解決しました。
私はbaqに同意し、我々は何をすべきか、引用符を取得し、この関数は行います。
IsNewBar(あるシンボル)の場合のみ、blah blah blahとなります。
私のEAでは、異なるシンボルにアタッチして同じ結果を得ました。
私が関数を取得した記事はこちらです: https://www.mql5.com/en/articles/105
Aliさん、私が上に挙げた例は、あなたが言及したIsNewBar()関数の ソースであり、すでにそれを使用しているEAです。
これをどう説明するのですか?
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
現在、MT5 Strategy Testerでマルチ通貨ペアのEAをバックテストしていますが、異なる通貨ペ アにアタッチすると異なる結果が得られます。EAはAUDUSDとGBPCHFで取引しています。
AUDUSDに貼り付けると10kの利益が出ます。
GBPCHFにつけたら3万円以上の利益が出ました。
USDCHFにつけると(USDCHFをフォローする場合、OnTick()関数がAUDUSDとGBPCHFの両方の変化に反応すると思っていました)17k程度の利益が出ます。
OnTick()関数の使い方の問題なのでしょうか?それとも、多通貨EAのバックテストに何か隠れた問題があるのでしょうか?それとも、私のコードに何らかの混乱があるだけなのでしょうか?