MT4のEAがエントリーしません
上向きの移動平均線をローソク足が下から抜けたら買いエントリーし、4本値すべて移動平均線の下にいったらイグジット、売りは逆というEAをiCutomの本を見ながら作ってみたのですが、ポンド円の一分足で半日稼働したけれど全くエントリーしませんでした。どこがわるいのでしょうか?宜しくお願いします。(以下が内容です)因みにコンパイルしてエラーはありませんでした。
// マジックナンバーの定義
#define MAGIC 5582
// パラメーターの設定//
extern int MA_Period = 21; // 短期移動平均線の期間設定
extern int MA_Shift = 0; // 移動平均を右にシフトするバー数の設定
extern int MA_Method = 0; // 移動平均方法の設定
extern double Lots = 1.0; // 取引ロット数
extern int Slip = 100; // 許容スリッページ数
extern string Comments = " "; // コメント
// 変数の設定//
int Ticket_L = 0; // 買い注文の結果をキャッチする変数
int Ticket_S = 0; // 売り注文の結果をキャッチする変数
int Exit_L = 0; // 買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0; // 売りポジションの決済注文の結果をキャッチする変数
double MA_2 = 0;
double MA_1 = 0;
int start()
{
MA_2 = iCustom(NULL,0,"Moving Averages",MA_Period,MA_Shift,MA_Method,0,2);
MA_1 = iCustom(NULL,0,"Moving Averages",MA_Period,MA_Shift,MA_Method,0,1);
// 買いポジションのエグジット
if( MA_1 >= High[1]
&& ( Ticket_L != 0 && Ticket_L != -1 ))
{
Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}
// 売りポジションのエグジット
if( MA_1 <= Low[1]
&& ( Ticket_S != 0 && Ticket_S != -1 ))
{
Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
if( Exit_S ==1 ) {Ticket_S = 0;}
}
// 買いエントリー
if( MA_2 <= MA_1
&& MA_1 > Open[1]&& MA_1 > Close[1]
&& ( Ticket_L == 0 || Ticket_L == -1 )
&& ( Ticket_S == 0 || Ticket_S == -1 ))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red);
}
// 売りエントリー
if( MA_2 >= MA_1
&& MA_1 < Open[1]&& MA_1 > Close[1]
&& ( Ticket_S == 0 || Ticket_S == -1 )
&& ( Ticket_L == 0 || Ticket_L == -1 ))
{
Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue);
}
return(0);
}
お礼
ご回答ありがとうございます。 決済注文例 if ((MA1 < MA3)) { total = OrdersTotal(); if(ticket > 0) if(OrderType()==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White); } return(0); こんな感じで入れてみましたが、うまく注文がでていません。