katsu miya:
3日足のローソク足をMT5で表示させたいのですが、やり方がさっぱりわかりません。
どなたかご存知の方がいましたら教えて下さい。
MT5で事前に定義されたチャート時間軸には、"3日"は無いようです。
チャート時間軸
https://www.mql5.com/ja/docs/constants/chartconstants/enum_timeframes
"3日足を描画"するカスタムインジケータを
・探す
・作る
・クリエーターに作成を依頼する
方法しか無いと思います。
MQL5のドキュメンテーション: 標準的な定数、 列挙と構造体 / チャート定数 / チャート時間軸
- www.mql5.com
事前定義されたチャート時間軸の全ては、一意の識別子を持っています。PERIOD_CURRENT 識別子は、MQL5 プログラムが実行されているチャートの現在の期間を意味します。 ENUM_TIMEFRAMES 例: 時系列識別子は iHighest() 及び iLowest()...
そうなんですね。教えていただきありがとうございます。
//+------------------------------------------------------------------+ //| Pseudo_3Day_OHLC_SimpleCenter.mq5 | //+------------------------------------------------------------------+ #property strict #property indicator_separate_window #property indicator_buffers 8 #property indicator_plots 2 // プロット1: 陽線(青) #property indicator_type1 DRAW_CANDLES #property indicator_color1 clrBlue #property indicator_width1 5 // ★ 最大太さ // プロット2: 陰線(赤) #property indicator_type2 DRAW_CANDLES #property indicator_color2 clrRed #property indicator_width2 5 // ★ 最大太さ double UpOpen[], UpHigh[], UpLow[], UpClose[]; double DnOpen[], DnHigh[], DnLow[], DnClose[]; //---------------------------------------------- int OnInit() { SetIndexBuffer(0, UpOpen, INDICATOR_DATA); SetIndexBuffer(1, UpHigh, INDICATOR_DATA); SetIndexBuffer(2, UpLow, INDICATOR_DATA); SetIndexBuffer(3, UpClose, INDICATOR_DATA); SetIndexBuffer(4, DnOpen, INDICATOR_DATA); SetIndexBuffer(5, DnHigh, INDICATOR_DATA); SetIndexBuffer(6, DnLow, INDICATOR_DATA); SetIndexBuffer(7, DnClose, INDICATOR_DATA); return(INIT_SUCCEEDED); } //---------------------------------------------- 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[]) { // ★ D1 以外は真っ暗 if(Period() != PERIOD_D1) { ArrayInitialize(UpOpen, EMPTY_VALUE); ArrayInitialize(UpHigh, EMPTY_VALUE); ArrayInitialize(UpLow, EMPTY_VALUE); ArrayInitialize(UpClose, EMPTY_VALUE); ArrayInitialize(DnOpen, EMPTY_VALUE); ArrayInitialize(DnHigh, EMPTY_VALUE); ArrayInitialize(DnLow, EMPTY_VALUE); ArrayInitialize(DnClose, EMPTY_VALUE); return(rates_total); } int start = prev_calculated; if(start < 3) start = 3; if(prev_calculated == 0) { ArrayInitialize(UpOpen, EMPTY_VALUE); ArrayInitialize(UpHigh, EMPTY_VALUE); ArrayInitialize(UpLow, EMPTY_VALUE); ArrayInitialize(UpClose, EMPTY_VALUE); ArrayInitialize(DnOpen, EMPTY_VALUE); ArrayInitialize(DnHigh, EMPTY_VALUE); ArrayInitialize(DnLow, EMPTY_VALUE); ArrayInitialize(DnClose, EMPTY_VALUE); start = 3; } for(int i = start; i < rates_total; i += 3) { int i0 = i - 2; // 1日目(実体だけ) int i1 = i - 1; // 2日目(本体) int i2 = i; // 3日目(実体だけ) if(i2 >= rates_total) break; double o = open[i0]; double c = close[i2]; double h = MathMax(high[i0], MathMax(high[i1], high[i2])); double l = MathMin(low[i0], MathMin(low[i1], low[i2])); bool isBull = (c >= o); if(isBull) { // ★ 1日目:実体だけ UpOpen[i0] = o; UpClose[i0] = c; UpHigh[i0] = c; UpLow[i0] = o; // ★ 2日目:本物の3日足(ヒゲあり) UpOpen[i1] = o; UpHigh[i1] = h; UpLow[i1] = l; UpClose[i1] = c; // ★ 3日目:実体だけ UpOpen[i2] = o; UpClose[i2] = c; UpHigh[i2] = c; UpLow[i2] = o; // 陰線側は全部消す DnOpen[i0] = DnHigh[i0] = DnLow[i0] = DnClose[i0] = EMPTY_VALUE; DnOpen[i1] = DnHigh[i1] = DnLow[i1] = DnClose[i1] = EMPTY_VALUE; DnOpen[i2] = DnHigh[i2] = DnLow[i2] = DnClose[i2] = EMPTY_VALUE; } else { // ★ 1日目:実体だけ DnOpen[i0] = o; DnClose[i0] = c; DnHigh[i0] = c; DnLow[i0] = o; // ★ 2日目:本物の3日足(ヒゲあり) DnOpen[i1] = o; DnHigh[i1] = h; DnLow[i1] = l; DnClose[i1] = c; // ★ 3日目:実体だけ DnOpen[i2] = o; DnClose[i2] = c; DnHigh[i2] = c; DnLow[i2] = o; // 陽線側は全部消す UpOpen[i0] = UpHigh[i0] = UpLow[i0] = UpClose[i0] = EMPTY_VALUE; UpOpen[i1] = UpHigh[i1] = UpLow[i1] = UpClose[i1] = EMPTY_VALUE; UpOpen[i2] = UpHigh[i2] = UpLow[i2] = UpClose[i2] = EMPTY_VALUE; } } return(rates_total); }
すでに一年半経過していて今更感マックスですけど
1分足チャート専用で、疑似的に3分足を表示出来るインジを作ってみました
さらにインジを追加したい時は1分足の期間を3倍にすれば実質3分足チャートではないかと...
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
3日足のローソク足をMT5で表示させたいのですが、やり方がさっぱりわかりません。
どなたかご存知の方がいましたら教えて下さい。