記事"MQL5 ウィザード:任意の価格で指値注文をオープンすることを EA に教える方法"についてのディスカッション - ページ 2

 

こんにちは、ウラジミール、


この記事が好きなのですが、他のインジケーターを使用した取引を開始するために、保留中の注文のみを 使用するEAを書くことは可能でしょうか。

 
Tafadzwa Nyamwanza :

こんにちは、ウラジーミル、


この記事が好きなのですが、他のインジケーターを使用した取引でペンディングオーダーだけを 使用するEAを書くことは可能でしょうか。

ご質問はMQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Priceに 関連していますか?

 
こんにちは、ウラジミール。

この記事がペンディングオーダーに関する ものであることは知っていますが、成行注文をオープンするEAをどのようにプログラムしていますか?

 
Ayanda Mhlauli:
やあ、ウラジミール。

この記事がペンディングオーダーに関する ものであることは知っていますが、成行注文をオープンするEAをどのようにプログラムしていますか?

input double             Signal_PriceLevel         =0.0;         // 取引を実行する価格水準
 
シグナル・ジェネレーターの内部で直接PriceLevel()を呼び出せば十分ではないか。なぜシグナル・ジェネレーターに*シグナル・ポインターを渡さなければならないのか?
 

こんにちは、ウラジーミル・カルプトフ(@Vladimir Karputov) -- とても勉強になる記事でした!

個人的には、エキスパート、シグナル、フィルター、インジケーター、リスク・マネージャーなどを表すオブジェクトを組み合わせてボットを構築するMQL5のこのOOPフレームワークは非常に面白いと思います。

いずれにせよ、私はMQL5のみに移行しつつあり、OOPの概念や言語について十分な経験を持っているので、新しいトレーディング・アイデアのプロトタイピングやトレーディング・システムの開発にMQL5を適応させたいと強く思っています。ライブラリのコードを調べたり遊んだりしているのですが、以下のようなベストプラクティスのアプローチについてお勧めのものがあれば教えてください:

QUESTION: エキスパートで受信したシグナルのトレンドフィルターをどのように統合しますか?

ライブラリにはCExpertBase::m_trend_typeプロパティが含まれていますが、残念ながら、プラットフォームで提供されている例のどこにも使用されていません。私は2つの設計の可能性に分かれています。トレンドフィルタリングオブジェクトに トレンドフィルタリングオブジェクト CExpertのサブクラスに直接トレンド・フィルタリング・オブジェクトを追加する(下のコード・スニペットを参照)。別の解決方法としては、メインシグナルオブジェクトのフィルターをいじり、CSignalExpertの サブクラス内でトレンドを計算し判断する。どちらのメソッドの利点と欠点が他のメソッドより優れているのか、そしてどちらが私の将来のプロジェクトの要求に対してより柔軟性を与えてくれるのか、つまり、複雑化することなく、より多くのコードを再利用し、私の基本クラスの微調整を減らすことができるのか、まだよく分かりません。

class CExpertWithTrendFilter : public CExpert
{
protected:
   CExpertSignal    *m_trend;   //CExpert::m_signalと並行して動作し、生成するシグナルをフィルターする。
// ...
   virtual bool      Processing(void);
   virtual bool      CheckOpen(void);
// ...
};

bool CExpertWithTrendFilter::Processing(void)
{
   CExpertBase::m_trend_type = (ENUM_TYPE_TREND) m_trend.Direction();    // CExpertSignalから派生した特殊なオブジェクトに基づいて現在のトレンドを判断する
   
   m_signal.TrendType(m_trend_type);              // CExpertSignalのサブクラスでもあるm_signalへの入力として、トレンドのタイプ/強さを渡す。
   m_signal.SetDirection();                      //OPTION #1 >> シグナルの方向を計算し、場合によっては上記で確立されたトレンドを考慮する(または考慮しない)

// ...

   if(CheckOpen())                               //OPTION #2 >>あるいは、ロングやショートを建てる前に、専門家がトレンドの種類や強さをチェックすることもできる。
      return(true);

   retun(false);                                 // 何も操作せずに戻る
}

bool CExpertWithTrendFilter::CheckOpen(void)
{
   if(m_trend_type > TYPE_TREND_FLAT && CheckOpenLong())     // トレンドフィルターの方向が一致した場合のみ、ロングを開始する
      return(true);
   if(m_trend_type < TYPE_TREND_FLAT && CheckOpenShort())    // トレンドフィルターの方向性が一致した場合のみ、ショートの開始を許可する
      return(true);

   return(false);                                // 何も操作せずに戻る
}

ご助力とご提案をよろしくお願いします。

 
EAコンストラクタの開発を試みて、ずっと前に私のトレーディング・エンジンに切り替えました。
An attempt at developing an EA constructor
An attempt at developing an EA constructor
  • www.mql5.com
In this article, I offer my set of trading functions in the form of a ready-made EA. This method allows getting multiple trading strategies by simply adding indicators and changing inputs.
 

わかりました -- 記事を読み、添付されたコードを見てみます......いずれにせよ、差し支えなければ、上記の質問についてコメント/意見をいただけるとありがたいです。ありがとうございました!

 
Dima Diall # :

わかりました。記事を読んで、添付されたコードを見てみます。いずれにせよ、もしよろしければ、上の質問についてコメントやご意見をいただけるとありがたいです。ありがとうございました!

CExpertSignalは過去のものです。コメントはありません。

 
Vladimir Karputov #:

CExpertSignalは過去のものです。コメントはありません。

:-)