【从零开始vnpy量化投资】九. 资金动态计算

【从零开始vnpy量化投资】九. 资金动态计算

概述

在之前的策略中,无论是vnpy内置策略还是我们自己编写的策略,单次交易的手数都是固定的。这种情况既不符合风险管理的要求,也无法充分利用盈利后的资金达到复利增长的目的。所以我们需要为策略添加盈亏计算,使策略内部可以获得实时准确的资金情况,从而根据当前资金量计算合适的仓位。

为何我们无法从vnpy直接获取资金

vnpy的回测结果中包含了完整的资金曲线,为何它能计算出曲线,而我们在策略运行时无法通过api获得实时资金?
从vnpy的backtesting文件源码中,我们可以看到回测的机制为记录了所有的成交记录。并通过k线和交易数据的回放在回测结束后通过每日持仓量和收盘价再计算每日的结束资金。
在这里插入图片描述

除去上述机制,vnpy在实盘运行时并未提供任何与资金相关的配置。故每个策略的资金管理需要我们自己处理。

实现方法

我们可以使用cta策略模板添加通用的资金管理。为策略添加变量capital,并使vnpy的parameters和variables都包含这个变量。这样在策略初始化时,我们就可以通过配置文件设置初始资金。并在策略运行后将实时资金存入到数据文件,确保资金数据前后连贯。
同时,我们在on_trade方法中添加盈亏的计算,并将结果实时更新到策略中。

扩展交易记录功能

我们之前的交易记录只有储存的功能,此时我们需要新增两个功能:查询未平仓的数据与更新数据状态功能。查询未平仓数据仅需

猜你喜欢

转载自blog.csdn.net/u011687355/article/details/130336191