问财量化选股策略逻辑
今日增仓占比>5%,机构抄底,30日平均线向上
选股逻辑分析
这个策略的逻辑是基于三个条件来筛选股票:
- 今日增仓占比>5%:这个条件表示股票在最近一段时间内有明显的资金流入,表明市场对该股票的未来走势较为看好。
- 机构抄底:机构投资者通常比普通投资者更加专业和理性,他们的抄底行为往往能够提前反映市场走势。因此,如果机构投资者在近期出现了抄底行为,也表明市场对该股票的未来走势较为看好。
- 30日平均线向上:平均线是股票价格的趋势指标,如果平均线向上,则表明股票价格的趋势是上涨的。因此,如果股票的平均线向上,则表明股票价格在未来一段时间内可能会继续上涨。
有何风险?
这个策略的逻辑比较简单,但是仍然存在一些风险:
- 机构投资者的抄底行为并不总是准确的:机构投资者的抄底行为可能会受到市场情绪、政策因素等多种因素的影响,因此并不总是准确的。
- 资金流入并不代表股票价格上涨:资金流入只是表明市场对该股票的未来走势较为看好,但是并不一定代表股票价格一定会上涨。
- 股票价格的上涨趋势并不总是持续的:股票价格的上涨趋势并不总是持续的,可能会出现回调或者反转的情况。
如何优化?
为了降低这个策略的风险,可以考虑以下优化措施:
- 结合多个指标:除了上述三个条件之外,还可以结合其他指标,例如市盈率、市净率等,来更加全面地评估股票的价值和风险。
- 确定合理的买入和卖出时机:在买入股票之前,需要确定合理的买入时机,以避免在股票价格过高时买入。同样,在卖出股票之前,也需要确定合理的卖出时机,以避免在股票价格过低时卖出。
- 控制投资规模:在进行量化交易时,需要控制投资规模,以避免过度交易和风险集中。
最终的选股逻辑
最终的选股逻辑如下:
- 今日增仓占比>5%。
- 近期机构投资者出现了抄底行为。
- 股票的30日平均线向上。
- 结合市盈率、市净率等其他指标进行评估。
- 确定合理的买入和卖出时机。
- 控制投资规模。
以下是Python代码参考:
import talib
import pandas as pd
def get_strategy_data(data):
# 获取今日增仓占比
today_percent = data['net_flow'] / data['close'] * 100
# 获取30日平均线
ma30 = talib.MA(data['close'], timeperiod=30)
# 获取机构抄底信号
if data['turnover'] > data['turnover'].rolling(window=30).mean() * 1.5:
signal = 1
else:
signal = 0
# 统计今日增仓占比和机构抄底信号的出现次数
today_percent_count = today_percent.count()
signal_count = signal.count()
# 计算平均数和标准差
avg_today_percent = today_percent.mean()
std_today_percent = today_percent.std()
avg_signal = signal.mean()
std_signal = signal.std()
# 返回策略数据
return pd.DataFrame({'today_percent': today_percent, 'ma30': ma30, 'signal': signal, 'today_percent_count': today_percent_count, 'signal_count': signal_count, 'avg_today_percent': avg_today_percent, 'std_today_percent': std_today_percent, 'avg_signal': avg_signal, 'std_signal': std_signal})
def apply_strategy(data, strategy_data):
# 获取符合条件的股票
selected = data[(data['net_flow'] > data['close'] * strategy_data['today_percent_count']) & (data['turnover'] > data['turnover'].rolling(window=30).mean() * strategy_data['signal_count']) & (data['close'] > data['ma30'])]
# 计算股票的平均价格
avg_price = selected['close'].mean()
# 计算股票的平均市盈率和市净率
avg_pe = selected['pe'].mean()
avg_pb = selected['pb'].mean()
# 返回策略结果
return pd.DataFrame({'avg_price': avg_price, 'avg_pe': avg_pe, 'avg_pb': avg_pb})
# 读取数据
data = pd.read_csv('data.csv')
# 获取策略数据
strategy_data = get_strategy_data(data)
# 应用策略
selected = apply_strategy(data, strategy_data)
# 输出结果
print(selected)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


