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

 
t101:
ダウンロードし、ウィザードで生成し、テスターで実行してみましたが、動きません。samplesignalのCheckOpenLong/Short()メソッドにさえアクセスしません。これらはExpertSignalでは呼び出されますが、SampleSignalでは呼び出されません。これらを確実にオーバーライドするには、他に何をすればよいのでしょうか?

これは、あなたが行っていることですか?

取引、自動取引システム、取引戦略のテストに関するフォーラム

記事 "MQL5 Wizard用のトレーディングシグナルモジュールの書き方 "のディスカッション

SaprykinON, 2015.02.06 19:04

コメントの中で、次の行を置き換える必要があります。

//|| タイプ=シグナル

//|| Type=SignalAdvanced に変更してください。

その後、私のマスターはシグナルを見るようになりました。


というように:

このファイルを後にMQL5ウィザードが シグナル・ジェネレーターとして "検出 "するためには、このファイルをIncludeExpertSignalフォルダに作成する必要があることに注意すべきである。

?
 
Karputov Vladimir:

それが君のしたことだ:


そしてこうだ

?
そうだ
 
自分で試してみてください。最新のビルドでのみ機能します。
 
t101:
自分で試してみてください。最新のビルドでのみ、以前は動作していたことを私は否定しない。

おそらく記事のリリース後にシグナルの構造が変更されたのでしょう。私の記事Generator of trading signals of custom indicator- その中にシグナルモジュールがあります。シグナルモジュールは動作します。

Генератор торговых сигналов пользовательского индикатора
Генератор торговых сигналов пользовательского индикатора
  • 2013.07.19
  • Karputov Vladimir
  • www.mql5.com
Как сделать генератор торговых сигналов основанный на пользовательском индикаторе. Как создать пользовательский индикатор. Как получить доступ к данным пользовательского индикатора. Зачем нужна конструкция IS_PATTERN_USAGE(0) и model 0.
 
Karputov Vladimir:

おそらく、記事公開後にシグナルの構造が変更されたのだろう。私の記事Generator of trading signals of custom indicator- その記事にはシグナルモジュールがあります。シグナルモジュールは動作します。

CheckOpenLong()、CheckOpenShort()、CheckCloseLong()、CheckCloseShort()のメソッドがありません。使用されているのは LongCondition() と ShortCondition() だけです。
 
t101:
そこには CheckOpenLong(), CheckOpenShort() や CheckCloseLong(), CheckCloseShort() メソッドはありません。LongCondition() と ShortCondition() しか使っていない。
構わないのですが、シグナル・モジュールにポジション・クローズの 関数が必要な場合、どうすればいいのでしょうか?
 

あなたのファイルにCheckOpenLong()宣言を追加しました:

public:

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


そして説明も:

bool CSignalMyCustInd::CheckOpenLong(double &price,double &sl,double &tp,datetime &expiration)
  {
   Print(__FUNCTION__+": TEST!");
   return(false);
  }


しかし、ここに到達しません。ExpertSignalの同名のメソッドだけが実行されます。正しい方法を教えてください。
 
t101:

あなたのファイルにCheckOpenLong()宣言を追加しました:

public:

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


そして説明も:

bool CSignalMyCustInd::CheckOpenLong(double &price,double &sl,double &tp,datetime &expiration)
  {
   Print(__FUNCTION__+": TEST!");
   return(false);
  }


しかし、ここに到達しません。ExpertSignal の同名のメソッドだけが実行されます。どうすれば正しく実行できますか?

この記事が公開されてから、MQL5ウィザードが変更されました:MQL5ウィザード:新バージョン。新しいウィザードによって生成されたExpert Advisorは、以下のようになります。

は、取引シグナルオープンポジションの維持資本とリスク 管理の選択されたアルゴリズムに従って取引します。

 
独自のクロージング・アルゴリズムを実装する必要がある場合、どのようにすればよいですか?オープンポジションを維持するための 独自のモジュールを書くべきでしょうか?
 
t101:
独自のクロージング・アルゴリズムを実装する必要がある場合、どのようにすればよいですか?オープンポジションを維持するための 独自のモジュールを書くべきでしょうか?
それとも資本管理モジュールか。具体的に何を選択するかは、詳しく調べる必要がある。