如何使用预定义的变量,如Open[]、Close[]、High[]、low[]?我无法让我的代码工作,当我在EA测试仪中运行变量时,它就好像没有数据一样。抱歉,伙计们,我不是编程背景,但我确实了解基本编程。
void OnTick(({
if (OrdersTotal()==0)//if we have no open orders
double ma20 = iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0);
double ma200 = iMA(NULL,0,200,0,MODE_EMA,PRICE_CLOSE,0);
double rsi = iRSI(NULL,0,12,PRICE_OPEN,0);
if (ma20>ma200 && rsi<65 && Close[1]<Open[1] && High[1]>Open[1] && High[0]>High[1])
//send a buy order
int buyticket = OrderSend
(
Symbol(), //Currency pair on the chart
OP_BUY, //Buy/sell Command
0.01, //Lot Size
Ask, //Price for the command
3, //Slippage usually 3
Ask-100*_Point, //Stoploss
Ask+100*_Point, //Take Profit
NULL, //Commend
0, //Magic No
0, //Expiry
Green //Arrow colour
);
}
您的代码运行良好,但是您没有正确使用括号来允许if语句正确操作。
if (OrdersTotal()==0)//if we have no open orders
{
double ma20 = iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0);
double ma200 = iMA(NULL,0,200,0,MODE_EMA,PRICE_CLOSE,0);
double rsi = iRSI(NULL,0,12,PRICE_OPEN,0);
if (ma20>ma200 && rsi<65 && Close[1]<Open[1] && High[1]>Open[1] && High[0]>High[1])
{
//send a buy order
int buyticket = OrderSend
(
Symbol(), //Currency pair on the chart
OP_BUY, //Buy/sell Command
0.01, //Lot Size
Ask, //Price for the command
3, //Slippage usually 3
Ask-100*_Point, //Stoploss
Ask+100*_Point, //Take Profit
NULL, //Commend
0, //Magic No
0, //Expiry
Green //Arrow colour
);
}
}