如何获得保正金率?

 if(!A_GetMarginRate(Symbol, MarginRateValue))

       {

           Alert("保证金率获取失败");

           Return;

       }

       MarginRateNum = MarginRateValue.Rate;  // 修正处:使用Rate字段

           

           

           

           // 计算动态手数

           if(Q_UpperLimit > Q_LowerLimit*1.03)

           {

               SetGlobalVar(10, IntPart(MarginRateNum/10*A_FreeMargin/(BuyOrderPrice*BigPointValue*ContractUnit)));

               SetGlobalVar(11, IntPart(MarginRateNum/10*A_FreeMargin/(SellOrderPrice*BigPointValue*ContractUnit)));

           }

保正金率
保证金率如何获取最新
关于股指的开平互转,保证金率如何正确设置?
1.3.4.5版本 保证金率的获取问题
保证金率
持仓合约的保证金发生变化时如何获得新的保证金
A_GetMarginRate获取的保证金率不准确
如何获得收盘时间
请问如何获得账户持仓信息
交易手数=可用资金/保证金率/一手价格;与实际不符

你这不是已经获取了么?所以问题是什么?

A函数要挂账户后才能获取 ,你后面的Q函数也是一样的

MarginRateNum = MarginRateValue.Rate;编译出错,提示Rate不是结构成员?

Params

   // 可添加参数    

Vars

 Numeric BuyTriggerPrice;       // 做多触发价

   Numeric SellTriggerPrice;      // 做空触发价

   Numeric BuyOrderPrice;         // 做多委托价

   Numeric SellOrderPrice;        // 做空委托价

   MarginRate MarginRateValue;    // 保证金率结构体

   Numeric dMarginRateNum;         // 保证金率数值

   Numeric kMarginRateNum;

   

Events

   onBar(ArrayRef<Integer> indexs)

   {

       // 初始化全局变量

       if(BarStatus == 0 || GetGlobalVar(0) == InvalidNumeric)

       {

           SetGlobalVar(0, 0);  // 初始化标志

           SetGlobalVar(3, 9999); // 时间戳初始值

           SetGlobalVar(5, 0);   // 做多价格

           SetGlobalVar(6, 0);   // 做空价格

           SetGlobalVar(10, 0);  // 做多数量

           SetGlobalVar(11, 0);  // 做空数量

           SetGlobalVar(13, 0);  // 多单状态

           SetGlobalVar(14, 0);  // 空单状态

           SetGlobalVar(17,9999);  //

           SetGlobalVar(18, 0);  //

           SetGlobalVar(4, 0);  //

       }

       

       if(Q_UpperLimit == InvalidNumeric || Q_LowerLimit == InvalidNumeric) return;

       

       // 实时交易逻辑(K线结束时)

       if(BarStatus == 2)

       {

           // 计算实时参数

           BuyTriggerPrice = Q_LowerLimit + 33.33/100*(Q_UpperLimit - Q_LowerLimit);

           SellTriggerPrice = Q_UpperLimit - 33.33/100*(Q_UpperLimit - Q_LowerLimit);

           

           BuyOrderPrice =Round( Min(Open - 15.33/100*(Q_UpperLimit-Q_LowerLimit), BuyTriggerPrice),2);

           SellOrderPrice =Round( Max(Open + 15.33/100*(Q_UpperLimit-Q_LowerLimit), SellTriggerPrice),2);

           

           SetGlobalVar(5, BuyOrderPrice);

           SetGlobalVar(6, SellOrderPrice);

           if(!A_GetMarginRate(Symbol, MarginRateValue))

       {

           Alert("保证金率获取失败");

           Return;

       }

       dMarginRateNum = MarginRateValue.Rateio;  // 多头

        kMarginRateNum = MarginRateValue.Rateio;  //空头

           

           

           // 计算动态手数

           if(Q_UpperLimit > Q_LowerLimit*1.03)

           {

               SetGlobalVar(10, IntPart(MarginRateNum/10*A_FreeMargin/(BuyOrderPrice*BigPointValue*ContractUnit)));

               SetGlobalVar(11, IntPart(MarginRateNum/10*A_FreeMargin/(SellOrderPrice*BigPointValue*ContractUnit)));

           }