GetMarginRate函数的用法问题

如题:

Events

OnInit() {

     MarginRate rate; //当前公式应用商品的默认       保证金比率 GetMarginRate(rate);         Print("GetMarginRate:" + Text(rate));

}

rate在onbar中的取值和print出的数据不一样,修改策略单元中的保证金率后,print出的数据也随之更改,但是onbar取的值一直是0.1  .

函数用法
事件函数用法
A_GetMarginRate函数这样写编译错?请指导
咨询函数的用法
AvgEntryPrice()这个函数的用法问题?
函数用法咨询
函数的使用问题
咨询minmove的用法
Q_Status的功能及用法
Range的用法详解

怎么没回复了?这个函数在OnInit() 和OnBar取值不一样,修改策略单元保证金设置后OnBar中取值不会随着变。

没看懂你的问题,我贴的代码显示没有问题啊

然后我又测试了下三个域都没有问题

 

Params
    //此处添加参数

Vars
    //此处添加变量
    MarginRate rate;
Events
    OnInit()
    {
        GetMarginRate(rate);
        Print("onint="+text(rate));
    }
    OnReady()
    {
        GetMarginRate(rate);
        Print("rrrr="+text(rate));
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        GetMarginRate(rate);
        //Print(text(rate));
    }

你确定你图表上的保证金率改了吗

这么神奇吗?

这是策略单元设置

?

Params
    //此处添加参数

Vars
    //此处添加变量
    MarginRate rate;
Events

    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        GetMarginRate(rate);
        Print(text(rate));
    }

我试了下都是生效的

Params
    //此处添加参数

Vars
    //此处添加变量
    MarginRate rate;

Events
    //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
    OnInit()
    {
        //timerId=createTimer(millsecs);
        //与数据源有关
        GetMarginRate(rate);
        Print(text(rate));
    }
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        Commentary(" 保证金率= "+text(rate.longMarginRatio));
    }

你试试这个,修改策略单元保证金率后看看一样不一样。

不一样