模拟交易的重大问题

新手专区
标签: #<Tag:0x00007fc064da2f10>

(wujunjun) #1

模拟交易中没有对剩余现金检查的模块么,如图:


本金共十万,第一天就花光了,第二天开盘立刻又买进去好几万,第二天卖出的股票是在收盘卖出的,所以这些钱等于是“凭空出现的”,导致的结果就是我的收益率非常的高,不知道策略天梯上的策略显示的收益会不会出现这种情况,如果有的话,细思极恐。


(小Q) #2

您好,感谢你细心的反馈。
目前交易机制是前一日出信号,后一日实际成交。
在默认模板里,买入订单的可用资金有控制:

is_staging = context.trading_day_index < context.options['hold_days'] # 是否在建仓期间(前 hold_days 天)
cash_avg = context.portfolio.portfolio_value / context.options['hold_days']
cash_for_buy = min(context.portfolio.cash, (1 if is_staging else 1.5) * cash_avg)

因此实际上是可以从可用资金出发控制买单,不会出现融资情形。

如果不对资金进行控制,那么可能会出现融资的情形。但是这对策略收益的整体影响不大,一是本身融资成本不高,一年6-8%,而是融资也是就一天时间,而且融资额是买入金额。

目前的模拟交易机制是,前一天产生信号了,比如买单在9:30,卖单在14:57,策略运行是待次日收盘结束后,才能进行买入和卖出,这与实盘有一点点差异,如果没有通过可用资金进行买单控制,那么买单可能会很大,超出可用资金,这种情形下模拟交易撮合时相当于当天早上是融资了一部分钱,收盘卖出后再把这一部分钱归还。

请问,你截图是哪个策略呢?可否把notebook_id告诉我们一下,我们详细看下日志。


(wujunjun) #3

notebook ID 是什么?


(chaoskey) #4

其实只要看,持仓占比曲线,就可以大概看出 是否有 融资 或 ”凭空出现的“ 的情况。

比如, 如果持仓占比曲线始终在100%附近 ,甚至高于100%,那么这个策略就有你说的情况。

如果 持仓占比曲线始终离100%比较远(小的情况), 那么,这个策略大概就没有你说的情况。

比如我的策略持仓占比大概70%左右: 开盘买入导致盘中接近100%, 盘后卖出一部分(回到70%左右), 持仓占比是按盘后计算,所以持仓占基本是70%的水平线。


(chaoskey) #5

比如 下面这个策略就肯定有问题:


这个策略,盘后持仓占比已经接近100% (上面红线圈住的部分); 但计划中买入的仓位占比居然是94.73%. 意味着 盘中的持仓占比是 200%左右。 这样的策略基本是不可用的, 除非真的会去融资。


(chaoskey) #6

再比如,我的策略:

持仓占比曲线基本在 70%左右(盘后), 开盘买入的股票仓位占比 24%, 加起来不到100%(接近)。 那么至少我的策略就没有 融资 和 凭空出现的情况。


(chaoskey) #7

所以, 天梯上的 策略, 只要最近的持仓占比 + 计划买入的仓位占比 > 100%, 基本都有问题。 除非这个策略真的要融资。


(wujunjun) #8

感谢您耐心的回答,请问您是在回测里加入了一定的控制么?


(chaoskey) #9

你可以自定义 “回测/模拟” 模块中的 主函数代码,自己控制仓位。