我正在尝试下订单,但我对OrderSend()
方法(https://docs.mql4.com/trading/ordersend)
的调用失败了:
2016.08.01 00:51:09.710 2016.07.01 01:00 s EURUSD,M1: OrderSend error 4111
void OnTick() {
if ( OrdersTotal() == 0 ){
int result = OrderSend( NULL, OP_SELL, 0.01, Bid, 5, 0, Bid - 0.002, NULL, 0, 0, clrGreen );
if ( result < 0 ) Print( "Order failed #", GetLastError() );
else Print( "Order success" );
}
}
你知道我做错了吗?
答案 0 :(得分:2)
OrderSend()
来电:int result = OrderSend( NULL, // string: _Symbol,
OP_SELL, // int: OP_SELL,
0.01, // double: NormalizeLOTs( nLOTs ),
Bid, // double: NormalizeDouble( Bid, Digits ),
5, // int: slippagePOINTs,
0, // double: { 0 | NormalizeDouble( aSlPriceTARGET, Digits ) },
Bid-0.002, // double: { 0 | NormalizeDouble( aTpPriceTARGET, Digits ) },
NULL, // string: { NULL | aBrokerUnguaranteedStringCOMMENT },
0, // int: { 0 | aMagicNUMBER },
0, // datetime: { 0 | aPendingOrderEXPIRATION },
clrGreen // color: { clrNONE | aMarkerCOLOR }
);
为了进一步让您高枕无忧, MQL4
(价格)应该始终规范所有价值观,并对其进行限制性处理 + lot(量化)值 - 因为这些值不是R域中的连续值,而是量子步长:
价格:拥有0.00001
或0.0001
或0.001
或0.01
或0.1
或1.0
等踩踏,
批量:受每个工具的特定于经纪商的设置限制为三个关键值,所有允许的卷大小必须满足:[aMinLOTs<=, +aMinLotSTEP, <=aMaxLOTs]
< strong> +
正确的数字规范化〜因此 double NormalizeLOTs( aProposedVOLUME ) {...}
是一个方便的工具,可以无缝地实现这个需要的两个部分。
Error 4111:
还有一些其他障碍阻止您的 MetaTrader Terminal 4
顺利运行您的代码:
<强>
4111
强>
的ERR_SHORTS_NOT_ALLOWED
强>
的Shorts are not allowed. Check the Expert Advisor properties
强>
if ( !TerminalInfoInteger( TERMINAL_TRADE_ALLOWED ) )
Alert( "Check if automated trading is allowed in the terminal settings!" );
else if ( !MQLInfoInteger( MQL_TRADE_ALLOWED ) )
Alert( "Automated trading is forbidden in the program settings for ",
__FILE__
);
指示用户修改 MetaTrader Terminal 4
设置,在 MT4 -> Tools -> Options -> ExpertAdvisor
标签和经纪人交易工具下进行修改条件,某些工具的缩减一般可能受到限制,或仅适用于某些账户类型。
if ( !AccountInfoInteger( ACCOUNT_TRADE_EXPERT ) )
Alert( "Automated trading is forbidden for the account",
AccountInfoInteger( ACCOUNT_LOGIN ),
" at the trade server side. Contact Broker's Customer Care Dept."
);
有关详细信息,printScreens以及对 Terminal
-side / Broker - 这两个障碍的一组的演示程序处理:ref .-&gt; MQL4参考/ MQL4程序/交易许可