交易头寸的计算那篇文章中只有固定资金计算,如果是资金比例计算开仓怎么写呢?

主要有一下几点疑问,劳烦解答下,谢谢~

1.如何获取回测时候的账户净值?

2.假设现在有3个策略单元,每个初始资金50000,那么组合报告总的资金是150000,我能否获取150000这个总资金,并计算各个单元的开仓数量?

3.实盘时候如何获取账户净值呢?

头寸计算
股票头寸计算
关于头寸计算的问题
日期相减怎么计算天数呢
在tb中如何计算损益最大回撤比例。
如何按照固定金额计算交易品种的头寸 简语言
盈利因子怎么计算的
如何用ATR和实盘权益计算开仓手数
如何计算不同品种开仓手数
后复权历史回测导致使用资金比例计算开仓手数虚假的问题。

 Integer LotsMode(3)——这里显示错误?

Integer 是什么函数?定义没有的

integer是定义整型容器的关键字 类似numeric bool string

 

关于资金比例计算头寸问题,系统提供了相应图表账户函数,计算起来其实并不复杂。考虑一直有客户问,就以双均线为例提供一个示例,如有不符合需求的地方,请大家自己再做修改。

Params
    Numeric FastLength(5);            // 短期指数平均线参数
    Numeric SlowLength(20);            // 长期指数平均线参数
    Integer LotsMode(3);            // 头寸计算方式,1-固定手数,2-固定市值,3-资金比例
    Integer Lots(1);                // 固定手数
    Numeric fixedmoney(100000);        // 固定市值
    Numeric moneyrate(0.1);            // 资金比例,0.1=10%

Vars
    Series<Numeric> AvgValue1; 
    Series<Numeric> AvgValue2;
    
Defs
    Integer CalcuTradeLots()        // 交易手数计算函数
    {
        Integer myLots;
        If(LotsMode==3)
        {
            myLots = Max(1,IntPart((Portfolio_CurrentEquity*moneyrate/MarginRatio)/(Open*contractunit*bigpointvalue)));
        }
        Else If(LotsMode==2)
        {
            myLots = Max(1,IntPart(fixedmoney/(Open*contractunit*bigpointvalue)));
        }
        Else myLots = Lots;
        return myLots;
    }
    
Events
    OnBar(ArrayRef<Integer> indexs)
    {
        AvgValue1 = AverageFC(Close,FastLength);
        AvgValue2 = AverageFC(Close,SlowLength);
        PlotNumeric("MA1",AvgValue1);
        PlotNumeric("MA2",AvgValue2);        

        If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
        {
            BuyToCover(0,Open);
            
            // 平仓后调用交易手数计算函数
            Integer TradeLots;
            TradeLots = CalcuTradeLots();

            Buy(TradeLots,Open);
        }
        
        If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
        {
            Sell(0,Open);

            // 平仓后调用交易手数计算函数
            Integer TradeLots;
            TradeLots = CalcuTradeLots();
            
            SellShort(TradeLots,Open);
        }
    }
另外几个问题,关于净值的问题,好像系统目前还没有提供直接的函数,但道理一样,有了权益值,计算净值是不难的。多个策略单元的开仓数量汇总问题,因为策略是和策略单元关联的,要得到汇总的数据只能借助其他交互办法。

 

看不懂,能否逐行注解析下?交易是非常严谨的事情,出问题不知道怎么修改!