MQL4 簡単なインジケータの作成

カスタム・インジケータをMQL4言語を使って作ってみます。
 

直近の時間足で高値をコメントで表示させるインジケータです。




カスタム・インジケータ

 
MetaEditorでプログラムを作りたいのですが、現状ではMQL5で記述してMT4で使うという微妙な段階にあります。MQL5が新しいのでそちらを導入すればいいのですが、実際に使われているのはMT4なのでMQL5そのままでは動かないこともあるようで、いずれ解消されるでしょうけれど。
 

 

初期設定

 
プロパティ設定:
インジケータなのでチャート上に表示する。表示するため値を入れるバッファーが必要、それを色をつけて線で表示というような設定です。

  • ローソク足のチャート上に表示
  • 計算と表示用バッファー
  • グラフィックス表示用バッファー
  • 表示方法
  • 表示色

 
グローバル変数:
次に具体的なインジケータのバッファー名を配列で決めます。 小数点を使うのでdouble型で宣言
 

 
OnInit():初期化
起動時に1度だけ実行する箇所です。ここで必要な初期化をします。先に宣言したバッファを表示用に使うため SetIndexBuffer を使い、引数にINDICATOR_DATAを指定します。
 

 
OnCalculate():
次にプログラムの本体となる部分で、OnCalculateは価格の変化 (Tick) 毎に呼び出されます。

OnCalculateの引数の意味は:
  • rates_total
    • チャートのバー(ロウソク足)の総数で最初は画面バー総数です。
    • 価格の変化 (Tick) で呼び出さると+1になります。
  • prev_calculated
    • 計算済みのバー数です。
    • 最初は0
    • 計算を始めて全て計算を終えた時にはrates_totalと同じ
    • バーが追加されると rates_totalは1つ増えます。
  • &time[], &open[], &high[], &low[], &close[]
    • それぞれのバーにおける時間、始値、高値、安値、終値が配列で収まっている。
    • 要素の0は最新なのでチャート上は右端
    • バーが増えると要素が+1シフトする
  • tick_volume
    • Tickの更新回数
  • volume
    • Fxでは使用されていません
  • spread
    • MT4では使用されていません
 

Comment 高値表示

 
簡単な文字を表示するためにCommentを使ってみます。下のように文字は「” “」でくくり、数字はそのままで、「,」で区切ります。
 

 
これを使ってOnCalculateで引っ張ってくる最新の高値を表示してみましょう。
ラインを描画しないので必要ないものもありますのでコメントアウト
 

 

MT4に設定

 
実際にMT4に設定してみましょう。
 
MT4の「ファイル」から「データフォルダを開く」を選択
 

「MQL4」フォルダ
 

「indicators」を選択
EAはExpertsに入れますがインジケータはindicatorsに入れます。

そのフォルダに拡張子をmq4として保存します。

一旦、MT4を終了して再起動するとex4ファイルがコンパイルされ生成されています。

ナビゲータにインジケータが表示されているのでそれをチャートにドラッグアンドドロップで起動させます。

コメントで1つ前の時間足での高値が表示されます。

 

EAを作るオンラインセミナー

 
実際にEAを作ろうとするとプログラミング以外にFX特有のやり方を知っておかないと失敗します。
失敗はイコール損失です。

EAに関する本もありますが、このようなオンラインセミナーもあります。
プログラミングがある程度分かる
FXの裁量はできるが自動化したい
などのトレーダーに向いているでしょう

EAプログラミングセミナー【オンラインセミナー】実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました! | GogoJungle
実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました!実際に利益が出せるEAのロジックおよびソースコードを完全公開!EAプログラミングの実戦的な学習にこの上ない環境を作りました! | GogoJungle


シェアする

  • このエントリーをはてなブックマークに追加

フォローする