try to use GetLastError() for any potential problems checking.
try to use GetLastError() for any potential problems checking.
Thank you, after the test, there is an error :
ERR_INVALID_STOPS (130), but I don't know why, could you help me ?
The program is the same.
我又回来了 。我很像帮你测试,但是我这里测试账号连接不上。郁闷呢。
你这个错误是在那里获得的?
你的意思,你交易了2单就停止了不交易了是吧?
你判断交易单中是买还是卖单。才平仓
ticket = OrderSend(Symbol(),OP_BUY,0.1, Ask, slippage, 0, 0, "Open Buy", 0, 0, Red);
if(ticket<0)
{
Print("OrderSend Buy失败错误看多0 #",GetLastError());
return(0);
}
这样捕捉错误信息。看是什么地方报错
NormalizeDouble()一下止损止盈参数试试,结果如何。
在 henryzhong的帮助下,我截取了错误信息,此信息是ERR_INVALID_STOPS(130) (无效停止) ,但是我不知道是什么原因呢,大家能帮帮我么,谢谢了。
int OrderSend( | string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color) |
由交易服务器返回定单的定单编号或者-1,说明是错误的。获得另外的错误信息, 查看GetLastError()函数。
注解:市场定单的开启(OP_SELL or OP_BUY), 只有最后的卖价格或买价格可以应用到开价格中. 如果执行当前带有不同证券的业务,必须使用带有MODE_BID 或 MODE_ASK参量的MarketInfo()函数获得. 预测或是不标准的价格不可用. 如果没有要求重新开价格或者没有按照小数点后的数字正常化,错误129 (ERR_INVALID_PRICE)将会生成. 如果请求开价格的日期完全过期,错误138 (ERR_REQUOTE)将会生成. 如果请求的价格是过时的,仓位只能够在当前价格位打开/只有当前价格位在price+-slippage范围内.
止损和赢利水平线不能够关闭市场. 最小距离的终止水平点可以使用MarketInfo ()函数得到MODE_STOPLEVEL参量。 在错误或水平位不正常停止情况下,错误130 (ERR_INVALID_STOPS)将会生成.
在挂单的位置,开价格不能够终止市场活动. 最小距离的终止水平点可以使用MarketInfo ()函数得到MODE_STOPLEVEL参量。 在错误或水平位不正常停止情况下,错误130 (ERR_INVALID_STOPS)将会生成.
挂单交易的期限在一些服务器上禁止应用。这种情况下,一个特殊的非零值的参量将会产生,错误 147 (ERR_TRADE_EXPIRATION_DENIED)将会生成。
在一些服务器上,开仓和挂单交易的总数会被限定。如果超出限定,则不能开启新仓位。这样交易服务器返回到错误 148 (ERR_TRADE_TOO_MANY_ORDERS)。
止损和赢利水平线不能够关闭市场. 最小距离的终止水平点可以使用MarketInfo ()函数得到MODE_STOPLEVEL参量。 在错误或水平位不正常停止情况下,错误130 (ERR_INVALID_STOPS)将会生成.
在挂单的位置,开价格不能够终止市场活动. 最小距离的终止水平点可以使用MarketInfo ()函数得到MODE_STOPLEVEL参量。 在错误或水平位不正常停止情况下,错误130 (ERR_INVALID_STOPS)将会生成.
大家好,我是一个MQL的初学者,然后在试用Ordersend()碰到了一点问题——我的程序无法自动实时交易,完全不知道为什么,大家可以帮一下忙么,谢谢了。
以下一段是我写的测试程序主体部分,它实现的就是同时向两个方向建仓一次:
这段运行时最重要的就只有两行:
tb = OrderSend(Symbol(),OP_BUY,newss,Ask,50,Ask-zhisuninit*Point,Ask+zhiyinginit*Point,"jty",16384,0,Red);
ts = OrderSend(Symbol(),OP_SELL,newss,Bid,50,Bid+zhisuninit*Point,Bid-zhiyinginit*Point,"jty",16384,0,Green);
然后我做了一下测试,在测试时是能运行的。
但是实际运行时,虽然没有任何错误,但是它无法自动建仓,而且返回的订单号都是 -1
但是,如果勾选需要人工确认后,能够显示订单窗口:
我十分希望这个问题能够解决,因为如果不能自动交易,那智能交易系统的意义就很小了。
再次谢谢大家。
最后附上全部测试代码: