提示 [Unsupported filling mode] OrderSend error 4756

 

你们好


为什么会出现买单失败呢?

我看了很多帖子,都说 request.type_filling 设置有问题,交易商不支持,我是嘉盛MT5,用了以下三个都不行。什么原因?


// 命令执行类型,可以是 ENUM_ORDER_TYPE_FILLING 项目值中的一个,ORDER_FILLING_RETURN,ORDER_FILLING_IOC,ORDER_FILLING_FOK  

request.type_filling =ORDER_FILLING_IOC;   


2020.12.21 19:21:27.974 2020.12.04 01:00:00   failed market buy 5 标准普尔500指数 sl: 3613.0 [Unsupported filling mode]
2020.12.21 19:21:27.974 2020.12.04 01:00:00   OrderSend error 4756


// 调用下单模块

bool os = OrderSends(TRADE_ACTION_DEAL, ORDER_TYPE_SELL, 5, ma18_0, “产品”);


// 下单模块


bool OrderSends(ENUM_TRADE_REQUEST_ACTIONS action, ENUM_ORDER_TYPE type, double Lot, double sL, string com)
  {
//--- 声明并初始化交易请求和交易请求结果
   MqlTradeRequest request={0};
   MqlTradeResult   result={0};
//--- 请求参数
   request.action       =action;              // 操作类型              现价单 TRADE_ACTION_DEAL 或 挂单 TRADE_ACTION_PENDING
   request.symbol       =Symbol();            // 品种为本图表打开的品种
   request.type         =type;                // 订单类型
   request.volume       =Lot;                 // 手数
   request.price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK);               // 价格
   request.sl           =sL;                  // 止损位
   request.tp           =0;                   // 0 即未设置止赢位
   request.deviation    =30;                  // 价格允许偏差为30点
   request.type_filling =ORDER_FILLING_RETURN;   // 命令执行类型,可以是 ENUM_ORDER_TYPE_FILLING 项目值中的一个,ORDER_FILLING_RETURN,ORDER_FILLING_IOC,ORDER_FILLING_FOK
   request.comment      =com;                 // 注释
   request.magic        =01;               // EA交易 ID (幻数)
//--- 发送请求
   bool eg=false;
        eg=OrderSend(request,result);
   if(!eg) PrintFormat("OrderSend error %d",GetLastError());  // 如果不能发送请求,输出错误代码
   return(true);
  }

 
hin jyo:

你们好


为什么会出现买单失败呢?

我看了很多帖子,都说 request.type_filling 设置有问题,交易商不支持,我是嘉盛MT5,用了以下三个都不行。什么原因?


// 命令执行类型,可以是 ENUM_ORDER_TYPE_FILLING 项目值中的一个,ORDER_FILLING_RETURN,ORDER_FILLING_IOC,ORDER_FILLING_FOK  

request.type_filling =ORDER_FILLING_IOC;   


2020.12.21 19:21:27.974 2020.12.04 01:00:00   failed market buy 5 标准普尔500指数 sl: 3613.0 [Unsupported filling mode]
2020.12.21 19:21:27.974 2020.12.04 01:00:00   OrderSend error 4756


// 调用下单模块

bool os = OrderSends(TRADE_ACTION_DEAL, ORDER_TYPE_SELL, 5, ma18_0, “产品”);


// 下单模块


bool OrderSends(ENUM_TRADE_REQUEST_ACTIONS action, ENUM_ORDER_TYPE type, double Lot, double sL, string com)
  {
//--- 声明并初始化交易请求和交易请求结果
   MqlTradeRequest request={0};
   MqlTradeResult   result={0};
//--- 请求参数
   request.action       =action;              // 操作类型              现价单 TRADE_ACTION_DEAL 或 挂单 TRADE_ACTION_PENDING
   request.symbol       =Symbol();            // 品种为本图表打开的品种
   request.type         =type;                // 订单类型
   request.volume       =Lot;                 // 手数
   request.price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK);               // 价格
   request.sl           =sL;                  // 止损位
   request.tp           =0;                   // 0 即未设置止赢位
   request.deviation    =30;                  // 价格允许偏差为30点
   request.type_filling =ORDER_FILLING_RETURN;   // 命令执行类型,可以是 ENUM_ORDER_TYPE_FILLING 项目值中的一个,ORDER_FILLING_RETURN,ORDER_FILLING_IOC,ORDER_FILLING_FOK
   request.comment      =com;                 // 注释
   request.magic        =01;               // EA交易 ID (幻数)
//--- 发送请求
   bool eg=false;
        eg=OrderSend(request,result);
   if(!eg) PrintFormat("OrderSend error %d",GetLastError());  // 如果不能发送请求,输出错误代码
   return(true);
  }

建议用交易类去下单,不存在你的这个问题,自己弄的话,代码有漏洞,不下单是很正常的