記事"MQL5ウィザード:トレーディングシグナル用モジュール作成方法"についてのディスカッション - ページ 3

 
MQL5ウィザードの新バージョンでは、信号モジュールのフォーマットが変更されました。詳しくはこちらをご覧ください -https://www.mql5.com/ru/forum/3724/66962#comment_66962。
Обсуждение статьи "Мастер MQL5: Новая версия"
Обсуждение статьи "Мастер MQL5: Новая версия"
  • www.mql5.com
Изменения в архитектуре сигналов позволяют теперь создавать торговые роботы на основе комбинации различных рыночных моделей.
 
Rosh:
MQL5ウィザードの新バージョンでは、信号モジュールのフォーマットが変更されました。https://www.mql5.com/ru/forum/3724/66962#comment_66962。

これらの変更を行ったところ、ウィザードには新しいシグナルモジュールが表示されますが、生成されたExpert Advisorはなぜか取引しません。デバッグを使用して CheckOpenShort/CheckOpenLong 関数にアクセスできますか?
 
Signalフォルダにあるいくつかの準備完了したシグナルのコードを見てみましたが、CheckOpenShort/CheckOpenLong関数の実装はありませんでした。その代わりに
//--- 市場モデルが形成されているかどうかをチェックする方法
   virtual int       LongCondition();
   virtual int       ShortCondition();
私は正しく理解していますか?自分のモジュールを書く場合、それらも実装する必要がありますか?CExpertクラスの 説明はいつ登場しますか?
 
beginner:

Signalフォルダにあるいくつかの準備完了したシグナルのコードに目を通しましたが、CheckOpenShort/CheckOpenLong関数の実装がありませんでした。その代わりに正しく使用されているのですね?
はい、その通りです。
 
Rosh:
ああ、その通りだ。

正直、ちょっと混乱している。CExpertSignalクラスには CheckOpenShort/CheckOpenLong関数があります。あなたはシグナルで他の関数を使っていますが、CExpertでもどこで呼び出されているのか理解できません。問題は、自分でシグナルモジュールを書くという記事から既成のシグナルを取り出し、ウィザードに表示させ(おそらく新しいフォーマットに関する記事に変更を加えることができます)、このシグナルでExpert Advisorを作成したのですが、1年間テスターで1度も取引していません。

コンストラクタで関数が呼び出されるのは明らかですが、なぜ標準関数が使用されないのでしょうか?

 
何が問題なのかご覧ください。テスターを交換しない。
ファイル:
1.mq5  7 kb
 
beginner:

何が悪いのか見てください。テスターでは取引されていません。

このモジュールは取引しています。

あなたの場合、ロングを

if(  High(1) > High(2) && Low(2)>Low(3) && High(2)<High(3) && Close(3)>Open(3) ){
     return(100);
   }
//--- условие не выполнено
   return(0);  
  }

Open(1)< Open(2)

をショート用に置き換えてください。

ファイル:
 
gdtt:

このモジュールは

で置き換えてください。

に置き換えてください。

そうですね、ありがとうございます!一日かけて、記事の通りにすべてやったと思うのですが、私の間違いは何でしょうか?
 
beginner:
そうですね、ありがとうございます!一日かけて、記事のようにすべてやったと思うのですが、私の間違いは何でしょうか?

新しいウィザードでは、以前のウィザードと比較して、非常に大きな変更があります、

仮想ブール CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);

virtual bool CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Expert Advisorで使用される複数のオブジェクトの中に、main属性を持つCExpertSignalクラスのオブジェクトがあり、そのオブジェクトがこれらの関数を使用できる。

virtual int ShortCondition(); //売りの始値条件をチェックする。

virtual int LongCondition(); //買いポジションの開始条件をチェックする。

i'sに点を打つには、新しいウィザードで独自のシグナル・モジュールを書く方法についての記事が必要なので、それを待っている。

 
そうですね、記事が抜けていますし、CExpertSignalの ドキュメントも更新が必要でしょう。