问答交流

请教模拟启动时, 如何在首日建满仓!

由sonng创建,最终由sonng 被浏览 25 用户

问题

策略设置只买20只, 每天只买5%仓位,这样启动模拟时, 要一个月才能满仓。现在想运行首日就满仓。请问如何把回测结果在模拟运行时,首日就按回测结果来。多谢。


策略就是模板中, StockRanker策略,

#设置每只股票占用的最大资金比例
stock_count =2

# 设置每只股票占用的最大资金比例
context.max_cash_per_instrument = 0.5
context.options['hold_days'] = 5

模拟运行时,想做到把回测前一日收盘持仓全在首日买入。这样不用等20个交易日才买满仓。

\

解答

\

context.options['hold_days']

答:这一行是指建仓期,可以把这个参数设置为1,则可以在第一天的时候根据context.max_cash_per_instrument进行个股比例的买入。

“多谢, 这个是建仓期哦。hold 以为是最多持有天数呢。再试试看。”

答:对,建仓期的意思,但是会间接影响后面对于每只股票的持有期,所以更改这个就可以,也可以研究下后面的策略逻辑。

\

评论
  • 你把每天的仓位改成100%不就行了
  • Ranker 算法, 只买排名靠前的2只, 如何首日满仓呢, 不成每只买50%仓位? 限定每只不超总仓位5%的。
  • 能不能 加代码,识别是首日建仓, 手工定义买哪些,买多少呢。
  • 建议把策略设置部分分享出来瞅瞅 如果按照模板策略Trade模块里的设置, ![{w:100}](/wiki/api/attachments.redirect?id=85993216-8700-4dc2-91f5-00ed74d96a58)这里设置的是每只股票占用总资金的大小 所以具体得看你策略是怎么写的
  • 策略就是模板中, StockRanker策略, # 设置买入的股票数量,这里买入预测股票列表排名靠前的2只 ``` stock_count =2 # 设置每只股票占用的最大资金比例 context.max_cash_per_instrument = 0.5 context.options['hold_days'] = 5 模拟运行时,想做到把回测前一日收盘持仓全在首日买入。这样不用等20个交易日才买满仓。 ``` \
{link}