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

MQL5 Wizard - ロウソク足の転換によるシグナル - MetaTrader 5のためのエキスパート

ビュー:
2221
評価:
(45)
パブリッシュ済み:
2015.10.29 12:41
アップデート済み:
2021.11.01 10:36
\MQL5\Include\Expert\Signal\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

MQL5 Wizardを使えば、エキスパートアドバイザーを自動生成することができます。 (MQL5 Wizard: Creating Expert Advisors without Programmingを参照).

CSignalCandles class に、ロウソク足の転換によるシグナルが入っています。(MQL5ウィザードでEAを自動生成する際 ) "Signals based on reversal candlestick patterns" です。

複数の足の計算を用いて転換パターンを特定するという考え方です。転換パターンは、 日本のロウソク足分析における"Hammer" や "Hanging Man" パターンと似ています。しかし、今回は単一の足の代わりに複数の足を使い、転換を確認するのに必要なロウソク足の実体は必要ありません。

パラメータの入力:

  • Range - 計算に使う足の最大数
  • Minimum - 足の最小サイズ(基準点).
  • ShadowBig and ShadowSmall - ヒゲ (足単位).
  • Limit, StopLoss and TakeProfit - エントリー価格、 SL や TP レベル。この値は足の終値によって決定されます。(足単位).
  • Expiration - 予約注文の際のオーダーの有効期限(足単位) (Limit!=0.0).

転換足は下記によって定義されます。

直近の確定した足から、合成足のパラメーターをRangeパラメーターで決められた期間、計算します。転換足の大きさがMinimumパラメーターの値よりも大きければ、その影の分析により転換の条件を確認します。

ベアパワーは、足の上ヒゲのサイズによって決まります。ブルパワーは下ヒゲのサアイズによって決まります。

  • ベアトレンドの転換(ブルの始まり)を確認するには、下記が必要です。: 下ヒゲのサイズがShadowBigパラメーターの値よりも大きい。上ヒゲ(ベアパワー)のサイズは、ShadowSmallパラメーターの値よりも小さい。
  • ブルトレンド(ベアの始まり)を確認するには、下記が必要です。: 上ヒゲ(ベアパワー)のサイズがShadowBigパラメーターの値よりも大きい。下ヒゲ(ブルパワー)のサイズがShadowSmallパラメーターの値よりも小さい。

転換の手法に加えて、Limitパラメーターの値を負にすることにより、ブレイクダウンの手法を使うことも可能です。 (MQL5 Wizard - Trade Signals Based on Crossover of Two EMA with intraday time filterを参照).

Limit によって、3つの異なるエントリー方法を使うことができます。:

  1. Limit>0. 市場価格が推移している方向とは逆の方向にエントリーします。 (Buy Limit、 Sell Limitの予約注文はトレードシグナルによって位置づけられます。)
  2. Limit<0. 市場価格が推移している方向にエントリーします。 (Buy Stop、 Sell Stopの予約注文はトレードシグナルによって位置づけられます。).
  3. Limit=0. 市場価格をそのまま使います。

この手法は、CSignalCandles classに実装されています。

図1. ロウソク足の転換パターンによるトレードシグナル

図1. ロウソク足の転換パターンによるトレードシグナル


トレードシグナル

このトレード手法は、CSignalCandles classにあります。Candle() 関数が入っており、分析に使います。:

int  Candle(int ind); // Returns the positive/negative number depending on type of the composite candle
                        // the returned value is the number of bars (candles) in the composite candle (starting from ind)

転換の状態の形成にはいくつかの足が必要です。足の最小数はRangeパラメーターによって決めます。Rangeで決めた値よりも少ない本数で転換状態が形成される場合があります。(サイズ/ヒゲが満たされたとき)転換足が形成されていないとき、Candle関数は0を返します。


1. 買いポジション

買いポジションには、ブル型の転換足が必要です。この関数は、転換足が形成されていないか、転換足がベア型の状態かを確認して、値を返します。それ以外の場合、転換足のサイズ (価格、SL、TPの計算に必要)と予約注文の際の価格レベルを計算します。

予約注文のタイプ(Buy Limit、 Buy Stop) は、Limitパラメーターによって決められます。(Limit=0 もしくは |price-ask|<stops level の場合、成行注文。Limit>0 の場合,Buy Limit.Limit<0 の場合、Buy Stop)

//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- check the fact of the bullish composite candle formation 
   if(Candle(1)<=0) return(false);
//--- get the size of the composite candle
   double size=m_high_composite-m_low_composite;
//--- calculate the price of pending order
   price=m_symbol.NormalizePrice(m_symbol.Ask()-m_limit*size);
//--- calculate Stop Loss price
   sl   =m_symbol.NormalizePrice(price-m_stop_loss*size);
//--- calculate Take Profit price
   tp   =m_symbol.NormalizePrice(price+m_take_profit*size);
//--- set order expiration time
   expiration+=m_expiration*PeriodSeconds(m_period);
//--- the conditions are satisfied, return true
   return(true);
  }

2. 買いの決済

ベア型の転換足が形成されたとき、買いポジションを決済します。

//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseLong(double& price)
  {
//--- check the fact of the bearish composite candle formation 
   if(Candle(1)>=0) return(false);
//---
   price=0.0;
//--- the conditions are satisfied, return true
   return(true);
  }


3. 売りポジション

ベア型の転換足が形成されたとき、売りポジションをとります。転換足が形成されていないとき、もしくは、ベア型でないとき、値を返します。それ以外の場合、サイズと予約注文の価格レベルを決定します。

(オーダータイプは、Limitパラメーターによって決められます。"買いポジション"を参照してください。).

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- check the fact of the bearish composite candle formation 
   if(Candle(1)>=0) return(false);
//--- get the size of the composite candle
   double size=m_high_composite-m_low_composite;
//--- calculate the price of pending order
   price=m_symbol.NormalizePrice(m_symbol.Bid()+m_limit*size);
//--- calculate Stop Loss price
   sl   =m_symbol.NormalizePrice(price+m_stop_loss*size);
//--- calculate Take Profit price
   tp   =m_symbol.NormalizePrice(price-m_take_profit*size);
//--- set order expiration time
   expiration+=m_expiration*PeriodSeconds(m_period);

//--- the conditions are satisfied, return true   return(true);
  }


4. 売りポジションの決済

ブル型の転換足が形成されたとき、売りポジションを決済します。

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseShort(double& price)
  {
//--- check the fact of the bullish composite candle formation 
  if(Candle(1)<=0) return(false);
//---
   price=0.0;
//--- the conditions are satisfied, return true
   return(true);
  }

MQL5 WizardでEAを生成する

この手法のトレードロボットを生成するには、MQL5 Wizardの"Creating Ready-Made Expert Advisors"の"Signals based on reversal candlestick patterns"を選択してください。:

図2. MQL5 Wizard の "Signals based on reversal candlestick patterns "を選択してください。

図2. MQL5 Wizard の "Signals based on reversal candlestick patterns "を選択してください。

次に、trailing stopmoney and risk management の有無を選択します。エキスパートアドバイザーのコードは自動的に生成されるので、コンパイルすれば、MetaTrader 5 client terminalの Strategy Testerでテスト可能です。


テスト結果

過去データでエキスパートアドバイザーをテストしてみましょう。 (EURUSD M15, テスト期間: 1.1.2010-05.01.2011, Range=3, Minimum=50, ShadowBig=0.5, ShadowSmall=0.2, Limit=0, StopLoss=2.0, TakeProfit=1.0, Expiration=4).

エキスパートアドバイザーの生成において、今回は固定ロット(Trading Fixed Lot, 0.1), トレーリングストップ(Trailing not used)はなしを選択しました。

図3. 転換足パターンによるトレード手法のトレード結果

図3. 転換足パターンによるトレード手法のトレード結果


アタッチメント: SignalCandles.mqh と CSignalCandles class がterminal_data_folder\MQL5\Include\Expert\Signal folderになければなりません。

生成したコードは、expert_candles.mq5 です。


MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/268

MQL5 Wizard - アリゲーターのクロスによるトレードシグナル MQL5 Wizard - アリゲーターのクロスによるトレードシグナル

アリゲーターのクロスによるトレードシグナルを検証することができます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナル MQL5 Wizard - ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナル

ザラバフィルター付きの2つの指数平滑移動平均のクロスによるトレードシグナルを考えます。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - ストキャスティクスをフィルターとした3 Black Crows/3 White Soldiersロウソク足パターン MQL5 Wizard - ストキャスティクスをフィルターとした3 Black Crows/3 White Soldiersロウソク足パターン

このトレードシグナルは、ストキャスティクスをフィルターとした"3 Black Crows/3 White Soldiers"ロウソク足パターンです。この戦略のエキスパートのコードは、MQL5ウィザードで自動生成させることができます。

MQL5 Wizard - 足の転換によるシグナル MQL5 Wizard - 足の転換によるシグナル

このクラスは、足の転換によるシグナルの生成に使います。