インジケーター関数1「MA」~伝説の剣 MATATABI~ | FX情報商材レビュー評価 実践検証ブログ ☆禁断の世界☆

学習の進め方

  • FX初心者の学習の進め方を確認する

インジケーター関数1「MA」~伝説の剣 MATATABI~

インジケーター関数1「MA」~伝説の剣 MATATABI~
についてお話ししますね。

MT4のMetaEditorでEAを作成するとき、
インジケーターの関数をよく用います。

具体的には、
インジケーターの関数が特定条件のときに
ポジションを持ったり、決済するというように
売買条件を作るとき特に活用します。

今回は、このインジケーターの関数を使った
プログラミングを学んでいきましょうね。

インジケーターの関数はたくさんありますが、
主要なものをいくつかピックアップして
解説します。

まずは、MA(Moving Average)(移動平均線)
からお話ししますね。

 

 

またたび いる?

MT4_mail

にゃんこ「うん~♪」

 

 

【今日の目次】
 (1) 伝説の剣 MATATABI
 (2) MATATABIプログラム作成
 (3) MATATABIプログラム実行

(1) 伝説の剣 MATATABI

MT4_LineTouch

にゃんこ「ニャニャデイン!」

勇者にゃんこはモンスターを倒した。

MT4_shortcut

にゃんこ「ふう、何とか倒したニャ。
     この扉の先に伝説の剣 MATATABI
     があるんだニャ?」

裕-ひろ「この古文書によるとそのようです。
     勇者しか装備できない伝説の剣です。
     とても不思議な効果があるとか。」

MT4_BTAnalyzer

にゃんこ「う~ん。この扉あかないニャ。
     どうすればいいニャ?」

裕-ひろ「・・・!?危ない!下がって!!」

surprisedcat

にゃんこ「な・・・何ニャこれは!?
     扉から無数の手が生えて襲ってくる!!」

裕-ひろ「くっ!剣も魔法も効かない。どうすれば・・・。」

MT4_indicator

にゃんこ「あれ、扉の横の壁に何か暗号が書いてあるニャ。
     ・・・読めないニャ^^;」

裕-ひろ「デスヨネー。
     解読するんで無数の手を引き付けてて下さい。」

MT4_LineTouch

にゃんこ「分かったニャ!」

裕-ひろ「何なに、数式か。
     計算すると"299"だな。
     2(に)9(く)9(きゅう)
     ・・・にくきゅう
     ・・・肉球?」

MT4_indicator

にゃんこ「まだかニャ!もう持ちこたえられないニャ!
     くっ!足を掴まれた。万事休すニャ・・・。」

裕-ひろ「にゃんこ~!?」

無数の手「やっほ~い!肉球、肉球だ~!
     ぷにぷにぷにぷにっ。」

MT4_BTAnalyzer

にゃんこ、裕-ひろ「・・・は?」

無数の手「これで思い残すことは何もない。
     ありがと~。」

surprisedcat

にゃんこ「なんか成仏した~!そして扉ひらいた~!」

裕-ひろ「扉から生えてきた無数の手に肉球を
     触らせるのが扉を開く条件だったみたいですね。」

(2) MATATABIプログラム作成

surprisedcat

にゃんこ「これが、伝説の剣 MATATABI・・・
     な、なんニャ!?力が、力が湧いてくる!!」

裕-ひろ「伝説の剣 MATATABIの効果は全ての
     パラメータが2倍に上昇することだった
     ようですね。
     しかし、MATATABI・・・またたび、か。
     何か気になる名前だ。」

MT4_JapanTime

にゃんこ「でっかいお魚が~。料理してやるニャ!」

裕-ひろ「!?何してるんですか、勇者にゃんこ!
     切り付けて来ないで下さい!
     まさか、MATATABIの効果には"混乱"もあるのか?」

 

 

・・・はい、では伝説の剣 MATATABIによって
にゃんこ が 裕-ひろ を攻撃したときのダメージ
を表示するプログラミングをしましょう。

angrycat

にゃんこ「そんなこと言ってる状況じゃなくないかニャ!
     伝説の剣なのになんか呪われてない!?
     そして、するならするで、もっと分かるように
     説明するニャ!!」

す・・・すみません^^;

 

 

インジケーターの関数の1つに
MA(Moving Average)(移動平均線)
があります。

MAは、MATATABIの頭2文字をとった
・・・ではなく、Moving Average
の2単語の頭2文字をとった略です(笑)

MAは直近のレートの平均値を示す
インジケーターで、

MAより現在のレートが上回れば買い優勢
MAより現在のレートが下回れば売り優勢

などの情報が得られます。

MAは、MT4のMetaEditorでEAを作成する際、
特に売買条件を作る時よく使うインジケーター
の関数の1つです。

そこで、このMAを使うことに慣れるため、
バックテストをしたときに操作履歴へ
MAを用いた文章が出力されるように
プログラムするのが今回の目的です。

 

 

まず、MetaEditorを起動しましょう。

MT4のMetaEditorでEAを作るための初期設定
(4) MetaEditorのEAプログラム画面の表示

で、名前をExperts\MAとして
EAプログラムのひな型を表示させてください。

 

 

おさらいですが、プログラムのルール
として以下2つを覚えておいて下さい。

◆プログラムするときには、半角英数で入力
 (全角ではエラーが発生します)

◆文末には;(セミコロン)をつけます。
 日本語で言うと。(句点)のようなものです。
 ただし、日本語の句点はなくても意味が
 通じますが、プログラムのセミコロンは
 ないとエラーが発生します。

エラーが発生しないように覚えておきましょう。

 

 

それでは、EAプログラムのメイン記述場所

void OnTick()
{

 

}

の{ }内に実行したいプログラムを
書き込みます。

今回は、

string a;
double b;
string c;

 

a = "にゃんこの攻撃!裕-ひろに";
b = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0);
c = "のダメージ!・・・ありがとうございますっ(*´ω`(O三(>_<`)o";

 

Print(a,b,c);

と入力します。

 

 

プログラムするときには、半角英数で入力
(全角ではエラーが発生します)とお伝え
しましたが、" "の中に文字を入れる場合は
例外で全角日本語も入れられます。

PrintのPは大文字ですのでお気を付け
下さいね。

iMAのiは小文字、MAは大文字ですので
ご注意ください。

行間は見やすいため項目の種類ごとに
空けていますが、詰めてしまっても
構いません。

見やすくするため=の両端に半角スペース
を空けていますが、詰めてしまってもOKです。

string、doubleの右側の半角スペース
は詰めると異なる意味になってしまうので
詰めないで下さい。

//---はコメントで、あってもなくとも
構いませんから、void OnTick()内の
コメントを今回は消しました。

段落の字下げ数に決まりは特にありませんが
左字詰めで入力した一番左にカーソルを合わせ、
Tabキーを1回押して字下げすると綺麗に見えます。

MA1

 

 

内容を解説します。

1行目~3行目

MA2

string a;
double b;
string c;

のうち、a,b,cはそれぞれ「変数」です。
前回、解説しましたね。
変数は「数字や文字を入れる箱」のような
ものだと考えて下さい。

ここでは変数をa,b,cにしていますが、他の文字
例えばabc,def,ghiなどにすることもできます。

string、doubleは、「データ型」という箱の種類
のようなものです。

stringは「文字列」、doubleは「小数点付きの数字」
を箱の中に入れる場合に使います。

 

 

4行目~6行目

MA3

a = "にゃんこの攻撃!裕-ひろに";
b = iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0);
c = "のダメージ!・・・ありがとうございますっ(*´ω`(O三(>_<`)o";

変数a,cには文字列、変数bには小数点付きの数字
が入れられます。

変数 イコール 文字列または小数点付きの数字
の順です。

文字列は" "で囲みます。

小数点付きの数字は上記のように関数でも良いです。

 

 

iMA()は、MA(Moving Average)(移動平均線)
の関数です。Print()などと同様です。

インジケーターの関数は、頭にiが付きます。

()の中に特定のルールに沿ってデータを
入れると、MAのデータを算出してくれます。

 

 

このデータは、以前お伝えした以下の技で
見ることができます。

MetaEditorの知らないと損する7つの技
1. 関数リファレンスを見る技

または、こちらも以前お伝えした

MT4のFX自動売買(EA)の作成を便利にする4つの方法
2. メタシス・シーカー(無料)

の以下のページでも確認できます。

移動平均線(Moving Average)【iMA】

 

 

iMAですと以下のようなデータが確認できます。
頭にdoubleが付いているのは、iMAが小数で
表示される関数だということです。

double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

()内のデータを1つずつ解説していきますね。

 

 

string symbol

計算に用いる通貨ペアを記入します。
頭にstringが付いているので、文字列で記入
するということです。

基本的に、選択された通貨ペアで計算する
NULLを記入しておけば良いです。

個別に指定したい場合は、
EURUSD
などのように書きます。

また、通貨ペアの語尾に.(ピリオド)や
_ecnが付くFX業者の場合は、
EURUSD.
EURUSD_ecn
などのように書きます。

 

 

