SymbolInfoMarginRate
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_NAME, ORDER_TYPE_BUY, initial_margin_rate, maintenance_margin_rate);
//--- 获取并发送卖出市价单的SYMBOL_NAME交易品种比率到日志
SymbolInfoMarginRatePrint(SYMBOL_NAME, ORDER_TYPE_SELL, initial_margin_rate, maintenance_margin_rate);
/*
result:
Initial margin rate for symbol AFKS for the Buy market order: 0.225600
Maintenance margin rate for symbol AFKS for the Buy market order: 0.112800
Initial margin rate for symbol AFKS for the Sell market order: 0.254400
Maintenance margin rate for symbol AFKS for the Sell market order: 0.127200
*/
}
//+------------------------------------------------------------------+
//| 将预付款比率发送到日志 |
//+------------------------------------------------------------------+
void SymbolInfoMarginRatePrint(const string symbol, const ENUM_ORDER_TYPE order_type, double &initial_margin_rate, double &maintenance_margin_rate)
{
//--- 获取order_type市价单的'symbol'比率
ResetLastError();
if(!SymbolInfoMarginRate(symbol, order_type, initial_margin_rate, maintenance_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_NAME, type, initial_margin_rate,
SYMBOL_NAME, type, maintenance_margin_rate);
}