現在の足からインジゲーターを表示させていく方法

sitemap
世界最強のFXキャッシュバックサイト
現在の足からインジゲーターを表示させていく方法
公開日:2018/06/26
今までは、過去チャートをさかのぼって、矢印などを表示させてきましたが、

今回は、インジゲーターを起動したときから、矢印やラインを表示させてみたいと思います。

以下から作成過程を説明していきます。
準備
今回は、移動平均線を例に紹介していきます。

わかりやすいように自作したインジゲーターにコードを追加して結果を見ていきます。

利用したインジゲーターは、「Simple MA01」です。

このインジゲーターは、移動平均を表示するというシンプルなものです。
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本目が確定したときのチャートです。

赤い線(移動平均線)が表示されました。
1本目

しばらく、インジゲーターを動かしておいてみました。

約10分後のチャートです。
10分後
無事、移動平均線が表示され続けています。

ただ、注意点が1つあります。

今回作成したようなインジゲーターは、現在から表示させていくという前提で作成したので、

MT4を再起動すると、今まで表示されていたものがすべて削除されます。
まとめ
いかがだったでしょうか?

今回は、インジゲーター(移動平均線)を起動したポイントから表示をさせていくことができました。

このようなインジゲーターは、過去チャートには矢印などが表示されないので、

過去検証ができないデメリットがありますが、

過去検証が必要ない場合や、リアルタイムの情報だけを知りたい場合などには、

便利なインジゲーターかもしれません。

また、今回は、すごくシンプルにコードを書きましたが、もっと良い方法もあると思いますので、

また機会があれば、書いていきたいと思います。

この応用方法はいろいろあると思うので、この方法を利用したインジゲーターなどをこれから作成していきたいと思います。

追記:これを応用したインジゲーター「MA Touch Alert」を作成しました。

それでは、また。
今回使用したMQL一覧
iMA
関連ページ
スポンサードリンク
Twitter