「移動平均線の角度が急なところでエントリーしたい」
「でもEAで角度をどうやって判定すればいいか分からない」
そんな疑問を持ったことはありませんか?
結論から言うと、移動平均線の“角度”をそのままEAで判定するのは現実的ではありません。
本記事では、その理由と、角度の代わりに使える実践的な代替ロジックを解説します。
本記事は、移動平均線EAにおける 「傾き(角度)」 に特化した解説記事です。
移動平均線を使ったEAロジック全体像(上抜け・傾き・クロス判定)については、
以下の記事で体系的に整理しています。
▶ 移動平均線を使ったEA作成方法|上抜け・傾き・クロス判定の実装を解説
移動平均線の「角度」をEAで判定するのが難しい理由
移動平均線(MA)の角度を見てトレンドの強さを判断する手法は、裁量トレードではよく使われます。
実際、チャートを見ていると「このMAはかなり急角度で上昇している」「ここは勢いが弱い」といった感覚的な判断が自然にできます。
しかし、この「角度」という概念をそのままEAに落とし込むことは非常に難しいのが現実です。 その理由は、MAの角度が価格データそのものではなく、表示環境に依存した見た目の情報だからです。
MT4上で表示される移動平均線は、
・チャートの拡大/縮小
・ウィンドウサイズ
・時間足の表示本数
などによって、同じ相場でも角度の見え方が変わります。
つまり、人が「急だ」と感じているMAの角度は、
実際の数値的な傾きではなく、視覚的な錯覚を含んだ主観的判断なのです。
EAはこのような主観的な見え方を理解することができません。
EAが扱えるのは、あくまでMAの価格値(数値)と時間のみです。
そのため、MAの角度を「◯度以上ならエントリー」といった形で 直接的に数値化しようとすると、環境差や時間足の違いで破綻しやすいという問題が発生します。
このことから、EAで移動平均線の角度を扱う場合は、
角度そのものを求めるのではなく、MAの数値変化から傾きを間接的に判断するという考え方が重要になります。
なぜ人が見ているMAの角度は曖昧なのか
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判断ソースコードです
❓ 移動平均線の角度・傾きをEAで扱う際のよくある質問【MT4・MQL4対応】
💬 移動平均線の「角度」「傾き」をEAで判定したい方から、よく寄せられる質問をまとめました。
基本的にはおすすめできません。移動平均線の角度はチャートの拡大率や表示環境によって見え方が変わるため、EAで安定して数値化すると環境差の影響を受けやすくなります。角度そのものではなく、MAの数値変化を使って判断する方が現実的です。
1本前と2本前の移動平均線の値を取得し、その差分を比較する方法がシンプルで扱いやすいです。差分が一定以上であれば、移動平均線が強く上向きまたは下向きに動いていると判断できます。
理論的には傾きから角度を算出することは可能ですが、時間足や通貨ペアによって値の意味が大きく変わるため、実運用では安定しにくい傾向があります。EAでは角度を度数で扱うより、価格差やクロス条件を使った判定の方が再現性が高くなります。
まとめ|MAの傾きをEAで扱う際の考え方
移動平均線(MA)の「角度」や「傾き」は、裁量トレードでは直感的に判断しやすい要素ですが、
EAではそのまま扱うべき指標ではありません。
MAの角度はチャートの表示環境や時間足によって見え方が変わるため、
人が感じている「急な角度」「なだらかな角度」をプログラムで正確に再現することは難しいからです。
そのため、EAにMAの傾きを組み込みたい場合は、
角度そのものを求めるのではなく、MAの数値変化を使って傾きを間接的に判断する
という考え方が重要になります。
具体的には、
・1本前と2本前のMAの差分を見る
・差分が一定以上かどうかで勢いを判定する
といった方法であれば、表示環境に依存せず再現性の高いロジックを作ることができます。
EAは「見た目」ではなく数値の変化を正確に捉えることが得意です。
MAの傾きも同様に、数値として扱える形に落とし込むことで、
安定したエントリー判断につなげることができます。
今回解説した「MAの傾き判定」は、
移動平均線EAロジックの一要素にすぎません。
上抜け・クロス判定を含めた全体設計を整理したい場合は、
以下のまとめ記事をご覧ください。








コメント