VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 36
声望: 7

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

Super Moderator
avatar
加入于:
帖子: 31
声望: 14

我的想法是:

  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
加入于:
帖子: 36
声望: 7

李怡然 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,然后进行决策和下单交易。

Member
avatar
加入于:
帖子: 8
声望: 1

厉害

Member
avatar
加入于:
帖子: 97
声望: 4

市值单独另外写个函数获取专门的市值数据,但是怎么让市值数据对应到每个bar,我就不懂了。如果解决让市值对应到每个bar,那就好办了。

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】