- 締切済み
MT4(メタトレーダー)で単純に移動平均線のGU/GDで検証を行いたい
MT4(メタトレーダー)で単純に移動平均線のGU/GDで検証を行いたいのですが どのような記述をすればいいのでしょうか?また参考になるサンプルやEAがありましたら 教えていただけれ幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- takezochan
- ベストアンサー率55% (58/104)
「GU/GDで検証」の意味がよくわかりません。 ゴールデンクロス(GC)/デッドクロス(DC)でしたら、以下のサンプルをどうぞ。 //マジックナンバー #define MAGIC 0000 //パラメーター extern double Lots = 0.1; extern int Slip = 3; extern int MAF_Period = 5; extern int MAS_Period =25; //ポジション決済関数 void ClosePositions() { for(int i=0; i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue; if(OrderType()==OP_BUY || OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slip,White); break; } } } //スタート関数 int start() { //トレード可否 if(IsTradeAllowed()==false) return(0); //ポジション数の確認 int Pos1 = 0; int Pos2 = 0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS) == false) break; if(OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue; { if(OrderType() == OP_BUY) Pos1++; if(OrderType() == OP_SELL) Pos2++; } } //各種変数の宣言 double MAF1 = iMA(NULL,0,MAF_Period,0,MODE_SMA,PRICE_CLOSE,1); double MAF2 = iMA(NULL,0,MAF_Period,0,MODE_SMA,PRICE_CLOSE,2); double MAS1 = iMA(NULL,0,MAS_Period,0,MODE_SMA,PRICE_CLOSE,1); double MAS2 = iMA(NULL,0,MAS_Period,0,MODE_SMA,PRICE_CLOSE,2); //買いシグナル if(MAF2<=MAS2 && MAF1>MAS1 && Pos1==0) { ClosePositions(); OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,"",MAGIC,0); } //売りシグナル if(MAF2>=MAS2 && MAF1<MAS1 && Pos2==0) { ClosePositions(); OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,"",MAGIC,0); } return(0); }