【移植#04】TickチャートMA — Tickにテクニカル分析を適用する¶
この記事の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[任意のインジケータを適用] - Tickデータを収集
- オフラインチャートファイル(
.hst)に書き込む - 1Tickを1バーとして記録(時間軸は1970年から開始)
- 生成されたオフラインチャートを開く
- ボリンジャーバンド、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ファイルで完結、追加設定不要
- 即座に動作 — チャートに適用するだけ
- 実用性 — 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の色 |
使い方¶
インストール¶
04_TickChart_MA.mq5をダウンロード- MetaEditorで開いてコンパイル
- ナビゲータからチャートにドラッグ&ドロップ
活用例¶
スキャルピングでの活用
- MAのゴールデンクロス/デッドクロス でエントリータイミングを判断
- Tickラインが急騰/急落している最中のエントリーを避ける
- 1分足では捉えきれない「ぎりぎりの動き」を可視化
注意事項
- このインジケータはリアルタイムチャート専用です
- バックテスト環境では正常に動作しません
- MT5起動時はTickデータが空の状態から始まります
技術的なポイント¶
Tickデータの管理¶
//--- 最大数を超えた場合、古いデータをシフト
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のナビゲーターから「インディケータ」を展開し、チャートにドラッグ&ドロップで適用
まとめ¶
| 項目 | 内容 |
|---|---|
| 元記事 | MT4のオフラインチャート機能でTickにテクニカル分析を適用 |
| MT5での課題 | オフラインチャート機能が廃止 |
| 今回の解決策 | サブウィンドウでTick+MAを直接描画 |
| メリット | シンプル、即座に動作、1ファイルで完結 |
参考文献
- 元記事: MT4でTickチャートのテクニカル分析をする — とあるMetaTraderの備忘秘録