今回は、MT4のEAサンプルソース(FX用)を公開します。
移動平均線で上下の角度を判定しエントリーをする方法についてです。
はじめに
移動平均線を元にEAを作っている際、この「移動平均線の上げ下げの角度でエントリーしたい」と思ったことは無いでしょうか?
私は、EAを作り始めてまず最初にひらめいたのが上記の内容で、実践しようとしたのですが中々うまくいきませんでした。
ここでは、なぜ「うまくいかなかったのか」と「簡単な代替策」について記載しています。
人の感覚は曖昧
MAを表示したチャートを見ると、なだらかにMAが上昇するよりも急激にMAが上昇している所でロングエントリーしたほうが精度が高そうだと思い、私は角度を確認するようなサンプルソースを探しました。
結果、角度を求めるようなサンプルソースはありませんでした。理由は、人が見ている角度というのはとても曖昧な判断でプログラム的に算出するのは難しかったためです。
何故難しいのかを簡単に説明します。以下の2つの画像を見てください。結構MAの角度に違いが出ている事がわかります。
実はこの2つの画像、全く同じ5分足の同時刻のチャートです。違うのはチャートを表示している画面が大きいか小さいかだけです。
このように、画面の大きさが違うだけでMAの角度が変わってしまうので角度の計算は難しいといった感じです。私はこの事実を知って唖然としました。
普段、私がチャートで見ている角度というのがいかに曖昧だったかという事を痛感しました。
簡単な代替策
とはいえ、MAの角度的な何かを使ってEAを作りたかった私はあるもので代替しました。
それは、MAの値です。
まずAの値は、104.121でBの値は、104.123です。0.002の違いです。
次にCの値は、104.121でDの値は、104.125です。0.004の違いです。
こんな感じで、1つ前のMAの値と2つ前のMAの値を確認する事で角度ではなく、MAの値の大小で比較するという感じにしました。
この事を踏まえ、例えば1つ前のMAの値と2つ前のMAの差異が0.004を超える場合はMAが大きく上向きに上昇したという判断の仕方ができます。ソースコードはこんな感じです。
//----MA短期値取得
double fasterMA_ATAI_1 = iMA(NULL, 0, FasterMA, MAShift, MAMode, PRICE_CLOSE, 1); //短期移動平均線で1つ前の値を取得
double fasterMA_ATAI_2 = iMA(NULL, 0, FasterMA, MAShift, MAMode, PRICE_CLOSE, 2); //短期移動平均線で2つ前の値を取得
//----MA中期値取得
double MediumMA_ATAI_1 = iMA(NULL, 0, MediumMA, MAShift, MAMode, PRICE_CLOSE, 1); //中期移動平均線で1つ前の値を取得
double MediumMA_ATAI_2 = iMA(NULL, 0, MediumMA, MAShift, MAMode, PRICE_CLOSE, 2); //中期移動平均線で2つ前の値を取得
//MAのゴールデンクロスでロング(短期MAが上を向いている事)
if(fasterMA_ATAI_1 > MediumMA_ATAI_1 && fasterMA_ATAI_2 < MediumMA_ATAI_2 && fasterMA_ATAI_1 > fasterMA_ATAI_2 && fasterMA_ATAI_1 - fasterMA_ATAI_2 >= 0.004)
{
//ロングエントリー
orderPtn=1;
}
//MAのデッドクロスでショート(短期MAが下を向いている事)
else if(fasterMA_ATAI_1 < MediumMA_ATAI_1 && fasterMA_ATAI_2 > MediumMA_ATAI_2 && fasterMA_ATAI_1 < fasterMA_ATAI_2 && fasterMA_ATAI_2 - fasterMA_ATAI_1 >= 0.004)
{
//ショートエントリー
orderPtn=2;
}
else
{
//エントリーしない
orderPtn=0;
}
1つ前と2つ前のMAの値を取得して、引き算で計算しているだけです。
0.004の部分は0.006等自分好みに変えてOKです。※数値を上げる程エントリー条件は厳しくなります
以下の記事が、参考ソースコードです。 ※今回のコードを入れる前の単純なMA判断ソースコードです
さいごに
以上が、『移動平均線の上げ下げの角度でエントリーしたい(代替策)』となります。
角度を求めるのは難しいので、MAの数値で強弱を判断してみるというのも一つの手だと思います。
EAはテクニカル指標の数値を見るのはめちゃくちゃ強い所なので、何か別のもので困ったとしてもテクニカル指標の数値で判断するのが一番手っ取り早いかもしれませんね。
※ オススメ記事(EAが使える国内FX業者の一覧)
コメント