FX MetaTrader4 MQL4

MT4・EA自動売買作成方法【ゴールデンクロス・デッドクロス】

移動平均線のゴールデンクロス・デッドクロス時に以下のロジックで売買する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に設定。

コンパイルする

最後にコンパイルすれば完了です。

-FX, MetaTrader4, MQL4