Wizard In The Market
システムトレードの魔術師

*

■超直感!MT4プログラミング講座■ 第19回 ボリンジャーバンドを作ろう(1)

公開日: : 最終更新日:2015/01/13 MT4(MQL4)プログラミング講座

こんばんは!キリンです。
気づいたら本格的なプログラムを扱っている状態にまで、
この講座も進んでこれたのですね。
私としてもちょっとした達成感みたいなものがあります。
でも、まだまだこれからです!
一緒に頑張りましょう!
今日からは数回かけてボリンジャーバンドを作って行きたいと思います。


第19回 ボリンジャーバンドを作ろう

■インディケーター雛形の呼び出し
■ボリンジャーバンド用インディケーターの定義
■まとめ
■インディケーター雛形の呼び出し
まずは白紙のインディケーターのヒナガタを呼び出します。
(今まで説明したことなかったっですよね・・・。しっかり今回で説明させていただきます。)
Trading Systems ~経済的自由を得るために~
まずは、メタエディター上で、
「File」⇒「New」
と選択します。
Trading Systems ~経済的自由を得るために~
Custom Indicatorを選択します。次へをクリックします。
Trading Systems ~経済的自由を得るために~
ファイルの名前・作成者の名前・作成者のURLを入力します。
Trading Systems ~経済的自由を得るために~
ここでパラメータ(extern変数)を設定できますが、
これは自分で行ったほうが楽だと思っています。
ですので、完了を押します。
Trading Systems ~経済的自由を得るために~
Indicatorのヒナガタが表示されました。
今まで勉強をしてきた、init() deinit() start()がちゃんとありますね。
■ボリンジャーバンド用インディケーターの定義
今日は、ボリンジャーバンドの定義まで行いたいと思います。

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//—- indicator parameters
extern int BandsPeriod=20;
extern int BandsShift=0;
extern double BandsDeviations=2.0;
//—- buffers
double MovingBuffer[];
double UpperBuffer[];
double LowerBuffer[];

ボリンジャーバンドだから!
の設定です。
上から順に説明していきます。
▼パラメータ定義
・#property indicator_chart_window
ローソク足と同じところにグラフを表示させますという意味です。
・#property indicator_buffers 3
indicator_buffers はチャートに表示させるグラフの本数の定義です。
ボリンジャーバンドノ場合、基準線と上位線と下位線がありますよね。
ですので、グラフは3本引くことになります。
・#property indicator_color1 LightSeaGreen
 #property indicator_color2 LightSeaGreen
 #property indicator_color3 LightSeaGreen
インディケーターの色の定義ですね。
3本とも同じ色にしてみました。
▼extern変数定義
・extern int BandsPeriod=20;
ボリンジャーバンドを求める基準範囲です。
・extern int BandsShift=0;
あまり使いませんが、グラフを右方向にシフトする場合に変更する変数です
・extern double BandsDeviations=2.0;
ボリンジャーバンドの標準偏差を変更できるようにしました。
通常はよく2が使われるので初期値にしています。
▼配列の定義
・double MovingBuffer[];
基準線のグラフの値を格納します。
・double UpperBuffer[];
上位線のグラフの値を格納します。
・double LowerBuffer[];
下位線のグラフの値を格納します。
■まとめ
定義なので、変数の名前はなんでも良いのですが、
できるだけわかりやすいものが良いです。
今日の説明で大事なところは、
ボリンジャーバンドの表示のためには「グラフを3本表示する」必要があるということです。

property indicator_buffers 3

なんかはすごく大事ですね。
3本表示させるといっているので、3本分のグラフの色を指定する必要もあります。
明日はinit()の説明するつもりです。
今日の宿題は・・・
明日お話しするinit()にはどのようなプロプログラムを書くのか考えてみていただければと!
まさに予習ですね。
最後までお読みくださりまして、ありがとうございます!

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 68 follow us in feedly

関連記事

no image

■超直感!MT4プログラミング講座■ 第39回 ブレイクアウトシステムのEAの最適化をやってみよ

こんばんは!キリンです。 今日は最適化をしてみます。 簡単に成績がいいものができてしまうので、 成果が出たときは非常に嬉

記事を読む

no image

■超直感!MT4プログラミング講座■ 第9回 for関数を使ってみよう

こんばんは!キリンです。 今日は、繰り返し同じ動作をすることのできる for関数についてのお話しようと思います。 第9

記事を読む

no image

■超直感!MT4プログラミング講座■ 第28回 決済スプリクトの作成(1)

