求一个指标,自动算当前品种开1手需要的保证金

 
指标 脚本都可以 ,要求显示当前品种 开1标准手需要多少保证金   感谢感谢 在线等 
 

    double x=AccountLeverage();
    double y=NormalizeDouble(1000*100/x,0);
    if(Symbol()=="XAUUSD")
       Print("1000");
    else
       Print(y);

 
哈哈,不是这么简单的,还需要分是美元前美元后,指数,期货,外汇,。。。计算货币,杠杆。
 
你以为我没事干给他写个100行?
 
niubee:

    double x=AccountLeverage();
    double y=NormalizeDouble(1000*100/x,0);
    if(Symbol()=="XAUUSD")
       Print("1000");
    else
       Print(y);

用这个函数你看看是不是可以呀
 

函数库里面有个函数:MarketInfo(Symbol(),MODE_MARGINREQUIRED)  就时当前品种做一手需要多少保证金的意思


double x=MarketInfo(Symbol(),MODE_MARGINREQUIRED);

Print(x);

Sleep(10000);


就可以输出当前品种一手需要多少保证金了

 

MODE_MARGINREQUIRED

32

Free margin required to open 1 lot for buying

确实有这个现成的

 

哇操这函数以前没有。啥时加的。。。良心啊

那有没有在不下单情况下计算两价格的盈亏。。。交叉货币的计算好麻烦不想写,涉及对美元的汇率,特别是用于分析历史行情时

 
Yufeng Zheng:

函数库里面有个函数:MarketInfo(Symbol(),MODE_MARGINREQUIRED)  就时当前品种做一手需要多少保证金的意思


double x=MarketInfo(Symbol(),MODE_MARGINREQUIRED);

Print(x);

Sleep(10000);


就可以输出当前品种一手需要多少保证金了

这个是mt4的函数啊。我要mt5的,求大神帮写一个

 
Feng Guozheng:

哇操这函数以前没有。啥时加的。。。良心啊

那有没有在不下单情况下计算两价格的盈亏。。。交叉货币的计算好麻烦不想写,涉及对美元的汇率,特别是用于分析历史行情时

MarketInfo(Symbol(),MODE_TICKVALUE) 这个就是点值,差价/Point=点,点X点值*手数=盈亏金额   盈亏金额=(price1-price2)/MarketsInfo(Symbol(),MODE_POINT)*MarketInfo(Symbol(),MODE_TICKVALUE)*Lots;
 
323395:

这个是mt4的函数啊。我要mt5的,求大神帮写一个

MT5函数 :   

OrderCalcMargin

函数计算指定订单类型的需要保证金, 

bool  OrderCalcMargin( 
   ENUM_ORDER_TYPE       action,           // 订单类型 
   string                symbol,           // 交易品种名称 
   double                volume,           // 交易量 
   double                price,            // 开盘价 
   double&               margin            // 为获取保证金值的值 
   );

原因: