【無料】メールマガジン配布します!

真実!しか流さないメールマガジン《不定期》

メルマガのお申し込みはコチラ

EAを作ろうの続々です、、、

 

まずは、先日のサンプルEAを元に簡単に解説します。

 

>>EAを作ろう ということで、サンプルEAをあげます。

上のページの下にEAをダウンロード出来るように準備してますのでまだダウンロードされていない方はどぞ

 

まず、ソースコードを見ながらここの命令はいったい何をしているところなのか?と解説しながら勧めますが全てを解説するわけではありません。

MQL事態は、簡易な言語なので(最近やっとそう思えるようになったw)

使い方を覚えれば、誰でも使えます。しかし、初めて見る方、プログラムをまったく経験したことがない方にとってはそれなりのハードルだと思います。

そんな方は、ともかくコードを見てもアレルギー反応がでないように慣れることですね。

知っていることが増えてくれば、やっていることも理解できます。

 

どんなEAも基本的な構造は、いっしょです。

まず構造を理解しておくと今後役に立ちますので覚えておきましょう。

 

20140502120106

おおざっぱに理解するとこんな流れです。

初期設定を行って、3つのことを最低コードをかければ立派なEAが出来あがります。

基本はこれですから、どんなEAでも同じです。部分的に見ていくことで理解が深まりますしソースを解析するのも格段に早くなります。

 

 

サンプルの

BlondeTrader.mq4

こちらのソースコードを見てみましょう。

 

//+——————————————————————+
//|                                                 BlondeTrader.mq4 |
//|                                                          Christopher  |
//|                                      http://expert-profit.webs.com |
//+——————————————————————+
#property copyright "Christopher"
#property link      "http://expert-profit.webs.com"
#define MAGICMA  20081109

extern int PeriodX = 1;
extern int Limit = 20;

extern int Grid = 20;
extern int Amount = 2;

extern int LockDown = 0;
int Slippage = 3;

この部分が初期設定の部分になります。

1つ1つの命令が何をしているのかは、正直グーグルで検索していけば理解できると思いますので頑張ってください(笑)

 

といってもいくつか紹介しておきます。

 

#define MAGICMA  20081109

#define ですが、これま単に定義するだけの命令文なのでMAGICMAを後ろの数字 20081109に置き換えなさいとういことになります。

マジックナンバーは、ポジション管理に直結する必要不可欠な要素なのでEAを作る際は必ず必要です。同じ口座アカウントで複数のEA/ロジックを同時稼働するときにポジション毎にマジックナンバーを割り当てて管理することが可能になります。

逆にこのマジックナンバーが管理されていないと、まったく関係のないEAのポジションを勝手に決済してしまったりするのでおかしな損失を出しかねません。

他にも変数として管理してしまう場合もあります。
例えば、、、、、

extern int MAGICMA = 20081109;

このように、宣言して初期設定する場合もあります、ぶっちゃけ好みの問題?癖?なのでどちらでも構いません。

extern とう命令は、是非とも覚えておいて欲しいところです。

これを使うと、EAやインジケーターでよく使うパラメーターの設定が出来るようになるからです。

20140502121944

こんなやつですね。

いちいち、ソースコードを書き換えすることなくパラメーターで数値を変更出来るためかなり使い勝手が便利です。また、配布する場合なども利用者は、このパラメーターで自分好みに設定を変更することが可能になりますのであればうれしいですね。

使い方次第で、移動平均線を20MA~21MA~22MA~など順番にテストすることも可能になります。最適化するときに使えるようになります。これこそ、MT4の醍醐味です。簡単に多くのパラメーターが検証可能になるからです。

 

int Slippage = 3;

残るは、Slippageの変数を設定したりするのが初期設定の最後になります。

ここは、自分がどのような変数を使うのかで何を設定するのかが変わってきます。なので最初の内は使わなくてもかまいません。今回のサンプルEAは、Slippageを変数として書いてあります。

 

参考にですが、Slippageは、オーダー命令を出した時にMT4から命令を出します。

 

20140502124557

 

たぶんこんな感じじゃないのかな^^;

この図は妄想なので正確なものではありません。恐らく、、、って把握なので

誰か詳しく調べてくれていたと思いますが

こんなやり取りをMT4をブローカーサーバー側で行ったあとに実際にオーダーが実行されるため注文命令をだしてから約定するまでにタイムラグがあります。

その間に、もちろん相場は動いてますのでオーダーを出した価格で約定出来るかどうかは約束できません。その許容範囲を設定するのがスリッページなのです。

この数値を小さく設定すると、オーダーを出した価格に近く約定することが可能ですがその分約定の成功率が下がってしまいます。逆に、大きく設定してしまうとオーダー価格より大きくずれてしまいスキャルピングなどのロジックであれば厳しい結果になりかねません。

ロジックに応じて設定数値を変える必要がるのと、ブローカーによっても調整が必要かもです。

経験値もでてきますね。

多くのEAを見ていると多くは3pips程度の設定になってますね。

 

extern int PeriodX = 1;
extern int Limit = 20;

extern int Grid = 20;
extern int Amount = 2;

extern int LockDown = 0;

他には、上のような変数を設定してありますがそれぞれがどのように機能するのか、どう使うのかは、変数名で推測したり、実際のコードを見て判断しなければいけません。

本当は、EA制作者のマニュアルなどあれば楽なのですが、今回は拾いものなのでそんなものは、もちろんありませんし^^;

自作する場合は、後でみてわかるような変数名にするのがいいですね。

 

初期設定の解説はこんな感じで、、、、、

続く

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

tomoよりのお願い

参考になったちょっと役に立ったお疲れさんって
少しでもおもったかた(*゜▽゜ノノ゛☆

 

ポッチっとお願いします。その1ポチ!ありがとう

にほんブログ村 為替ブログ FX初心者本人(1年目)へ
にほんブログ村

 

このエントリーをはてなブックマークに追加 はてなで広めてください。この記事が役に立つ人がいると思います。
←左のボタンをクリックして共有してください。

 

 

関連記事

タグ

2014年5月3日 | コメント/トラックバック(0) |

カテゴリー:MQL講座

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