int timeframe

計算に用いる時間足を記入します。
頭にintが付いているので、整数で記入
するということです。

基本的に、選択された時間足で計算する
0を記入しておけば良いです。

個別に指定したい場合は、

1
5
15
30
60
240
1440
10080
43200

のように書きます。

また、整数で記入とありますが

M1
M5
M15
M30
H1
H4
D1
W1
MN

と書いてもそれぞれ上記と同じ意味になります。
この書き方をしてもプログラムで計算される
際は自動で上記の整数に変換される仕組みです。

それぞれ上から

1分足
5分足
15分足
30分足
1時間足
4時間足
日足
週足
月足

を指定しています。

 

 

int period

計算に用いる移動平均線の期間を記入します。
頭にintが付いているので、整数で記入
するということです。

直近20本の移動平均線にしたい場合は20と入力し、
直近5本の移動平均線にしたい場合は5と入力します。

 

 

int ma_shift

移動平均線をずらす本数です。
頭にintが付いているので、整数で記入
するということです。

移動平均線を意図的に遅らせるために
利用するパラメータですが、通常は
0と入力しておきます。

 

 

int ma_method

移動平均線の種類を選択します。
頭にintが付いているので、整数で記入
するということです。

移動平均線の種類は以下4種です。

単純移動平均線
指数移動平均線
平滑移動平均線
線形加重移動平均線

それぞれ

0 または MODE_SMA
1 または MODE_EMA
2 または MODE_SMMA
3 または MODE_LWMA

と入力します。
整数で記入とありますが、右側の書き方を
してもプログラムで計算される際は自動で
左側の整数に変換される仕組みです。

 

 

int applied_price

始値、高値、安値、終値など、どのデータを
用いて移動平均線を作るか選択します。
頭にintが付いているので、整数で記入
するということです。

データの種類は以下7種です。

終値
始値
高値
安値
中央値、(高値+安値)÷2
代表値、(高値+安値+終値)÷3
加重終値、(高値+安値+終値+終値)÷4

それぞれ

0 または PRICE_CLOSE
1 または PRICE_OPEN
2 または PRICE_HIGH
3 または PRICE_LOW
4 または PRICE_MEDIAN
5 または PRICE_TYPICAL
6 または PRICE_WEIGHTED

と入力します。
整数で記入とありますが、右側の書き方を
してもプログラムで計算される際は自動で
左側の整数に変換される仕組みです。

 

 

int shift

何本前の移動平均線のレートを取得するか
指定します。
頭にintが付いているので、整数で記入
するということです。

0ならば現在の移動平均線
1ならば1つ前の足の移動平均線
5ならば5つ前の足の移動平均線
のレートが指定されます。

つまり、例えば1時間足を使っている場合は

0ならば現在の移動平均線
1ならば1時間前の移動平均線
5ならば5時間前の移動平均線
のレートが指定されます。

 

 

少々複雑ですが、ほとんどの関数は似たような形式
ですので、一度理解すれば大抵の関数が使えます。

 

 

7行目

MA4

Print(a,b,c);

前々回使ったPrint関数です。

変数aとbとcの間に,(カンマ)を打つと、
a,b,cの中に入っている文字列と小数点付きの数字
が順に並んで出力されます。

上記でaには
にゃんこの攻撃!裕-ひろに
を入れました。

上記でbにはMAの関数を入れました。
つまりbには直近レートの平均値によって
変化する小数が入っています。

上記でcには
のダメージ!・・・ありがとうございますっ(*´ω`(O三(>_<`)o を入れました。

 

 

したがって、表示されるときには、

にゃんこの攻撃!裕-ひろに○○のダメージ!・・・ありがとうございますっ(*´ω`(O三(>_<`)o

と表示されます。

※ ○○は、直近レートの平均値によって
  変化する小数です。

 

 

入力が終わったら、コンパイルします。

MetaEditor上部の「コンパイル」ボタンを
左クリックしましょう。

次に、エラーが発生していないことを下部の
エラータブで確認して下さい。

catprogram11

0 error(s), 0 warning(s)

と表示されていれば、無事コンパイル完了
です。

エラーが出た場合は、全角で入力されたか、
;(セミコロン)を付け忘れたかである
可能性が高いです。
直したら再びコンパイルしましょう。

 

 

コンパイルが成功した時点で、今まで
作っていたmq4ファイルもEA稼動に必要な
ex4ファイルも自動保存されますので、
手動で保存する必要はありません。

ただ、コンパイルしなければ自動保存
されませんので、mq4ファイルでプログラム
を書いていて作業を中断する場合は
ファイル → 名前を付けて保存
から手動で保存しておきましょう。

