無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
エキスパート

CExpertに基づいた売買のみのEA - MetaTrader 5のためのエキスパート

ビュー:
1292
評価:
(30)
パブリッシュ済み:
2016.10.15 19:20
アップデート済み:
2016.11.22 07:34
\MQL5\Include\Expert\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

現在のエキスパートアドバイザーは CExpertクラスの拡張に基づいて売買(あるいはその両方)のポジションを開くことのみを選択することができます。

2つの異なるファイルが用意されています。

  • LongShortExpertModified.mqh:このクラスはデフォルトのCExpertを拡張し、望まれた注文のみを出すためにCheckOpen()とCheckReverse()メソッドが修正します。
  • LongShortExpertMACD.mq5:このEAは、入力パラメータに応じて希望された注文タイプのみを可能にするために開発され修正されたエキスパートを含んだ、組み込まれたExpertMACD.mq5クラスの単純なバリアントで、エキスパートの使用を明確にするために用意されています。

LongShortExpertModified

このクラスはデフォルトのCExpertクラスの動作を修正し、次の列挙体に応じて一定のタイプの注文のみを許可します。

enum ENUM_AVAILABLE_POSITIONS
  {
   LONG_POSITION,
   SHORT_POSITION,
   BOTH_POSITION
  };

この列挙型は、注文の種類が許可されるかを決定するために必要な最終的なEAの入力パラメータとして使用され、望まれた注文のみを出し両方のポジションタイプが許可されている場合(BOTH_POSITION列挙値)にのみ注文の反転を処理するために内部的に使用されます。<分節0708>

これにはCheckOpen()とCheckReverse()メソッドが書き直されています。

class CLongShortExpertModified : public CExpert
  {
protected:
   ENUM_AVAILABLE_POSITIONS m_positions;
public:
                     CLongShortExpertModified(void);
                    ~CLongShortExpertModified(void);
   virtual bool      CheckOpen(void);
   virtual bool      CheckReverse(void);
   void SetAvailablePositions(ENUM_AVAILABLE_POSITIONS newValue){m_positions=newValue;};
  };

CheckOpen() はm_positions値に応じて買いポジションか売りポジションのみをチェックするように修正されています。

bool CLongShortExpertModified :: CheckOpen()
  {
   switch(m_positions)
     {
      case LONG_POSITION:
         return CheckOpenLong();         // 買いポジションのみをチェックする
      case SHORT_POSITION:
         return CheckOpenShort();        // 新しい売りポジションのみをチェックする
      default:
         return CExpert::CheckOpen();    // デフォルトの動作
     }
  }

CheckReverse() は両ポジションタイプが許可されているときのみポジションの反転をチェックするように修正されています。

bool CLongShortExpertModified::CheckReverse()
  {
   switch(m_positions)
     {
      case LONG_POSITION:
      case SHORT_POSITION:
         return false;                    // 反転は許可されていない
      default:
         return CExpert::CheckReverse(); // デフォルトの動作
     }
  }

LongShortExpertMACD

このクラスは、MQL5ディストリビューションに含まれるデフォルトExpertMACD EAに基づいて、前のクラスを使用する特定のEAの例を提供します。

まず、具体的なエキスパートクラスが含まれていて、かつ対応する入力パラメータが追加される必要があります。また、外部のエキスパートがデフォルトのCExpertの代わりにサブクラスに関連付けられます。

#include <Expert\LongShortExpertModified.mqh>
//[...]
input ENUM_AVAILABLE_POSITIONS Inp_Allowed_Positions=BOTH_POSITION; // 買/売/両方のポジションが許可される
//[...]
CLongShortExpertModified ExtExpert;  // 特別にデザインされたCExpertサブクラス

エキスパートの初期化後、パラメータが入力された値に応じて設定される必要があります。

if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- 失敗した
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(-1);
     }
   
   // どちらのポジションが許可されているかを制御する特定のパラメータ<
   ExtExpert.SetAvailablePositions(Inp_Allowed_Positions);  

追加の変更は必要ありません。次の図は、エキスパートの設定パラメータを示しています。

買/売のみの一般的なエキスパートアドバイザー

MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/1896

コメンテーター コメンテーター

コメンテーター指標はテクニカル指標のグループを分析し、現在の市場の状態に関する情報と取引に関する推奨を表示します。

Mercado Aberto Mercado Aberto

市場が開いているときを示す単純な指標。

ColorDM_361 ColorDM_361

着色された文字の形でのデジタルモメンタム

i-PassLevCCI_v.1.3 i-PassLevCCI_v.1.3

コモディティチャンネル指数オシレータを使用したセマフォシグナル指標