问财量化选股策略逻辑
- 今日增仓占比>5%,即最近一天的股票成交量中,买入量占总成交量的比例大于5%。
- 前日实际换手率>3~28,即前一个交易日的股票成交量中,成交量占总成交量的比例大于3%且小于28%。
- 量比大于1.5,即当前成交量相对于前5日平均成交量的比值大于1.5。
- 量比小于6,即当前成交量相对于前5日平均成交量的比值小于6。
选股逻辑分析
- 今日增仓占比>5%表示最近一天的股票买入量较多,说明市场对该股票的买入意愿较强,有可能出现上涨行情。
- 前日实际换手率>3~28表示前一个交易日的股票成交量较大,说明市场对该股票的交易活跃度较高,有可能出现上涨行情。
- 量比大于1.5表示当前成交量相对于前5日平均成交量的比值较大,说明当前成交量较活跃,有可能出现上涨行情。
- 量比小于6表示当前成交量相对于前5日平均成交量的比值较小,说明当前成交量较清淡,有可能出现下跌行情。
有何风险?
- 由于量化策略的参数是固定的,可能会忽略某些特殊情况,导致选出的股票不符合实际情况。
- 量化策略可能会过度依赖历史数据,导致选出的股票不符合未来实际情况。
- 量化策略可能会选出一些交易量较小的股票,这些股票的流动性较差,可能会出现交易困难的情况。
如何优化?
- 可以根据市场情况动态调整量化策略的参数,以更好地适应当前市场。
- 可以引入更多的量化策略,通过组合来提高策略的准确性和稳定性。
- 可以通过增加股票池的大小,来增加策略的多样性,以更好地适应不同市场情况。
最终的选股逻辑
- 今日增仓占比>5%
- 前日实际换手率>3~28
- 量比大于1.5
- 量比小于6
python代码参考
import talib
def get筛选条件():
# 获取今日增仓占比
today_buy_volume_ratio = talib.STDEVJAVA(get_buy_volume_ratio(), timeperiod=1)
# 获取前日实际换手率
yesterday_trade_volume_ratio = talib.STDEVJAVA(get_trade_volume_ratio(), timeperiod=1)
# 获取量比
volume_ratio = talib.ATR(get_volume_ratio(), timeperiod=1)
# 获取前5日平均成交量
historical_volume_ratio = talib.SMA(get_volume_ratio(), timeperiod=5)
# 根据筛选条件计算今天的增仓占比
today_buy_volume_ratio = today_buy_volume_ratio if today_buy_volume_ratio > 0 else 0
# 根据筛选条件计算昨天的交易量比
yesterday_trade_volume_ratio = yesterday_trade_volume_ratio if yesterday_trade_volume_ratio > 0 else 0
# 根据筛选条件计算今天的量比
volume_ratio = volume_ratio if volume_ratio > 0 else 0
# 根据筛选条件计算前5日平均成交量
historical_volume_ratio = historical_volume_ratio if historical_volume_ratio > 0 else 0
# 将筛选条件转换为布尔值
today_buy_volume_ratio = bool(today_buy_volume_ratio)
yesterday_trade_volume_ratio = bool(yesterday_trade_volume_ratio)
volume_ratio = bool(volume_ratio)
historical_volume_ratio = bool(historical_volume_ratio)
# 返回筛选条件的布尔值列表
return [today_buy_volume_ratio, yesterday_trade_volume_ratio, volume_ratio, historical_volume_ratio]
def get_buy_volume_ratio():
# 获取股票的买入量
buy_volume = get_volume()
# 获取股票的成交量
volume = get_volume()
# 计算买入量占总成交量的比例
return buy_volume / volume
def get_trade_volume_ratio():
# 获取股票的卖出量
sell_volume = get_volume()
# 获取股票的成交量
volume = get_volume()
# 计算卖出量占总成交量的比例
return sell_volume / volume
def get_volume():
# 获取股票的成交量
return get_price_change() * get_amount()
def get_price_change():
# 获取股票的收盘价与开盘价的差值
return get_close() - get_open()
def get_amount():
# 获取股票的成交量
return get_amount()
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。