スポンサーリンク
検索
カスタム検索
MQL4リファレンスツリー
iAlligator


iAlligator


アリゲーターインジケータを計算し、その値を返します。


関数書式:
double  iAlligator(
   string       symbol,            // 通貨ペア
   int          timeframe,         // 時間軸
   int          jaw_period,        // ジョーライン平均期間
   int          jaw_shift,         // ジョーラインシフト
   int          teeth_period,      // トゥースライン平均期間
   int          teeth_shift,       // トゥースラインシフト
   int          lips_period,       // リップライン平均期間
   int          lips_shift,        // リップラインシフト
   int          ma_method,         // 平均化メソッド
   int          applied_price,     // 適用価格
   int          mode,              // ラインインデックス
   int          shift              // シフト
   );



■引数
引数名 初期値 I/O 詳細
symbol - In インジケータ計算するデータの通貨ペア名。
NULLは現在の通貨ぺアを意味します。
timeframe - In 時間軸。
ENUM_TIMEFRAMES列挙の値を指定します。
0は現在の時間軸を意味します。
jaw_period - In ジョーライン平均期間
jaw_period - In ジョーラインシフトシフト
teeth_period - In トゥースライン平均期間
teeth_shift - In トゥースラインシフト
lips_period - In リップライン平均期間
lips_shift - In リップラインシフト
ma_method - In 平均化メソッド
ENUM_MA_METHOD列挙の値を指定します。
applied_price - In 適用価格。
ENUM_APPLIED_PRICE列挙の値を指定します
mode - In インジケータラインインデックス
iAlligator()関数用のインジケータラインID列挙の値を指定します。
shift - In インジケータバッファから取得する値のインデックス。
(現在バーを基準にして、指定した時間軸のバー数分を過去方向へシフト)


■戻り値
アリゲーターインジケータ計算値を返します。



■備考
無し

サンプルソース:
    double result = iAlligator(
                                  NULL,            // 通貨ペア
                                  0,                // 時間軸
                                  13,               // ジョーライン平均期間
                                  8,                // ジョーラインシフト
                                  8,                // トゥースライン平均期間
                                  5,                // トゥースラインシフト
                                  5,                // リップライン平均期間
                                  3,                // リップラインシフト
                                  MODE_SMMA,       // 平均化メソッド
                                  PRICE_CLOSE,     // 適用価格
                                  MODE_GATORJAW,   // ラインインデックス
                                  1                 // シフト
                                 );


サンプルソース:
#property strict
#property indicator_chart_window // カスタムインジケータをチャートウインドウに表示する

// インジケータプロパティ設定
#property  indicator_buffers    3               // カスタムインジケータのバッファ数
#property  indicator_color1     clrRed         // インジケータ1の色
#property  indicator_type1      DRAW_LINE     // インジケータ1の描画タイプ
#property  indicator_color2     clrAqua         // インジケータ2の色
#property  indicator_type2      DRAW_LINE     // インジケータ2の描画タイプ
#property  indicator_color3     clrGreen         // インジケータ3の色
#property  indicator_type3      DRAW_LINE     // インジケータ3の描画タイプ

// インジケータ表示用動的配列
double     _IndBuffer1[];                          // インジケータ1表示用動的配列
double     _IndBuffer2[];                          // インジケータ2表示用動的配列
double     _IndBuffer3[];                          // インジケータ3表示用動的配列

//+------------------------------------------------------------------+
//| OnInit(初期化)イベント
//+------------------------------------------------------------------+
int OnInit()
{
   SetIndexBuffer( 0, _IndBuffer1 );     // インジケータ1表示用動的配列をインジケータ1にバインドする
   SetIndexBuffer( 1, _IndBuffer2 );     // インジケータ2表示用動的配列をインジケータ2にバインドする
   SetIndexBuffer( 2, _IndBuffer3 );     // インジケータ3表示用動的配列をインジケータ3にバインドする

   return( INIT_SUCCEEDED );      // 戻り値:初期化成功
}

//+------------------------------------------------------------------+
//| OnCalculate(tick受信)イベント
//| カスタムインジケータ専用のイベント関数
//+------------------------------------------------------------------+
int OnCalculate(const int     rates_total,      // 入力された時系列のバー数
                const int       prev_calculated,  // 計算済み(前回呼び出し時)のバー数
                const datetime &time[],          // 時間
                const double   &open[],          // 始値
                const double   &high[],          // 高値
                const double   &low[],           // 安値
                const double   &close[],         // 終値
                const long     &tick_volume[],   // Tick出来高
                const long     &volume[],        // Real出来高
                const int      &spread[])        // スプレッド
{
    int end_index = Bars - prev_calculated;  // バー数取得(未計算分)

    for( int icount = 0 ; icount < end_index ; icount++ ) {

        // テクニカルインジケータ算出
        double result1 = iAlligator(
                                      NULL,            // 通貨ペア
                                      0,                // 時間軸
                                      13,               // ジョーライン平均期間
                                      8,                // ジョーラインシフト
                                      8,                // トゥースライン平均期間
                                      5,                // トゥースラインシフト
                                      5,                // リップライン平均期間
                                      3,                // リップラインシフト
                                      MODE_SMMA,       // 平均化メソッド
                                      PRICE_CLOSE,     // 適用価格
                                      MODE_GATORJAW,   // ラインインデックス
                                      icount            // シフト
                                     );

        double result2 = iAlligator(
                                      NULL,            // 通貨ペア
                                      0,                // 時間軸
                                      13,               // ジョーライン平均期間
                                      8,                // ジョーラインシフト
                                      8,                // トゥースライン平均期間
                                      5,                // トゥースラインシフト
                                      5,                // リップライン平均期間
                                      3,                // リップラインシフト
                                      MODE_SMMA,       // 平均化メソッド
                                      PRICE_CLOSE,     // 適用価格
                                      MODE_GATORTEETH,   // ラインインデックス
                                      icount            // シフト
                                     );

        double result3 = iAlligator(
                                      NULL,            // 通貨ペア
                                      0,                // 時間軸
                                      13,               // ジョーライン平均期間
                                      8,                // ジョーラインシフト
                                      8,                // トゥースライン平均期間
                                      5,                // トゥースラインシフト
                                      5,                // リップライン平均期間
                                      3,                // リップラインシフト
                                      MODE_SMMA,       // 平均化メソッド
                                      PRICE_CLOSE,     // 適用価格
                                      MODE_GATORLIPS,   // ラインインデックス
                                      icount            // シフト
                                     );


       _IndBuffer1[icount] = result1;   // インジケータ1に算出結果を設定
       _IndBuffer2[icount] = result2;   // インジケータ2に算出結果を設定
       _IndBuffer3[icount] = result3;   // インジケータ3に算出結果を設定
    }

   return( rates_total ); // 戻り値設定:次回OnCalculate関数が呼ばれた時のprev_calculatedの値に渡される
}




スポンサーリンク

スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system