こんにちは!キリンです。 引越しも終わり、かなり落ち着いてきました。 時間的制約が皆無になると、セルフコントロール能力が

記事を読む

no image

■超直感!MT4プログラミング講座■ 第30回 決済スプリクトの作成(3)

おはようございます。キリンです。 今回は記念すべき第30回ですね! 開始当初から考えると思ったより速いペースでの達成です

記事を読む

no image

■超直感!MT4プログラミング講座■ 第6回 インディケータープログラムの解説

こんにちは!キリンです。 GW真っ最中! 私は引っ越し先を探してきました。 納得のいく部屋を見つけて、さらに洗濯機も購入

記事を読む

no image

■超直感!MT4プログラミング講座■ 第11回 配列を覚えよう

こんばんは。キリンです。 最近、各EAの動向で一喜一憂してしまっています。 精神的によろしくないですな^^; クロスファ

記事を読む

no image

■超直感!MT4プログラミング講座■ 第17回 iMA()に慣れよう

こんばんは!キリンです。 今日、鮒谷さんのかの有名なメルマガ、平成進化論において面白い話が載っていました。 簡単にご紹介

記事を読む

no image

■超直感!MT4プログラミング講座■ 第1回 プログラミングって何?

こんにちは!キリンです。 今日から一週間に一回くらいの更新頻度を目標に、 MT4プログラミング講座を更新していきます。

記事を読む

no image

■超直感!MT4プログラミング講座■ 第14回 インディケーターの定義部

こんばんは!キリンです。 最近ピグによく顔を出しています。 よければ遊びに来てくださいね。 ではでは、本日の講義です。

記事を読む

no image

■超直感!MT4プログラミング講座 第37回 ブレイクアウトシステムのEA作成(2)

おはようございます。キリンです。 日本、負けてしまいましたね。 でも、すごい感動しました。 すごい夢をもらいました。 優

記事を読む

Comment

  1. junky より:

    SECRET: 0
    PASS:
    前回のinit()も完全に理解してないので・・・
    前回、
    // 指標バッファの割り当て
    SetIndexBuffer(0, Buf);
    だったので・・・
    SetIndexMovingBuffer(0, Buf);
    SetIndexUpperBuffer(0, Buf);
    SetIndexLowerBuffer(0, Buf);
    のように3つ必要なのかな・・・
    // 指標ラベルの設定
    は皆目見当もつかずで(苦笑)

  2. SECRET: 0
    PASS:
    >junkyさん
    おぉー!
    素晴らしく正解に近いないようです!
    明日正解載せますね^^
    ご回答ありがとうございます!!

  3. ホネクス より:

    SECRET: 0
    PASS:
    #property indicator_color1 blue
    #property indicator_color2 red
    #property indicator_color3 blue
    extern int BandsPeriod=20;
    extern int BandsShift=0;
    extern double BandsDeviations=2.0;
    extern string memo00 = "↓線のスタイル [0] – [1] – – [2]・・[3]-・-・[4]-・・-";
    extern int MovLStyle =0;
    extern int UpLStyle =1;
    extern int LowLStyle =2;
    extern string memo01 = "↓線幅の設定 1~5";
    extern int MovLWidth =0;
    extern int UpLWidth =1;
    extern int LowLWidth =2;
    double MovBuf[];
    double UpBuf[];
    double LowBuf[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    SetIndexBuffer(0,MovBuf);
    SetIndexBuffer(1,UpBuf);
    SetIndexBuffer(2,LowBuf);
    SetIndexStyle(0,DRAW_LINE,MovLStyle,MovLWidth);
    SetIndexStyle(1,DRAW_LINE,UpLStyle,UpLWidth);
    SetIndexStyle(2,DRAW_LINE,LowLStyle,LowLWidth);
    return(0);
    このような感じに仕上がりました。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

joblib によって謎のバグが起こる

joblib 0.14.1 にて確認.0.13.2 だと起こらない.import joblib を消

Fixing kernel error AMD-Vi: Event logged IO_PAGE_FAULT on Ryzen Machine

My pc was periodically shut down on 7:40 am JS

Ubuntu で仮想ディスプレイを使う

雑多な備忘録ですが、せっかくなので残しておきます。 Ubuntu 18.04 の resolv.c

PYPIへの登録を10秒でできるようになる方法

pip 使ってますよね Pythonを使っている人であれば、pip installでライブラリ

The art of debugging with GDB, DDD, and Eclipse の読書メモ

GDBの勉強がしたくて、下の本を原著で読んでみました。10年前の本だけど全然現役でした。

→もっと見る

PAGE TOP ↑