问财量化选股策略逻辑
选股逻辑为:振幅大于1,大单净量排行,集中度不高于70%和不低于20%的股票。该选股策略主要考虑了技术面和市场风险因素,但存在一定的风险。
选股逻辑分析
该选股逻辑主要考虑了股票的技术面指标和市场风险因素,以振幅大于1、大单净量排行、集中度等为条件筛选符合要求的股票,以期在市场整体趋势未明朗情况下,捕捉市场交易量较大、波动大,但不过分集中的股票,以减少风险。
有何风险?
该选股策略可能存在选股条件过于简单,一些重要因素如公司规模等没有进行考虑,同时选股条件区间的界定过于宽泛,可能筛选出一些不具有真实优势的股票。同时,选股策略实际效果也会受到市场整体波动和宏观经济因素等影响。
如何优化?
可以进一步优化指标,将技术面和公司基本面指标结合起来,多维度分析股票的性价比、成长性、市场竞争力、风险控制等因素,以选股策略具有更好的实际效果。同时,应当根据市场具体情况(如股指涨跌情况)适当调整选股策略的逻辑和参数。
最终的选股逻辑
选股条件为:振幅大于1,大单净量排行,集中度不高于70%和不低于20%的股票,以综合分析技术面和市场风险因素。
同花顺指标公式代码参考
REF_AMOUNT:=REF(AMOUNT,1);
SET CON1=REF_AMOUNT/AMOUNT>1.5;
SET CON2=(H-L)/REF(CLOSE,1)>0.01;
SET CON3=(H-L)/(HHV(HIGH,60)-LLV(LOW,60))<0.7;
SET CON4=IF(MAINCROSS(VOL,MA(VOL,60)),1,0);
SET SELECTED=CON1 AND CON2 AND CON3 AND CON4;
Python代码参考
import pandas as pd
import tushare as ts
def select_stocks(length):
ts.set_token('your token')
pro = ts.pro_api()
# 获取股票数据
stock_data = pro.stock_basic(list_status='L', exchange='SSE', fields='ts_code,symbol,name,industry')
current_date = '20220308'
# 筛选符合条件的股票
selected_stocks = []
for index, row in stock_data.iterrows():
code = row['ts_code']
info = {}
info['code'] = code
info['name'] = row['name']
# 获取技术指标和市场风险数据
tech_data = pro.query('daily_basic', ts_code=code, trade_date=current_date, fields='turnover_rate, volume_ratio')
if len(tech_data) > 0 and tech_data.iloc[0]['turnover_rate'] > 3 and tech_data.iloc[0]['volume_ratio'] > 1:
# 计算集中度指标
df = pro.index_daily(ts_code='000001.SH', start_date='20220101', end_date=current_date)
market_data = df[df['trade_date'] == current_date]
ratio = market_data.iloc[0]['amt'] / df['amt'].sum()
if 0.2 <= ratio <= 0.7:
selected_stocks.append(info)
if len(selected_stocks) >= length:
break
return selected_stocks
在该选股策略中,加入了市场风险因素,以集中度不高于70%和不低于20%的股票为选股条件,以寻找波动大、交易量较大但不过度集中的股票。同时,再次分析选股中技术面指标的重要性,除振幅大于1、大单净量排行外,特别加入了集中度条件,进一步筛选股票。优化后的选股策略可以更好地从波动大、交易量大、风险适当的股票中挑选,帮助投资者更好地进行选股。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
