SymbolInfoMarginRate

根据订单类型和方向返回预付款比率。

bool  SymbolInfoMarginRate(
   string             name,                     // 交易品种名称
   ENUM_ORDER_TYPE    order_type,               // 订单类型
   double&            initial_margin_rate,      // 初始预付款比率
   double&            maintenance_margin_rate   // 维持预付款比率
   );

参数

名称

[in] 交易品种名称。

order_type

[in] 订单类型。

initial_margin_rate

[in] 用于接收初始预付款比率的双精度类型变量。初始预付款是相应方向的证券一手交易的保证金。初始预付款与比率相乘后,我们会收到下单指定类型订单时账户上保留的资金量。 .

maintenance_margin_rate

[out] 用于接收维持预付款比率的双精度类型变量。维持预付款是维护相应方向一手持仓的最低数额。维持预付款与比率相乘后,我们会收到激活指定类型订单后,账户上保留的资金量。

返回值

如果属性请求成功,返回true,否则false。

示例:

#define SYMBOL_NAME Symbol()
 
//+------------------------------------------------------------------+
//| EA交易初始化函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 声明设置比率的变量
   double initial_margin_rate = 0;     // 初始预付款比率
   double maintenance_margin_rate = 0// 维持预付款比率
   
//--- 获取并发送买入市价单的SYMBOL_NAME交易品种比率到日志
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_BUYinitial_margin_ratemaintenance_margin_rate);
   
//--- 获取并发送卖出市价单的SYMBOL_NAME交易品种比率到日志
   SymbolInfoMarginRatePrint(SYMBOL_NAMEORDER_TYPE_SELLinitial_margin_ratemaintenance_margin_rate);
 
   /*
   result:
   Initial margin rate for symbol AFKS for the Buy market order0.225600
   Maintenance margin rate for symbol AFKS for the Buy market order0.112800
   Initial margin rate for symbol AFKS for the Sell market order0.254400
   Maintenance margin rate for symbol AFKS for the Sell market order0.127200   
   */
  }
//+------------------------------------------------------------------+
//| 将预付款比率发送到日志                            |
//+------------------------------------------------------------------+
void SymbolInfoMarginRatePrint(const string symbolconst ENUM_ORDER_TYPE order_typedouble &initial_margin_ratedouble &maintenance_margin_rate)
  {
//--- 获取order_type市价单的'symbol'比率
   ResetLastError();
   if(!SymbolInfoMarginRate(symbolorder_typeinitial_margin_ratemaintenance_margin_rate))
     {
      Print("SymbolInfoMarginRate() failed. Error "GetLastError());
      return;
     }
//--- 记录获得的比率值
   string type=(order_type==ORDER_TYPE_BUY ? "Buy" : order_type==ORDER_TYPE_SELL ? "Sell" : "Unknown");
   PrintFormat("Initial margin rate for symbol %s for the %s market order: %f\n"+
               "Maintenance margin rate for symbol %s for the %s market order: %f",
               SYMBOL_NAMEtypeinitial_margin_rate,
               SYMBOL_NAMEtypemaintenance_margin_rate);
  }