vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 38
声望: 5

我的策略逻辑很简单,就是每天对A股所有股票进行市值排序,由策略给出市值排名最小的10只股票作为交易标的,每天盘中实时更新股票市值排名,排名小于10的就调入,大于10的就调出,另外在期货市场买入1手股指期货合约进行对冲,到期交割后重新买入1手新的合约。
portfolil strategy给出的sample都是需要事先指定若干交易合约标的代码才能进行交易,如何能够不事先指定而由策略给出信号后确定交易标的呢?

Super Moderator
avatar
加入于:
帖子: 36
声望: 6

我的想法是:

  1. BarData增加一个floating_share字段,用来计算市值。或在策略外维护一个带有时间戳的储存个股流通股数的数据容器。(目的是方便你拿到流通股数)
  2. 为策略设置一个类属性 self.target_pool: List 来存放你的目标股票
  3. vt_symbols 设置为包括A股所有股票和股指期货合约的 List
  4. on_bars函数内实现一个筛选市值最小的10只股票的逻辑,并将选出的股票放入`self.target_pool'
  5. 利用self.get_pos 来获得目标池股票的持仓情况,方便你进行动态调仓。

该方法的弊端:
载入的数据太多,回测应该会很慢。

Member
avatar
加入于:
帖子: 38
声望: 5

李怡然 wrote:

我的想法是:

  1. BarData增加一个floating_share字段,用来计算市值。或在策略外维护一个带有时间戳的储存个股流通股数的数据容器。(目的是方便你拿到流通股数)
  2. 为策略设置一个类属性 self.target_pool: List 来存放你的目标股票
  3. vt_symbols 设置为包括A股所有股票和股指期货合约的 List
  4. on_bars函数内实现一个筛选市值最小的10只股票的逻辑,并将选出的股票放入`self.target_pool'
  5. 利用self.get_pos 来获得目标池股票的持仓情况,方便你进行动态调仓。

该方法的弊端:
载入的数据太多,回测应该会很慢。

多谢版主这么详细的回复。目前我们考虑在每天盘前对昨天的市值进行排名,然后在on_bars里面每隔1min对排名进行刷新,根据已有持仓,获取调入调出的股票List,然后进行决策和下单交易。

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3