コンテンツにスキップ

【移植#89】形成中の日足EMAをたどる — H1確定値から軌跡を描く

EURUSD H1チャートに、確定した各H1終値から推定した日足EMAの軌跡をオレンジ色で表示したMT5実画面

この記事の3行まとめ

  • 日足EMAを、各H1確定終値を仮の日足終値として計算し直して表示します
  • まだ確定していない日足の値や、後から確定した日足終値は過去の軌跡に使いません
  • EURUSD H1の確定180本で独立計算と一致し、形成中のH1足は空欄にしました

日足の線を、時間足の途中でも見たい

前回の移植#88では週境界の実在する足を探しました。今回は2010年4月28日の「MTFの軌跡が分かるインジケータ?」を題材に、H1チャート上で日足EMAの推移を過去へさかのぼって表示します。

元記事を読む

通常の日足EMAをH1へ表示すると、見えるのは日足単位の値です。日足が形成されている途中に、H1の各確定時点でEMAがどの辺りにあったかを並べて見るには、日足の「その時点での仮の終値」を置いて計算する必要があります。

各H1終値を仮の日足終値にする

期間10の日足EMAを例にすると、各H1確定足の推定値は次の式です。

Text Only
推定EMA = 前の日足までで確定したEMA
        + α × (そのH1の終値 - 前の日足までで確定したEMA)
α = 2 / (10 + 1)

これは、EMAの再帰式で現在の日足終値をそのH1終値に置き換えたものです。計算には、その日より前に確定した日足EMAを使います。後日確定した日足終値を過去のH1へ流用しないため、未来の情報が過去の線へ混ざりません。

インジケーターは日足EMAをiMA()で作り、CopyBuffer()で必要な履歴を取得します。各チャート足の時刻をiBarShift()で日足へ対応づけます。既定では直近600本までを計算し、現在形成中のチャート足には値を描きません。

この実装は記事本文で説明されている「進行中の日足終値を過去のH1終値で置き換える」考え方から、EMA専用の式へ組み直したものです。元記事にある配列計算の初期値や履歴上限まで同一に再現した移植ではなく、同じ数値になるとは限りません。

確定H1足180本を照合

MT5 Build 6230で、配布インジケーターと検証用プログラムをそれぞれ0エラー・0警告でコンパイルしました。EURUSD H1の確定180本について、表示バッファを、日足EMAと各H1終値から別経路で再計算した値と比較し、最大差は0でした。日足EMAの配列取得と直接取得も一致しました。

検証した範囲では同じ日足の中でも軌跡が変化し、形成中のH1足は空欄です。注文・ポジション数は変わっていません。掲載画像は検証端末で撮影したチャートです。オレンジ線は遅行する日足EMAなので、表示区間ではH1価格より上に離れて見えます。これはその時点のEURUSDの一画面であり、常に価格の上に出るという意味ではありません。

使い方

89_MTF_EMA_Trajectory_v1_00.mq5 をダウンロード

  1. MT5のデータフォルダ内 MQL5/Indicators に保存してMetaEditorでコンパイルします。
  2. 日足より短い時間足のチャートへ追加します。
  3. オレンジ色の線が、各確定足終値を使った日足EMAの推定値です。線の色や太さはMetaTraderのプロット設定から変更できます。
入力 既定値 役割
InpEmaPeriod 10 日足EMAの期間(2~200)
InpMaxBars 600 チャート上で計算する最大バー数(100~5,000)

この線は各時点での推定値を見やすく並べたものです。日足の確定EMAをH1へ滑らかに補間する#45の表示とは意味が異なり、売買シグナルや将来の確定値を示しません。銘柄の取引時間や日足の区切りはブローカーによって異なり、H1の終値と日足の終値が一致するとも限りません。期間、初期履歴、利用できる日足データによっても値は変わります。

参考

あわせて読みたい記事

次: 【移植#90】MTFサポート・レジスタンスを自動更新 — フラクタルの更新範囲を見直す

— SPONSORED —