FXトレードをしていると、「もっとトレンドをわかりやすくしたい」「だましを減らしたい」と思う方は多いでしょう。そんなときに役立つのが 平均足スムーズド(Heikin Ashi Smoothed) です。
通常のローソク足は相場の動きをそのまま反映するため、細かいノイズが多くトレンドがつかみにくいことがあります。平均足を使うとローソク足が滑らかになりますが、さらに移動平均を加えて平滑化したのが「平均足スムーズド」です。
この記事では、MQL4を使って平均足スムーズドを自作する方法を解説します。コードの仕組みを理解することで、自分好みにカスタマイズしたインジケーターを作れるようになります。
記事の後半では、実際に動作する サンプルコード や 完成済みファイル(ex4) を入手する方法も紹介しています。
平均足スムーズドとは?
平均足スムーズド(Heikin Ashi Smoothed)とは、通常の平均足をさらに移動平均で平滑化したインジケーターです。通常の平均足はローソク足の始値・終値・高値・安値を平均化してチャートに表示することで、相場の方向を滑らかに見せる役割があります。しかし、それでも短期的な値動きのノイズや細かい反転に影響を受けることがあり、トレンドの判断が難しいケースもあります。
そこで、平均足の値そのものに移動平均をかけて「より滑らかに」したのが平均足スムーズドです。これにより、短期的なダマシを減らし、相場全体の方向性をより明確に把握できるようになります。特にスイングトレードやトレンドフォロー型の手法を行うトレーダーにとっては、長期の流れを見極める上で非常に役立ちます。
通常の平均足との違い
平均足は、通常のローソク足に比べてトレンドを滑らかに表示するチャート手法です。Open・Close・High・Lowの平均をとることで、相場の方向性を見やすくしています。
しかし、平均足だけでは短期的な反転や細かいノイズが残ることがあります。そこで、さらに移動平均を使って滑らかにしたものが「平均足スムーズド」です。
平均足スムーズドをトレードで使うメリット
平均足スムーズドを使うことで、次のようなメリットがあります。
- だましシグナルを減らせる
- トレンドの方向性を明確に確認できる
- レンジ相場でもノイズを減らして見やすい
- 中期〜長期の流れを把握しやすい
英語圏では「Heikin Ashi Smoothed MT4 Indicator」と呼ばれ、海外のフォーラムやMQL5コミュニティでも広く使われています。トレンドの継続を判断したいときや、余計なノイズを取り除いて落ち着いて相場を分析したいときに有効なインジケーターといえるでしょう。
MQL4で平均足スムーズドを実装する流れ
平均足スムーズドをMQL4で作成するには、主に以下の手順を踏みます。
- プロパティ設定
- 入力パラメーターの定義
- OnInit関数での初期化
- OnCalculate関数でのメイン処理
それぞれを詳しく見ていきましょう。
プロパティとバッファ設定
MQL4でインジケーターを作る場合、まずは #property で基本情報を指定します。
ここで「チャートに表示するか」「使用するバッファの数はいくつか」を決めます。
平均足スムーズドでは、実体部分と髭部分の両方を描画する必要があるため、最低でも4つのバッファが必要です。実際には計算用の補助バッファも含め、8つ程度を用意するのが一般的です。
入力パラメーター
次に、ユーザーが自由に設定できるパラメーターを定義します。
- 移動平均の種類(SMA=0, EMA=1, SMMA=2, LWMA=3)
- 移動平均の期間
- 陽線と陰線の色
- 髭や実体の太さ
こうした設定を自由に変更できるようにすることで、実際のトレードで使いやすいインジケーターになります。
OnInit関数での初期化
OnInit 関数では、バッファをインジケーターに割り当て、描画スタイルを設定します。
たとえば、DRAW_HISTOGRAMを指定すればヒストグラムとして描画され、色や太さも自由に設定できます。
また、SetIndexBuffer を使って、どのバッファをどの描画に使うかを指定します。これにより「バッファ1=陽線の髭」「バッファ2=陰線の髭」「バッファ3=陽線の実体」といった割り当てが可能になります。
OnCalculate関数でのメイン処理
OnCalculate 関数は、インジケーターの中で最も重要な部分です。
新しいティック(価格データ)が到着するたびに呼び出され、以下の処理を行います。
- 移動平均を使ってローソク足データを平滑化
- 平均足の始値・終値・高値・安値を計算
- 陽線・陰線を判定
- バッファに値を格納して描画
最後に、バッファに格納されたデータを再び移動平均で平滑化することで、より滑らかな「平均足スムーズド」が完成します。
平均足スムーズドの中期・長期応用
平均足スムーズドは1種類だけでも十分役立ちますが、多くのトレーダーは 短期・中期・長期 を組み合わせて使います。
- 短期:エントリータイミングの判断
- 中期:相場の流れの確認
- 長期:大局的なトレンドの確認
MQL4のコード上では、一部のバッファを0に設定することで髭を非表示にでき、これを応用して中期・長期のシンプルな表示を作ることが可能です。
こうすることで、1つのインジケーターから複数のトレードシナリオに対応できるようになります。
MQL4 平均足スムーズドのサンプルコードを入手するには?
ここまでで、平均足スムーズドの仕組みやMQL4での実装の流れは理解できたと思います。
しかし「実際にコードを書こうとすると難しい」と感じる方も多いでしょう。
そこで、私のnoteでは以下を公開しています。
- 実際に動作するMQL4コード全文
- コピペで使えるサンプルコード
- 完成済みのex4ファイル(インジケーター本体)
詳しくは下記のURLをご確認ください。
初心者の方でもすぐに試せるようになっていますので、ぜひご活用ください。
まとめ
- 平均足スムーズドは、通常の平均足をさらに滑らかにしたインジケーターで、トレンド把握に役立つ
- MQL4では、プロパティ設定→パラメーター定義→初期化→計算処理の流れで作成できる
- 中期・長期版に応用することで、より多角的なトレード分析が可能
- 実際のコードや完成ファイルは、noteで入手可能
平均足スムーズドを理解して使いこなせば、チャート分析の精度が大幅にアップします。ぜひ、自分のMT4に導入してトレードに役立ててください。