全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
组合测试报告中的最大杠杆计算似乎不准确,请老师指导
hongqida 分享到
2023-09-22 16:09

我的程序开仓杠杆控制在2倍,如下面代码所示:

lots = Portfolio_CurrentCapital() / (open/Rollover()*ContractUnit()*BigPointValue())*2;

组合测试报告如下图如示:

data-href=


从表中可看出(6个品种的起始日期均统一),分品种的最大开仓杠杆仅有2倍,但组合测试报告显示最大开仓杠杆为5倍。


data-href=


我逐个品种找2022年8月15日的开仓市值和动态权益,6个品种的开仓市值合计为9744万元,6个品种的动态权益合计为5047万元,可以计算出此时的杠杆为1.93倍,远低于组合报告显示的5倍。

kyover

我转给研发相关同事看看

2023-09-25 09:13
kyover

你的相关数据不太充分。我只能尽量分析一下

你的鸡蛋品种 ,最大开仓市值8000w左右,最大回撤2300w左右,最大回撤率63%。

按照你开仓两倍杠杆计算,你鸡蛋最大开仓的时候,权益大概是4000w,回撤63%,大概是回撤2400w左右,和最大回撤指标基本对的上。

那么当发生最大回撤的时候,鸡蛋的杠杆是,持仓市值(8000-2400)/权益(4000-2400)=5600/1600=3.5,可以看到这个权益已经从2升到了3.5。

在回撤过程中,杠杆变大是很正常的。

另外,汇总的数据是不是单纯的把每个品种的最大开仓杠杆加总计算。因为每个品种的最大杠杆不一定是同时发生的,也许汇总发生最大杠杆的时候,单个品种不一定是最大杠杆。

建议你如果还有疑问,可以通过输出日志的形式,把每一根bar上所有品种的持仓市值和权益全都输出一下,然后用序列变量记录一下累积的最大杠杆,进行对比

2023-11-01 09:48
hongqida
@kyover

老师好,您说的鸡蛋应该是焦炭j9888。

您举行了最大回撤63%的例子,杠杆从2上升到3.5。但这个回撤63%并不是一次交易所发生的,每次交易止损后,又重新开仓,杠杆重新平衡到2倍。回撤的过程中,有不断的开仓和平仓,每次杠杆都会重新计算,所以您的结论:“在回撤过程中,杠杆变大是很正常的”并不能解释以上现象。

2023-12-19 10:52
kyover
@hongqida

那我就无能为力了

2023-12-19 10:53
hongqida
@kyover

老师,我按照你的方法,用代码把日记梳理出来,代码如下:

TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();

lots = TotalEquity / (open/Rollover()*ContractUnit()*BigPointValue());

FileAppend(\"c:\\\\双均线仓位日志测试\",\"品种为:\" + Symbol() + \"  Date=\" + DateToString(Date) + \"  权益金额为=\" + Text(TotalEquity/10000) + \" 持仓价值为=\" + Text(lots*close/Rollover()*ContractUnit()*BigPointValue()/10000));

为简化,这次测试只用两个品种,如下图所示:

\"\"

但两个策略的组合最大开仓杠杆还是1.5,如下图:

\"\"

按策略提示,我到日志搜索2023年2月8日的情况,但显示杠杆仍为1,如下图:

\"\"

只要使用了Portfolio_CurrentCapital() + Portfolio_UsedMargin()这种复利加仓的模式,最大杠杆貌似就会超出实际。所以我很好奇这个最大杠杆是如何计算出来的?

2023-12-19 11:54
您未登录,请先 登录注册 后发表评论
顶部