コンテンツにスキップ

【移植#04】TickチャートMA — Tickにテクニカル分析を適用する

TickチャートMAインジケータ

TickチャートMAインジケータの実行結果

この記事の3行まとめ

  • 📊 MT5サブウィンドウでTickデータ+移動平均をリアルタイム表示
  • 🔄 MT4のオフラインチャート方式は廃止 → サブウィンドウ方式で代替
  • ⚡ 1分足では捉えきれない超短期の値動きを可視化

はじめに

この記事は、「とあるMetaTraderの備忘秘録」様のブログ記事をMQL5に移植するシリーズの第4弾です。

MT4のデフォルトTickチャートは非常に貧弱で、テクニカル分析を適用することができませんでした。 そこで、Tickデータにテクニカル分析を適用できる仕組みをMQL5で再現しました。

元ネタ

MT4でTickチャートのテクニカル分析をする
https://fai-fx.hatenadiary.org/entry/20090813/1250090689
(2009年8月13日 公開)


元記事のアプローチ(MT4)

FAI-FXブログでは「TickChartMaker」というインジケータを使って、この問題を解決していました。

TickChartMaker の仕組み(MT4)

graph LR
    A[Tickデータ受信] --> B[オフラインチャートに書き込み]
    B --> C[1Tick = 1バーとして記録]
    C --> D[オフラインチャートを開く]
    D --> E[任意のインジケータを適用]
  1. Tickデータを収集
  2. オフラインチャートファイル(.hst)に書き込む
  3. 1Tickを1バーとして記録(時間軸は1970年から開始)
  4. 生成されたオフラインチャートを開く
  5. ボリンジャーバンド、MACD等の好みのインジケータを適用

元記事の活用例

Tickチャートでのインジケータによる分析状況をGlobal Variablesに書き込み、別のタイムフレームで動かしているEAでそれを読み取り、売買戦略に利用している人も居るそうです。


⚠️ MT5への移植が困難な理由

MT4の「オフラインチャート」機能は、MT5では廃止されました。

機能 MT4 MT5
オフラインチャート ✅ サポート ❌ 廃止
.hstファイル書き込み ✅ 可能 ❌ 不可
カスタムシンボル ❌ なし ✅ 新機能

MT5での代替アプローチ

MT5でTickベースのテクニカル分析を実現するには、以下の3つのアプローチが考えられます:

アプローチ 説明 メリット デメリット
A. Custom Symbol Tickデータから合成シンボルを生成 元記事に最も近い動作 実装が複雑、毎回シンボル作成が必要
B. Tickベース指標の独自実装 サブウィンドウでTick版MA/RSI等を自前計算 柔軟性が高い 各指標を個別に実装する必要あり
C. サブウィンドウ描画 Tickラインと基本的なMAをオーバーレイ シンプル、すぐ使える 複雑な指標には対応不可

今回採用したアプローチ:サブウィンドウ描画方式

今回は アプローチC(サブウィンドウ描画) を採用しました。

採用理由

  1. シンプルさ — 1ファイルで完結、追加設定不要
  2. 即座に動作 — チャートに適用するだけ
  3. 実用性 — Tickの短期トレンドを把握するには十分

Custom Symbol方式を選ばなかった理由

Custom Symbolを使えば元記事と同様の動作が可能ですが:

  • シンボル作成・管理のオーバーヘッドが大きい
  • MT5再起動時にシンボルを再設定する必要がある
  • スキャルピングの「即時性」と相性が悪い

日常的に使うツールとしては、サブウィンドウ方式の方が実用的と判断しました。


インジケータの機能

表示内容

要素 説明 デフォルト色
Tickライン Bid価格の推移 青 (DodgerBlue)
短期MA 直近Tickの移動平均 オレンジ
長期MA 長期Tickの移動平均

パラメータ

パラメータ デフォルト 説明
MaxTicks 500 保持するTick数
FastMAPeriod 20 短期MA期間
SlowMAPeriod 50 長期MA期間
TickColor DodgerBlue Tickラインの色
FastMAColor Orange 短期MAの色
SlowMAColor Red 長期MAの色

使い方

インストール

  1. 04_TickChart_MA.mq5 をダウンロード
  2. MetaEditorで開いてコンパイル
  3. ナビゲータからチャートにドラッグ&ドロップ

活用例

スキャルピングでの活用

  • MAのゴールデンクロス/デッドクロス でエントリータイミングを判断
  • Tickラインが急騰/急落している最中のエントリーを避ける
  • 1分足では捉えきれない「ぎりぎりの動き」を可視化

注意事項

  • このインジケータはリアルタイムチャート専用です
  • バックテスト環境では正常に動作しません
  • MT5起動時はTickデータが空の状態から始まります

技術的なポイント

Tickデータの管理

C++
//--- 最大数を超えた場合、古いデータをシフト
if(TickCount >= MaxTicks)
{
   for(int i = 0; i < MaxTicks - 1; i++)
   {
      TickData[i] = TickData[i + 1];
   }
   TickData[MaxTicks - 1] = price;
}

MaxTicks(デフォルト500)を超えると、古いデータを自動的に削除してメモリを節約します。

MAの計算

TickデータのMAは、通常の価格バーとは異なり時間軸を持たない点に注意が必要です。 Tick20本分のMAは「直近20回の価格更新の平均」であり、20秒とは限りません。


ソースコードのダウンロード

この記事で紹介したインジケータをダウンロードできます。

ファイルの種類:インジケータ

保存先: MQL5/Indicators/ フォルダ
使い方: MT5のナビゲーターから「インディケータ」を展開し、チャートにドラッグ&ドロップで適用

04_TickChart_MA.mq5 をダウンロード


まとめ

項目 内容
元記事 MT4のオフラインチャート機能でTickにテクニカル分析を適用
MT5での課題 オフラインチャート機能が廃止
今回の解決策 サブウィンドウでTick+MAを直接描画
メリット シンプル、即座に動作、1ファイルで完結

参考文献


関連記事・用語


MQL移植シリーズ一覧に戻る