今回は、ローソク足の様々な描画をしてみます。
MT4にはサブウィンドウにローソク足を表示するには、
ヒストグラムを応用して描画することしかできませんが、
MT5にはローソク足を表示できる機能が盛り込まれています。
この記事では、サブウィンドウ並びにメインウィンドウでも同時に描画する術を紹介します。
フォルダ・ファイル作成
フォルダの作成や、mqhとmq5のファイル作成については、
「MQL5 | 移動平均線」の記事に書かれていますので、そちらを参考にしてください。
分かっている人はこのままソースコードを見て頂ければと思います。
ソースコード
以下がソースになります。
基本的にmqhとmq5で2つに分けています。エントリソースであるmq5にmqhをインクルードする形になります。
コピペするかダウンロードしてください。
配置するディレクトリ階層は以下になります。
C:\Users\[ユーザー名]\AppData\Roaming\MetaQuotes\Terminal\[セキュリティを考慮した長い文字列]\MQL5
mqhファイルは「Include」のOriginalフォルダに、mq5ファイルは「Indicators」のOriginalフォルダに入れてください。
このFwDef.mqhというのは、エラー処理に使います。
Mql5_CandleSticks.mqh
上のMQHファイルを元にプログラムを組んでいきます。
ローソク足のカラーの変更、毎描画バッファをクリアする機能、チャート反転に対応しています。
以下からMQ5プログラムのカスタムインジケータになります。
以下のプログラムはサブウィンドウにメインウィンドウと同じローソク足を描画するプログラムです。
MT5_CandleSticks_SubWindow.mq5
チャート反転をfalseにし、毎描画バッファクリアをfalseにして、
prev_calculatedを渡すことによって無駄な描画をなくしています。
以下は上のプログラムをいじってサブウィンドウにチャートを反転させて表示するプログラムになります。
MT5_CandleSticks_SubWindowReverse.mq5
これはシンプルに一番価格が高い商品(ダウ30)を基準として、
その価格を抜けない程度の価格を設定します。
こうすることでどの金融商品でもチャートを反転させることができます。
しかし、価格は正しく反映はされませんので、チャートの形だけを見ることが目的としたインジケータとなっています。
以下はメインウィンドウにチャートを反転させたものを重ねて描画するプログラムになります。
MT5_CandleSticks_MainWindowReverse.mq5
これはウィンドウに表示しているチャート幅を取得してその中で反転したチャートを描画できるようにしています。
ローソク足の関数に引数を渡すときは、
チャート反転判定をfalseにし、毎描画バッファクリア判定をfalseにしてから、
価格反転加工した計算バッファを渡してやることで表示しているローソク足と同じ価格水準で反転させたチャートを描画することができます。
mq5のソースの画面でコンパイルしてエラーを吐かずに成功したら、mq5ファイルと同じディレクトリ下にex5ファイルが生成されます。
MT5_CandleSticks_SubWindow.ex5
MT5_CandleSticks_SubWindowReverse.ex5
MT5_CandleSticks_MainWindowReverse.ex5
これをMT5でインストールして動かします。
MT5を立ち上げてログインし、上部のボタン群から「f」というアイコンがあるのでクリックします。
そこから一番下の「カスタム」から一番下へスクロールすると、
「MT5_CandleSticks_SubWindow」
「MT5_CandleSticks_SubWindowReverse」
「MT5_CandleSticks_MainWindowReverse」
という名前があるのでクリックすれば下の画面が出てきてインジケータが起動します。
OKを押せば、下の画面のようにローソク足が描画されます。
それぞれ、3つのローソク足を描画させています。
これを利用してトレードします。お疲れさまでした。