FXトレーダーに人気の手法のひとつとしてゴールデンクロスを利用したものがあります。MetaTrader 4(MT4)の自動売買ツールであるExpert Advisor(EA)でもゴールデンクロスを利用したもの人気があり、有料無料問わず多数存在します。この記事では、ゴールデンクロスというテクニカル分析の基本的なシグナルを利用したEAの作成方法について解説します。
1. ゴールデンクロスとは?
ゴールデンクロスは、短期の移動平均線(例: 5日)が長期の移動平均線(例: 50日)を上から下へとクロスするときのシグナルを指します。逆に、短期の移動平均線が長期の移動平均線を下から上へクロスする場面をデッドクロスと言います。ゴールデンクロスは多くのトレーダーにとって強気のサインと解釈されます。
2. ゴールデンクロスEAの基本的なアイディア
ゴールデンクロスが発生した時に買いポジションを取るというシンプルなアイディアから出発します。デッドクロスが発生した時には、そのポジションを決済し、かつ売りのポジションを取ることも考慮できます。以下は基本的なゴールデンクロスEAのソースコードです
extern int ShortPeriod = 5; // 短期移動平均の期間
extern int LongPeriod = 50; // 長期移動平均の期間
int start() {
double ShortMA = iMA(NULL, 0, ShortPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
double LongMA = iMA(NULL, 0, LongPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
double PrevShortMA = iMA(NULL, 0, ShortPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
double PrevLongMA = iMA(NULL, 0, LongPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
if (ShortMA > LongMA && PrevShortMA < PrevLongMA) {
// ゴールデンクロス
OrderSend(Symbol(), OP_BUY, 1.0, Ask, 3, 0, 0, "Golden Cross", 0, 0, Green);
} else if (ShortMA < LongMA && PrevShortMA > PrevLongMA) {
// デッドクロス
OrderSend(Symbol(), OP_SELL, 1.0, Bid, 3, 0, 0, “Dead Cross”, 0, 0, Red);
}
return(0);
}
このコードは、ゴールデンクロスやデッドクロスの発生時に取引命令を送る基本的なEAのサンプルです。
4. 追加機能とカスタマイズ
a.利益確定と損切り: ゴールデンクロスやデッドクロスのシグナルだけでなく、利益確定や損切りのロジックも組み込むことが重要です。TakeProfitやStopLossを設定して、予定の利益や損失に到達した場合に自動的にポジションを閉じることができます。
b.フィルタリング: 他のテクニカルインジケーターを使用して、シグナルの精度を高めるフィルタリングを行うことができます。例えば、MACDやRSIなどのオシレーターを使用して、市場のトレンドを確認することも考慮できます。
5. バックテストの重要性
作成したEAは、過去のデータに対してバックテストを実施することで、その効果やパフォーマンスを評価することができます。MT4にはバックテスト機能が組み込まれており、これを使用してシミュレーションを行うことが推奨されます。
以上のようにMT4のEAを使用して、ゴールデンクロスをベースにした自動トレーディングシステムを簡単に作成することができます。しかし、市場の変動や異なる通貨ペアでの動作など、さまざまな要因を考慮してテストと最適化を行うことが重要です。