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 // 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の値に渡される }