移動平均線のゴールデンクロス・デッドクロス時に以下のロジックで売買するEAを作成します。
- ゴールデンクロスが発生する度に買いで注文
- デッドクロスが発生する度に売りで注文
- 注文及び決済は成行注文
注意事項:実際に売買を行う処理が含まれているので、絶対に実行しないで下さい。
あくまでサンプル用のソースコードですので簡素な造りでエラー対策のプログラムが殆どありません。
実際に運用させる為のプログラムはエラー対策のプログラムが複数必要になります。
MetaEditorを起動する
まずはMetaEditorを起動しましょう。
操作については以下の記事をご覧ください
-
MT4インジケーター・EA作成手順
property欄に各パラメーターを記述する
property欄の下に取引に必要なパラメータの設定をしましょう。

extern double Lots = 0.1;
double型の変数を指定。今回は取引lot数用にLotsという配列を指定、0.1lotに設定。
extern double TakeProfit = 30;
double型の変数を指定。今回は利確値用にTakeProfitという配列を指定、30pipsに設定。
extern double StopLoss = 30;
double型の変数を指定。今回は損切値用にStopLossという配列を指定、30pipsに設定。
OnTick()関数に変数を記述する
はじめにゴールデンクロス・デッドクロスに必要な移動平均線を格納する変数を作成します。

double MA25;
double型の変数を指定。今回は短期移動平均線用にMA25という配列を指定。
double MA100;
double型の変数を指定。今回は長期移動平均線用にMA100という配列を指定。
MA25 = iMA(NULL,0,25,0,MODE_SMA,PRICE_CLOSE,1);
MA25にiMAの値を代入。
MA100 = iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,1);
MA100にiMAの値を代入。
エントリーポイントの条件と売買内容を記述する

if(MA25>MA100)
if文。ゴールデンクロスになる条件
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*30,"Order Long",MagicNumber,0,Red);
条件が合えばロング(買い)ポジションを持ちます。利確値(TakeProfit)は30に設定。
if(MA25<MA100)
if文。デッドクロスになる条件
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point*30,"Order Short",MagicNumber,0,Blue);
条件が合えばショート(売り)ポジションを持ちます。利確値(TakeProfit)は30に設定。
コンパイルする
最後にコンパイルすれば完了です。