現在の足からインジゲーターを表示させていく方法
公開日:2018/06/26
今までは、過去チャートをさかのぼって、矢印などを表示させてきましたが、
今回は、インジゲーターを起動したときから、矢印やラインを表示させてみたいと思います。
以下から作成過程を説明していきます。
準備
今回は、移動平均線を例に紹介していきます。
わかりやすいように自作したインジゲーターにコードを追加して結果を見ていきます。
利用したインジゲーターは、「
Simple MA01」です。
このインジゲーターは、移動平均を表示するというシンプルなものです。
このインジゲーターは、過去のチャートをさかのぼって、移動平均線を表示させています。
今回は、インジゲーターを起動したポイントから移動平均線を表示させていきます。
ソースコードの説明
まず、今までは、以下のようなコードで、過去チャートにも移動平均線を表示させていました。
int limit = Bars-IndicatorCounted();
for(int i=0; i<limit; i++)
{
Buf[i] = iMA(NULL, 0, 20, 0, MODE_EMA, PRICE_CLOSE, i);
}
今回は、現在から表示させればいいいので、コードをシンプルに書き換えます。
■start内の削除コード
start()の中のコードを削除して変更します。
int start()
{
①Buf[0] = iMA(NULL, 0, 20, 0, MODE_EMA, PRICE_CLOSE, 0);
return(0);
}
まず、バーの本数を見る必要がないので、 int limit = Bars-IndicatorCounted();を削除します。
続いて、過去チャートのチェックをする必要もないので、for文もすべて削除します。
そして、Buf[]の記述を以下のように変更します。
①Buf[0] = iMA(NULL, 0, 20, 0, MODE_EMA, PRICE_CLOSE, 0);
Buf[0]に、iMAで現在の足の現在のMAの値を代入しています。
復習になりますが、0は、現在の足を表しています。
また、start()は、ティックごとに実行されるので、Buf[]の値も常に変動していきます。
シンプルですが、以上です。
それでは、コンパイルして実行してみます。
実行結果
インジゲーターを起動した瞬間のチャートです。
見てわかるように、移動平均線は表示されていません。
そのまま、インジゲーターを動かして、1本目が確定したときのチャートです。
赤い線(移動平均線)が表示されました。
しばらく、インジゲーターを動かしておいてみました。
約10分後のチャートです。
無事、移動平均線が表示され続けています。
ただ、注意点が1つあります。
今回作成したようなインジゲーターは、現在から表示させていくという前提で作成したので、
MT4を再起動すると、今まで表示されていたものがすべて削除されます。
まとめ
いかがだったでしょうか?
今回は、インジゲーター(移動平均線)を起動したポイントから表示をさせていくことができました。
このようなインジゲーターは、過去チャートには矢印などが表示されないので、
過去検証ができないデメリットがありますが、
過去検証が必要ない場合や、リアルタイムの情報だけを知りたい場合などには、
便利なインジゲーターかもしれません。
また、今回は、すごくシンプルにコードを書きましたが、もっと良い方法もあると思いますので、
また機会があれば、書いていきたいと思います。
この応用方法はいろいろあると思うので、この方法を利用したインジゲーターなどをこれから作成していきたいと思います。
追記:これを応用したインジゲーター「MA Touch Alert」を作成しました。
それでは、また。
今回使用したMQL一覧
関連ページ