|
注文を売り買い交互に出したいのですが、
初心者なので、うまく出来ません。
どなたか以下のコードを修正して頂けないでしょうか?
よろしくお願い申し上げます。
// 初期設定
extern int MAGIC = 100000;
extern int Slippage = 3;
extern double Lots = 0.1;
extern int MA_Period10 = 10; //短期移動平均の期間
extern int MA_Period25 = 25; //長期移動1平均の期間
extern int MA_Period75 = 75; //長期移動2平均の期間
int start()
{
if(Bars<90 || IsTradeAllowed()==false) return;
// 移動平均の計算
double MA10 = iMA(NULL,0,MA_Period10,0,MODE_SMA,PRICE_CLOSE,1);
double MA25 = iMA(NULL,0,MA_Period25,0,MODE_SMA,PRICE_CLOSE,1);
double MA75 = iMA(NULL,0,MA_Period75,0,MODE_SMA,PRICE_CLOSE,1);
// ポジション数確認
int buy_position = 0;
int sell_position = 0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
if(OrderMagicNumber() == MAGIC)
{
if(OrderType() == OP_BUY)
{
buy_position++;
}
if(OrderType() == OP_SELL)
{
sell_position++;
}
}
}
// 買いポジション条件分岐
if(MA10 > MA25 && MA10 > MA75 && buy_position < 1)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-Point*Losscut,0,"",MAGIC,0,Blue);
sell_position--;
return(0);
}
// 売りポジション条件分岐
if(MA10 < MA25 && MA10 < MA75 && sell_position < 1)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+Point*Losscut,0,"",MAGIC,0,Red);
buy_position--;
return(0);
}
return(0);
}
|
|