【从零开始vnpy量化投资】九. 资金动态计算
概述
在之前的策略中,无论是vnpy内置策略还是我们自己编写的策略,单次交易的手数都是固定的。这种情况既不符合风险管理的要求,也无法充分利用盈利后的资金达到复利增长的目的。所以我们需要为策略添加盈亏计算,使策略内部可以获得实时准确的资金情况,从而根据当前资金量计算合适的仓位。
为何我们无法从vnpy直接获取资金
vnpy的回测结果中包含了完整的资金曲线,为何它能计算出曲线,而我们在策略运行时无法通过api获得实时资金?
从vnpy的backtesting文件源码中,我们可以看到回测的机制为记录了所有的成交记录。并通过k线和交易数据的回放在回测结束后通过每日持仓量和收盘价再计算每日的结束资金。

除去上述机制,vnpy在实盘运行时并未提供任何与资金相关的配置。故每个策略的资金管理需要我们自己处理。
实现方法
我们可以使用cta策略模板添加通用的资金管理。为策略添加变量capital,并使vnpy的parameters和variables都包含这个变量。这样在策略初始化时,我们就可以通过配置文件设置初始资金。并在策略运行后将实时资金存入到数据文件,确保资金数据前后连贯。
同时,我们在on_trade方法中添加盈亏的计算,并将结果实时更新到策略中。


本文介绍了在vnpy量化投资中,如何实现根据资金动态计算下单手数。通过扩展交易记录功能,计算每手收益,并根据资金量动态调整开仓手数,以实现更有效的风险管理。文章详细阐述了实现方法,包括资金管理、回测验证和结果对比。
订阅专栏 解锁全文
5228

被折叠的 条评论
为什么被折叠?