(3) MATATABIプログラム実行

作成したMATATABIプログラムをバックテスト
で実行し、動作確認してみます。

MetaEditorを閉じて、MT4を開きましょう。
MT4ツールバーの「Strategy Tester」ボタン
をクリックします。

catprogram13

すると、MT4の下部に「テスター」ウィンドウ
が表示されます。

MA5

エキスパートアドバイザーに、作成した「MA」
というEAが入っていますので、それを選んで
ください。

バックテストをしたときに、操作履歴に
ひたすらドM文が並ぶだけのプログラム
ですので、日付と時間を使用は、時間短縮
のために短い期間で良いです。
ただし、土日は相場が動かないので
土日のみの期間を選択するとエラーが
起きることにご注意くださいね。

それ以外の設定は何でも良いです。

準備ができたら、スタートを左クリックして
バックテストを開始してください。

今回は、売買をするシステムではないので、
レポートタブなどには何も出ません。

レポートタブの横の操作履歴タブを選択して
ください。

MA6

メッセージの一番右端のところに

にゃんこの攻撃!裕-ひろに○○のダメージ!・・・ありがとうございますっ(*´ω`(O三(>_<`)o

が表示されていますね。

※ ○○は、直近レートの平均値によって
  変化する小数です。

MT4_indicator

にゃんこ「何か攻撃されてるのに喜んでる^^;
     そういえば、伝説の剣 MATATABIの効果
     で全てのパラメータが2倍に上昇した割に
     ダメージ小っちゃ過ぎないかニャ?」

まあ、にゃんこですから(*´ω`*)

 

 

以上で今回のプログラミングは終了です。
インジケーターの関数がなんだか掴めたでしょうか?
今後、EAの売買条件を作るとき頻繁にインジケーター
の関数を用いますので、覚えておいてくださいね。

 

 

P.S.
40秒~の豹変ぶりに注目です(((( ;゚д゚))))

 

 

なお、残念ながら、EA作成に関しては
個別のご質問にはお答えしかねます。

ご存知の通り、有料のサポート付きEA作成教材
では、1ヶ月講座で週1回までのサポートでも
8万円ぐらい掛かるのが相場だったりします^^;

大変心苦しいのですが、あらかじめご理解
のほどよろしくお願い致します。


もっと詳しく知りたい事や
理解できなかった事などございましたらお気軽にご連絡下さい。

お問い合わせはこちらからどうぞ

あなたの応援のおかげで明日も頑張って記事が書けます
本日のランキング応援クリックありがとうございました(*'-'*)

にほんブログ村 為替ブログ FX初心者向けアドバイスへ
  • RSSを購読する

次の記事 »
前の記事 »
トップページへ » FX情報商材レビュー評価 実践検証ブログ ☆禁断の世界☆

この記事へのコメント

あなたの応援のおかげで明日も頑張って記事が書けます
本日のランキング応援クリックありがとうございました(*'-'*)

にほんブログ村 為替ブログ FX初心者向けアドバイスへ

メルマガ禁断の世界 FX初心者が30年で10万を
1億にするための入門講座


FX(外国為替証拠金取引)初心者が30年間
で10万円を1億円にするためのノウハウを
公開中♪

FXはしょせんギャンブル??? FXはごく一部の選ばれた人間しか勝てない???
そんなことはありません!!!

FXで資産を増やすために必要なのは多少の投資とやる気だけです(・∀・)9
あなたもFXでいっぱい資産を増やして自由な暮らしと安心な老後を手に入れませんか?

ネコの眼

メルマガをご登録頂いた方、限定で無料プレゼント

今ならメルマガをご登録頂いた方にもれなく、口座状況
の途中経過 確認ツール「ネコの眼」(MT4で動作
するEA)を無料プレゼントさせて頂きます。

ネコの眼を活用すると、ポジションを持っている間、
ローソク足が切り替わったタイミング(始値)で
定期的にメールやアラートにより口座状況の確認
ができます。

サインツールやFX自動売買(EA)を使ったトレード、
裁量トレードを行っている際、口座状況の途中経過が
ついつい気になってしまわれる貴方の不安を和らげる
ためにお役に立てましたら幸いです。

※ 無料プレゼントはご登録頂いたメールアドレスに
お届けしますのでお時間のある際にご確認下さいね。

メルマガ登録はこちら

FX情報商材レビュー評価 実践検証ブログ ☆禁断の世界☆ TOP » Meta Trader 4 » インジケーター関数1「MA」~伝説の剣 MATATABI~