试试
req.type_filling=ORDER_FILLING_IOC;
最终结果是,用的Ctrade代替,OrderSend(req,res)有故障,有时能正常交易,大多数不能正常交易,报错10013,这还是模拟的情况下,希望后台能解决一下
使用標準程序庫的交易類 可以解決掉99%以上的問題
除非想深入了解交易條件的全部細節 要不然沒必要自己去創建一個執行交易的函數
使用標準程序庫的交易類 可以解決掉99%以上的問題
除非想深入了解交易條件的全部細節 要不然沒必要自己去創建一個執行交易的函數
ENUM_TRADE_REQUEST_ACTIONS 市价单=TRADE_ACTION_DEAL;
ENUM_TRADE_REQUEST_ACTIONS 修改=TRADE_ACTION_SLTP;
enum 方向 {做多,做空};
第一种:
void 开仓(int 类型)
{
MqlTradeRequest req;
MqlTradeResult res;
req.action=市价单;
req.magic=6251501;
req.symbol=Symbol();
req.volume=手数判断();
req.sl=0;
req.tp=0;
req.deviation=50;
req.type_filling=ORDER_FILLING_FOK;
req.comment="当即将有大数据时,如果没有单,建议待消息公布后5分钟再重启EA";
if(类型==做多)
{
req.type=ORDER_TYPE_BUY;
req.price=NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),Digits());
}
else
{
req.type=ORDER_TYPE_SELL;
req.price=NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),Digits());
}
bool 订单状态=OrderSend(req,res);
Print("开仓结果=",res.retcode);
}
第二种:
void 做多()