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

SignalMAAboveBelow 3 - MetaTrader 5のためのライブラリ

ビュー:
864
評価:
(14)
パブリッシュ済み:
2018.05.11 09:59
\MQL5\Signal\ \MQL5\Experts\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

このライブラリはSignalMAAboveBelow2をさらに開発したものです。


バージョン32の新機能:

  • CurrentBarSizeパラメータでは現在のバーのサイズを設定できます(これはClose-Openとして計算されます)
  • PreviousBarSizeは、前のバーのサイズです(Close-Openとして計算されます)。

現在のバーの価格が指標の上にある場合、両方のバーは強気でなければなりません。現在のバーの価格が指標の下にある場合、両方のバーは弱気でなければなりません。したがって、これらの2つのパラメータ(CurrentBarSizePreviousBarSize)は、ポジションを開くときの保護フィルタです。

シグナルのモジュールでは、コンストラクタで時系列を接続する 必要があります。

//+------------------------------------------------------------------+
//| コンストラクタ                                                      |
//+------------------------------------------------------------------+
CSignalMA::CSignalMA(void) : m_reverse(false),
                             m_ma_period(12),
                             m_ma_shift(0),
                             m_ma_method(MODE_SMA),
                             m_ma_applied(PRICE_CLOSE),
                             m_pattern_0(80),
                             m_size_current_bar(40),
                             m_size_previous_bar(20)
  {
//--- 保護されたデータの初期化
   m_used_series=USE_SERIES_OPEN+USE_SERIES_HIGH+USE_SERIES_LOW+USE_SERIES_CLOSE;
  }

時系列を接続した後は、CiCloseクラスとCiOpenクラスのそれぞれのm_closeオブジェクトとm_openオブジェクトにアクセスできます(オブジェクトは 上位レベル(親のレベルExpertBase.mqhで宣言されています。)

これらのオブジェクトをCSignalMA::LongConditionで操作します。

//+------------------------------------------------------------------+
//| 価格が上昇するかどうかを「投票」する                                   |
//+------------------------------------------------------------------+
int CSignalMA::LongCondition(void)
  {
   if(m_type_trade==1) // m_type_trade: 取引種類の列挙体: 0 -> 買、1 -> 売、2 -> 売買
      return(0);
   int result=0;
   int idx   =StartIndex();
//---
   if(m_close.GetData(idx+1)-m_open.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_close.GetData(idx)-m_open.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- 直近の価格と第1の分析されたバーの指標との位置関係を分析する

CSignalMA::ShortCondition

//+------------------------------------------------------------------+
//| 価格が下落するかどうかを「投票」する                               |
//+------------------------------------------------------------------+
int CSignalMA::ShortCondition(void)
  {
//--- m_type_trade: 取引種類の列挙体: 0 -> 買、1 -> 売、2 -> 売買
   if(m_type_trade==0)
      return(0);
   int result=0;
   int idx=StartIndex();
//---
   if(m_open.GetData(idx+1)-m_close.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_open.GetData(idx)-m_close.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- 直近の価格と第1の分析されたバーの指標との位置関係を分析する

Reverse == false の場合にポジションを開く例:

SignalMAAboveBelow 3 買いポジションを開く

図1 SignalMAAboveBelow 3 - 買いポジションを開く

SignalMAAboveBelow 3 売りポジションを開く

図2 SignalMAAboveBelow 3 - 売りポジションを開く


シグナルモジュールのパラメータ

  • Reverse - シグナル反転フラグ
  • PeriodMA - 移動平均指標の平均期間
  • Shift - 移動平均指標の水平方向のシフト
  • Method - 移動平均指標の平滑化の種類
  • Applied - 移動平均の計算に使われる価格の種類
  • TypeOfTrade - 取引シグナルの種類: 0 → 買い、1 → 売り、2 → 売買
  • CurrentBarSize - 現在のバーのサイズ(Close-Openとして計算)
  • PreviousBarSize - 1つ前のバーのサイズ(Close-Openとして計算)

TestSignalMAAboveBelow3.mq5のテストエキスパートアドバイザーはデフォルトパラメータを持ち、最適化はされませんでした。

TestSignalMAAboveBelow3.mq5MQL5ウィザードで作成したエキスパートアドバイザーで

//+------------------------------------------------------------------+
//| 入力                                                          |
//+------------------------------------------------------------------+
//--- エキスパートの入力
input string             Expert_Title                 ="TestSignalMAAboveBelow3"; // ドキュメント名
ulong                    Expert_MagicNumber           =20884;                     // 
bool                     Expert_EveryTick             =false;                     // 
//--- メインシグナルの入力

ON EVERY TICK操作を有効にする(デフォルトの "false" を "true"に変更する)と、より興味深い結果を得ることができます。現在のバー(インデックス#0のバー )がCurrentBarSizeパラメータと同じか若干大きくなると、EAはより早くこの条件を処理します。

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

VSI VSI

VSI - Volatility Switch Indicator(ボラティリティスイッチ指標)

IDayIIndex IDayIIndex

IDayIIndex (Intraday Intensity Index) オシレータ指標です。

Alexav SpeedUp M1 Alexav SpeedUp M1

対向するポジションを同時に開きます。トレールストップ

数量平均パーセント 数量平均パーセント

このバージョンはある種の正規化されたバージョンで、選択された期間の平均数量と比較した数量がパーセントで表示されます。