开拓者期货期权程序化系统交易论坛

标题: 请大侠帮我看一这段代码为什么计算不出正确仓位 [打印本页]

作者: dorodo    时间: 2017-8-1 16:50:37     标题: 请大侠帮我看一这段代码为什么计算不出正确仓位

  TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
    TurtleUnits = (TotalEquity*RiskRatio/100) /(ContractUnit()*BigPointValue());
    TurtleUnits = IntPart(TurtleUnits); // 对小数取整
为什么我要取30%的仓位,但是RiskRatio 设为30,仓位计算不对呢?
作者: dorodo    时间: 2017-8-2 22:20:46

果然是个死论坛,根本没有人维护的。
作者: 小米    时间: 2017-8-3 09:41:49

怎么个不对法?请具体一下
作者: dorodo    时间: 2017-8-3 10:44:22

RiskRatioy这个变量,我怎么设都不会有变化,30%是两手。10%也是两手。1%也是两手。
作者: 小米    时间: 2017-8-3 14:06:09

dorodo 发表于 2017-8-3 10:44
RiskRatioy这个变量,我怎么设都不会有变化,30%是两手。10%也是两手。1%也是两手。 ...

上述算法是totalequity是总资产,其中也包括已占用保证金。确认一下可用保证金是否能开的数量并不大呢?
作者: dorodo    时间: 2017-8-3 14:51:03

totalequity资金是1万,但是我设1%,结果是开仓2手。设70%也是开仓两手。完全跟RiskRatioy变量无关。

作者: dorodo    时间: 2017-8-3 14:51:29

我做的是螺纹。

作者: 小米    时间: 2017-8-3 14:53:13

dorodo 发表于 2017-8-3 14:51
totalequity资金是1万,但是我设1%,结果是开仓2手。设70%也是开仓两手。完全跟RiskRatioy变量无关。
...

方便将开仓这一段的代码 ,图表信号,以及全局交易设置的内容截图看一下吧。
作者: dorodo    时间: 2017-8-3 15:14:56

    //仓位统计
     TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
    TurtleUnits = (TotalEquity*RiskRatio/100) /(ContractUnit()*BigPointValue());
    TurtleUnits = IntPart(TurtleUnits); // 对小数取整
               

      //开平仓条件
        SellEntry = Close[1]<LowerLine[1];
        SellExit =  Close[1]>UpperLine[1] ;
        //程序主体
        If(MarketPosition==0 && SellEntry)
        {
                SellShort(TurtleUnits,Open);
                Commentary("开空");               
        }
        If(MarketPosition==0 && BuyEntry)
        {                        
            Buy(TurtleUnits,Open);
                Commentary("开多");
        }       
作者: dorodo    时间: 2017-8-3 15:25:35

配图
作者: dorodo    时间: 2017-8-3 15:26:35

dorodo 发表于 2017-8-3 15:25
配图

我参数设1%也是要两手仓单建仓。
作者: 小米    时间: 2017-8-4 09:40:26

dorodo 发表于 2017-8-3 15:25
配图

图表上的信号从头到尾一直是显示3手的?
合约的保证金率设置的是多少?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2