【移植#97】5秒・15秒・30秒足をティックから描く — MT5で刻むサブ分足¶

この記事の3行まとめ
- 実ティックを時間区切りでまとめ、秒単位のローソクをチャートオブジェクトとして描きます
- ティックがなかった区間には足を作らず、履歴が届くまで初期表示を待ちます
- MT5の標準時間足やテスター用の秒足を追加するものではありません
1分より細かい値動きを見る¶
原典は2010年5月21日の「5秒足、15秒足、30秒足!」です。MT4の標準チャートで扱えない1分未満を、ティックが来た時刻で区切って表示する発想を扱っています。足の間隔は指定できても、その秒数ちょうどにティックが届くとは限らず、ティックがなければ足も作られないという説明でした。
今回はMT5向けに独立実装し、受信したティックのBidを使って5〜60秒の区間ごとに始値・高値・安値・終値を集計します。Bidが使えないティックではLastを補助価格として使います。初期表示では直近のティック履歴を取得し、以後は新しいティックで最後の足を更新します。
MT5上ではチャートオブジェクトとして重ねる¶
MT5の標準時間足に秒単位はありません。MQL5公式の時間足一覧も分足以上です。そのため、このインジケーターは時間足そのものを増やすのではなく、今開いているチャートへヒゲと実体のオブジェクトを重ねて描きます。通常の価格チャート上で値動きを確認するための表示で、別の秒足チャートやヒストリカルデータを作る機能ではありません。 読み取りやすさのため、画面上では生成済みの足を一定間隔で並べます。横方向の間隔は経過時間に比例せず、足のない区間は詰めて表示します。
区切りはサーバー時刻を基準にします。例えば15秒なら、時刻の秒部分が00、15、30、45となる区間に分けます。各足のOHLCはその区間に実際に届いた価格から計算します。区間内にティックがなければ足を補間しません。このため、ニュースや流動性の低い時間帯には足の間隔が空くことがあります。
履歴の到着と表示数¶
起動時はCopyTicksRangeで指定した直近履歴を読み込みます。公式リファレンスでは、取得範囲とティック配列の並びが説明されています。ブローカーや端末の状態によっては最初の要求でまだ履歴を取得できないことがあり、その場合は次の計算機会に再試行します。今回の実行でも初回要求は0件でしたが、その後に履歴が届き、表示が準備完了になりました。初期取得できたティックはその時点の配信履歴に限られ、起動直後から十分な本数がそろう保証はありません。
表示数には上限があり、古い足から順に描画を取り除きます。入力値は足の秒数、履歴を要求する長さ、画面に残す足の最大数です。初期値は5秒、5分、80本です。秒数は5〜60秒、履歴は1〜30分、表示上限は5〜300本の範囲で変更できます。
専用MT5での確認¶
Build 6230の専用MT5でEURUSD M1へ追加し、5秒区切りで動かしました。撮影画像のラベルには24本が表示されています。撮影EAが別にCopyTicksRangeから直近の区切りを集計し、検査時点では直近5区切りに対応するヒゲ・実体オブジェクトがあることを確認しました。これはOHLC値そのものの独立照合ではなく、表示対象となる時刻区間の確認です。インジケーターと撮影EAはそれぞれ0 errors・0 warningsでコンパイルされ、注文・ポジションは0件でした。
この確認は、端末が受け取ったティックと描画結果の一致を示すものです。配信元のティック履歴が欠けている場合に、その欠損を補うものではありません。また、秒足を使った売買成績や実運用上の優位性を検証したものでもありません。
使い方と注意点¶
ダウンロードしたインジケーターをMT5へ配置し、対象チャートへ追加します。秒数を5、15、30などに設定して、ティックのまとまり方を切り替えられます。描画はチャート上のオブジェクトなので、他のインジケーターや手動描画と重なることがあります。インジケーターを外すと、このインジケーターが作成した足を削除します。
標準のMT5時間足として選択できるわけではなく、秒足データをエクスポートしたり、ストラテジーテスターを秒足で実行したりする機能もありません。履歴取得・描画負荷やブローカーのティック品質は環境に依存します。まずデモ口座や過去チャートで表示を確認してください。
ダウンロード¶
97_Seconds_Tick_Candles_v1_00.mq5 をダウンロード
前後の記事¶
次: 【移植#98】値幅に合わせて期間を変える移動平均 — レンジ内へ収まる適応ルール