■超直感!MT4プログラミング講座■ 第18回 インディケーターを色々いじってみよう

スポンサーリンク

こんばんは!キリンです。
今日の名言
「日々、常に何か新しいことを学習し身につける。
 それを繰り返すことによって、新しい世界が開ける」
昨日のブログでは、iMA()の使い方をお話させていただきました。
ご理解いただけましたか?
iMA()の使い方まで覚えれば、あなたもMT4プログラマーの仲間入りです!
よく分からないところがありましたら、お気軽にご質問くださいね。


第18回 インディケーターを色々いじってみよう

iMA()の中の引数をextern変数にして、
実際の表示の切り替わりを体感してもらおうと思います。
では、さっそく今回のプログラムです!

//+------------------------------------------------------------------+
//| MA Kirin.mq4 |
//| Copyright Kirin 2010, Forex Trading Laboratory. |
//| http://ameblo.jp/ftlabo-kirin/ |
//+------------------------------------------------------------------+
#property copyright “Copyright Kirin 2010, MetaQuotes Software Corp.”
#property link “http://ameblo.jp/ftlabo-kirin/”
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_level1 0
// 指標バッファ
double Buf[];

// 外部パラメータ
extern int MAPeriod = 13;
extern int Mode = 1;
extern int ApliedPrice = 0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//—- indicators
// 指標バッファの割り当て
SetIndexBuffer(0, Buf);
// 指標ラベルの設定
string label = “MA(“+MAPeriod+”)”;
IndicatorShortName(label);
SetIndexLabel(0, label);
return(0);
//—-
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//—-
//—-
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//—-
int limit = Bars-IndicatorCounted();
for(int i=limit-1; i>=0; i–)
{

Buf[i] = iMA(NULL, 0, MAPeriod, 0, Mode, ApliedPrice, i);

}
//—-
return(0);
}
//+------------------------------------------------------------------+

いつもとは青色の部分が違います。
昨日説明させていただいた部分の、

・ma_method
!非常に面白い部分です!
ここの数値を変更することで、移動平均線の種類を変更できます。
「リンク先」を参照してみてくださいね。
ここの定数を、MODE_SMAから、MODE_EMAに変更するだけで、
「単純移動平均」から、「指数移動平均」に種類を変更することができるんです。
平滑移動平均や、線形加重移動平均などにも定数を変更するだけで簡単に行えます。
ぜひ、変更してみてくださいね。
・int applied_price
この数値を変更することによって、移動平均を算出する基準を変更することができます。
これも「リンク先」をご参照いただければと。
オープンやクローズ、最安値、最高値だけでなく、中央値なども使えるのが面白い点ですね。

上記二つをextern変数にしてみただけすが、
結構色々遊べます。
ではまず、インディケーターを導入しようとしてみましょう。
Trading Systems ~経済的自由を得るために~
すると、このような画面が表示されます。
ここで、先ほど設定したextern関数の指定ができるようになっているんですね。
関数が何を表すかは、
「Ma_Method」
「ApliedPrice」
をご参照いただければと。
他にも、インディーターの色の設定ができます。
Trading Systems ~経済的自由を得るために~
このような画面ですね。
色のところをクリックすれば色が選べますし、
太さも調節できます。
また、同じインディケーターを何本も導入することができます。
その例がこちら
$Trading Systems ~経済的自由を得るために~
全部Ma Kirin.mq4というプログラムで設定しています。
ピリオドを変更したり、移動平均の算出方法を変更したり・・・
それを、数字を変更するだけで簡単に行えてしまうんですね。
インディケーターの基本的な説明はほとんど終わってしまったかなぁって思っています。
これからの方向性を、インディケーターの作成を続けるか、
それとも実際のEAの方向に進めるか・・・。
とりあえず、明日からはボリンジャーバンドのインディケーターを一から作ることに
チャレンジしたいと思います!
最後までお読みくださりまして、ありがとうございます^^

コメント

  1. junky より:

    SECRET: 0
    PASS:
    週末にゆっくりといじってみます。
    同じプログラム(Ma Kirin.mq4)を、名前変えなくても何回も表示できるんですね(笑)
    ボリンジャー、別窓バージョンもよろしくお願いします。

  2. SECRET: 0
    PASS:
    >junkyさん
    コメントありがとうございます!
    インディケーターのいいところはそこなんですよね♪
    設定もばっちり記憶できるし、いつでも呼び出せます。
    ボンリンジャーは今日から開始します!
    よろしくお願いします^^

タイトルとURLをコピーしました