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プログラミング講座■ 第24回 インディケーターの補足

こんばんは。キリンです。 第24回 インディケーターの補足 ■インディケーターをサブウィンドウに表示する ■グラフに

記事を読む

no image

■超直感!MT4プログラミング講座■ 第31回 サブルーチンを使えるようになろう

おはようございます。キリンです。 昨日、家の近くの図書館に行ってきました。 そこで借りた本の一冊に、 「生き方」(稲盛 

記事を読む

no image

■超直感!MT4プログラミング講座■ 第15回 MQL定義済み関数について

こんにちは!キリンです。 このブログ自体が夜書くことが多いので、「こんにちは!」っていうと新鮮ですね。 春の陽気を感じら

記事を読む

no image

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

こんばんは!キリンです。 私は本日を持って、脱サラをしました。 もう二度とサラリーマン生活に戻らないという固い信念のもと

記事を読む

no image

■超直感!MT4プログラミング講座■ 第12回 配列の応用方法を覚えよう!

こんばんは。キリンです。 TopGunの運用で、初めて3機目まで導入されてしまいました。 最後に投入するということもあり

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

■超直感!MT4プログラミング講座■ 第7回 インディケーター表示のために

没になった回です。 内容が雑なため、第8回へ移動していただければと思います。 興味のある方はご覧いただければと思います。

記事を読む

no image

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

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

記事を読む

no image

■超直感!MT4プログラミング講座■ 第5回 MQL基本関数を覚えよう!

こんにちは!キリンです。 早いもので、1週間で5回まで来ちゃいましたね。 皆さんもしっかり付いてきてくれているので、私と

記事を読む

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 ↑