前回作成したチャートの同期インジケーターを改良していきます。
前回のSyncTimeではチャートの右端の時間を同期するプログラムになっています。
1時間足でエントリーした場所の日足の状態を確認するのに便利なインジケーターです。
今回は、さらに改良を加えて1時間足に引いたラインを日足にも同期したいと思います。
インジケーターを使わなくても1つのチャートで時間足を切り替えれば見られます。
しかし、過去検証の際には2つのチャートを並べて確認できた方が便利だと思っています。
ではさっそく前回のSyncTimeを開いて名前を付けて保存して始めていきます。
17行目、18行目にラインなどのオブジェクトが
作成、消去されたことを感知するプログラムを追加します。
トレンドラインを新規作成するために最初のチャートに引かれた情報を取得します。
MQL4リファレンスからTrendCreateをコピペしておきます。
複数のチャートに同期させていくので前回作成したSyncTimeのプログラムを使います。
次にトレンドラインを移動した際に同期させるプログラムを作ります。
CHARTEVENT_OBJECT_DRAGに変更しています。
さらにObjectMoveで移動先をしていきます。
続いて、トレンドラインの設定が変更された際に同期させます。
CHARTEVENT_OBJECT_CHANGEに変更しています。
取得した新しい情報をObjectSetIntegerで反映させます。
最後に消去した際に同期します。
CHARTEVENT_OBJECT_DELETEに変更しています。
新規作成から変更まではObjectGetIntegerで情報を取得できましたが
元になるチャートにオブジェクトがなくなってしまうので検索することができません。
そこでStringFindを使って同じ名前のトレンドラインを探して消去します。
ここまでで複数のチャートにトレンドラインの同期をすることが可能になっています。
トレンドラインだけでも過去検証の際に役立ちます。
しかし、エントリーした時間などを同期させた方が便利です。
次回は縦線と横線も同期するプログラムに改良していきます。
コメント