こんにちは、トレーダーの皆さん!今日はMT4用の移動平均クロスを利用したエキスパートアドバイザー(EA)の作成方法についてお話しします。このEAは、シンプルながらも効果的なトレーディング戦略を提供します。それでは、早速始めましょう!
1. 入力変数の定義
まずは、EAを作成するために必要な入力変数を定義します。以下のコードを参考にしてください。
//--- 入力パラメータ input int period_ma_fast = 8; //速い移動平均の期間 input int period_ma_slow = 20; //遅い移動平均の期間 input double takeProfit = 20.0; //利益確定(pips) input double stopLoss = 20.0 //損切り(pips) input double lotSize = 0.10; //ロットサイズ input double minEquity = 100.0; //最小資金($) input int Slippage = 3; //スリッページ input int MagicNumber = 889; //マジックナンバー
2. グローバル変数の定義
次に、グローバル変数を定義します。これにより、すべての関数からアクセス可能な変数を作成します。
//グローバル変数 double myPoint = 0.0; int mySlippage = 0; int BuyTicket = 0; int SellTicket = 0;
3. 初期化関数 OnInit()
EAが実行されると、最初に実行されるのが OnInit() 関数です。この関数を利用して、グローバル変数の初期化や入力データの検証を行います。
int OnInit() { //初期データの検証 if (period_ma_fast >= period_ma_slow || takeProfit < 0.0 || stopLoss < 0.0 || lotSize < 0.01 || minEquity < 10){ Alert("警告 - 入力データが無効です"); return (INIT_PARAMETERS_INCORRECT); } myPoint = GetPipPoint(Symbol()); mySlippage = GetSlippage(Symbol(), Slippage); return(INIT_SUCCEEDED); }
4. 市場の動きに応じた OnTick() 関数
市場価格が動くと、OnTick() 関数が呼び出され、すべての命令が実行されます。この関数内では、取引資金の adequacy を確認し、新しいキャンドルが形成されたときに通知します。
void OnTick() { if (cekMinEquity()){ int signal = -1; bool isNewCandle = NewCandle(Period(), Symbol()); signal = getSignal(isNewCandle); transaction(isNewCandle, signal); setTPSL(); }else{ //資金不足で取引を停止 Print("EA は資金が不足しているため停止します"); } }
5. 取引の設定を行う setTPSL() 関数
この関数では、取引の利益確定と損切りの設定を行います。
void setTPSL(){ int tOrder = 0; string pair = Symbol(); double sl = 0.0, tp = 0.0; tOrder = OrdersTotal(); for (int i=tOrder-1; i>=0; i--){ bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)){ tp = OrderOpenPrice() + (takeProfit * myPoint); sl = OrderOpenPrice() - (stopLoss * myPoint); if (OrderTakeProfit() != tp || OrderStopLoss() != sl) { if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)){ Print("注文の修正に成功しました"); } } } } }
このEAは、シンプルでありながら強力なトレーディングツールです。移動平均のクロスを利用して、エントリーとエグジットのポイントを自動で判断してくれます。ぜひ試してみてください!
もしこの内容が役に立ったと思ったら、ぜひ友達にも教えてあげてくださいね。今後も役立つ情報をお届けしますので、お楽しみに!
トレーディングに役立つアプリをお探しの方は、ぜひ私たちのSignalForexアプリをダウンロードしてみてください!