
XMの仮想通貨取引をしながら
自動売買のプログラムを毎日考えています。
さて今日はMT5でのHighLowバンドインジを
作ってみました。
MT4ならiHighestとかiLowestとか
便利な関数があったのに
MT5では何故か消えてしまいました。
今回は普通のHighLowバンドですが
次回はMTFで1時間ずらしたりした
インジケータを作ろうと思います。
MT5 HighLowバンド インジケータ
BandPeriod期間の中の
高値安値ラインを表示する
インジケータです。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | // プリプロセッサ命令(プログラム全体の設定) #property indicator_chart_window #property indicator_buffers 3 #property indicator_plots   3 #property indicator_type1   DRAW_LINE #property indicator_type2   DRAW_LINE #property indicator_type3   DRAW_LINE #property indicator_color1  clrNONE #property indicator_color2  clrCoral #property indicator_color3  clrCyan // 指標バッファ用の配列の宣言 double BufMain[];    // ベースラン double BufUpper[];   // 上位ライン double BufLower[];   // 下位ライン // 外部パラメータ input int BandsPeriod = 20;        // HLバンドの期間 // 初期化関数 int OnInit() {    // 指標バッファの割り当て    SetIndexBuffer(0, BufMain, INDICATOR_DATA);    SetIndexBuffer(1, BufUpper, INDICATOR_DATA);    SetIndexBuffer(2, BufLower, INDICATOR_DATA);    ArraySetAsSeries(BufMain, true);    ArraySetAsSeries(BufUpper, true);    ArraySetAsSeries(BufLower, true);    return(0); } // 指標計算関数 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[],                 const long& Volume[],                 const int& Spread[]) {    // 時間並びの変更    ArraySetAsSeries(High, true);    ArraySetAsSeries(Low, true);    // カスタム指標の範囲    int limit = rates_total - prev_calculated;    if(limit == 0) limit = 1;    for(int i=limit-1; i>=0; i--)    {    BufUpper[i]=High[ArrayMaximum(High,i,BandsPeriod)];    BufLower[i]=Low[ArrayMinimum(Low,i,BandsPeriod)];    BufMain[i]=(BufUpper[i]+BufLower[i])/2;       }    return(rates_total); } | 
上記コードをコピーしてMetaEditorに
貼り付けてご利用ください。
ちなみに素人作成なので不具合が生じても
当サイトは責任を取りかねます。
コードの内容
ArrayMaximumやArrayMinimumが
最大最小の配列を探す関数になります。
inputで期間を外部入力できます。
仮想通貨との相性
仮想通貨は騙しが少なく
高値ブレイクで走る傾向が強いです。
高値ラインブレイクと
安値でのトレールなら
それなりの優位性がありそう。
短い足より長い足の方が良いでしょうね。
まとめ
XMの仮想通貨取引で使う
MT5プラットフォームで動く
HighLowバンドインジケータの
紹介でした。

