【发布时间】:2018-08-13 12:08:27
【问题描述】:
我收到错误:
EURUSD,H4:OrderSend 失败,错误 #130
请高手指点我哪里出错了?
void OnTick()
{
H1EMAprev = NormalizeDouble(iMA(NULL,PERIOD_H1,14,0,MODE_EMA,PRICE_CLOSE,1), 5);
H4EMAprev = NormalizeDouble(iMA(NULL,PERIOD_H4,14,0,MODE_EMA,PRICE_CLOSE,1), 5);
StopLossBuy = High[2] + (30 * Point);
StopLossSell = Low[2] - (30 * Point);
if(
Close[1]>H4EMAprev &&
Close[1]>H1EMAprev
)
{
Price = NormalizeDouble(High[1] + (30 * Point), 5);
TpOrderOne = NormalizeDouble(Price + (100 * Point), 5);
//Pending order BUY
Ticket1 = OrderSend(Symbol(),OP_BUYSTOP,1,Price,3,StopLossBuy,TpFirstOrder,"Pending Buy Order 1",16384,0,clrGreen);
if(Ticket1<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else
{
Print("OrderSend placed successfully");
}
}
if(
Close[1]<H4EMAprev &&
Close[1]<H1EMAprev
)
{
Price = NormalizeDouble(Low[1] - (30 * Point), 5);
TpOrderOne = NormalizeDouble(Price - (100 * Point),5 );
//Pending order BUY
Ticket1 = OrderSend(Symbol(),OP_SELLSTOP,1,Price,3,StopLossSell,TpFirstOrder,"Pending Buy Order 1",16384,0,clrGreen);
if(Ticket1<0)
{
Print("OrderSend failed with error #",GetLastError());
}
else
{
Print("OrderSend placed successfully");
}
}
请高手指点我哪里出错了?
我希望我的 EA 像这样工作:
交易开放标准:
- 如果最后一根蜡烛的收盘价高于 EMA(指数移动平均线)(即:收盘[1] > EMA),则买入交易将在当前蜡烛开始时立即打开。
- 如果最后一根蜡烛的收盘价低于 EMA(指数移动平均线)(即:收盘[1]
开仓价格:
Pending Buy 交易价格将比最后一根蜡烛的高点高 3 点(即:TradePriceOpen = High[1] + 3 点)。
Pending Sell 交易价格将比最后一根蜡烛的低点低 3 点(即:TradePriceOpen = Low[1] - 3 点)。
止损:
- SL 将低于卖出止损挂单中倒数第二根蜡烛的低点 3 点(即:SL = Low[2] - 3 点)。
- 止损将比买入止损挂单中倒数第二根蜡烛的高点高 3 点(即:止损 = 高[2] + 3 点)。
获利:
- TP 将比 Sell Stop Pending Order 中的交易开仓价格低 10 个点(即:TP = TradePriceOpen - 10 个点)。
- TP 将比买入止损挂单交易的开仓价高 10 个点(即:TP = TradePriceOpen + 10 个点)。
【问题讨论】:
-
这不会编译,因为您有 'TpFirstOrder' 作为止盈,但您从未声明过它。请更正代码以更进一步