问财量化选股策略逻辑
选股逻辑为:振幅大于1、换手率>2%且<9%、500日内至少2次涨停的股票。该选股策略主要以波动性、市场关注度、趋势等指标为主,考虑股票的波动性和趋势性。
选股逻辑分析
该选股策略采用了振幅、换手率、涨停次数等指标,筛选出波动性较大且市场关注度较高的股票,并结合涨停次数来判断股票的趋势性。
有何风险?
该选股策略存在以下不足与风险:首先,通过涨停次数作为趋势判断标准可能存在过拟合问题,选出的股票可能不具备足够的长期投资价值;其次,该选股策略过于依赖历史数据,无法全面反映当前市场的变化。
如何优化?
该选股策略可以引入更多的指标,如市盈率、市净率等财务指标,加强对股票投资价值的评估。同时,可以增加更多的选股条件,如涨跌幅、相对强弱指数等技术指标,以更全面、准确地筛选股票。
最终的选股逻辑
选股条件为:振幅大于1、换手率>2%且<9%、500日内至少2次涨停的股票。该选股策略需要综合考虑股票波动性、市场关注度、趋势等指标,全面、准确地评估股票的投资价值。
同花顺指标公式代码参考
选股条件为:振幅大于1、换手率>2%且<9%、500日内至少2次涨停的股票。
C1: ABS((HIGH/LOW-1)*100)>=1;//振幅大于1
C2: TURNOVER>2 AND TURNOVER<9;//换手率大于2%小于9%
C3: COUNT(IF((HIGH == REF(HIGH,1) AND LOW == REF(LOW,1) AND CLOSE == REF(CLOSE,1)), 1, 0), 500) >= 2;//500日内至少2次涨停
SYMBOL: C1 AND C2 AND C3;
python代码参考
import pandas as pd
import tushare as ts
import datetime
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,list_date')
current_date = (datetime.datetime.now() - datetime.timedelta(days=2)).strftime("%Y%m%d")
df_list = []
# 筛选符合条件的股票
for index, row in stock_data.iterrows():
code = row['ts_code']
info = {}
info['code'] = code
info['name'] = row['name']
# 获取技术数据
tech_data = pro.daily(ts_code=code, end_date=datetime.datetime.now().strftime("%Y%m%d"), fields='open, high, low, vol, trade_date, ma5, ma10')
if tech_data.empty:
continue
max_price = tech_data['high'].rolling(500).max().max()
if max_price != tech_data.iloc[-1]['high']:
continue
if tech_data.iloc[-1]['high'] - tech_data.iloc[-1]['low'] <= 0 or tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] <= 0.02 or tech_data.iloc[-1]['vol'] / pro.stock_basic(ts_code=code).iloc[0]['total_share'] >= 0.09:
continue
count = tech_data.apply(lambda x: 1 if x['high'] == x['high'] and x['low'] == x['low'] and x['close'] == x['close'] and tech_data.loc[tech_data['trade_date'] == x['trade_date'] - datetime.timedelta(days=1), 'high'].iat[0] != x['high'] else 0, axis=1).rolling(500).sum().iat[-1]
if count < 2:
continue
# 添加股票
df_list.append(info)
selected_stocks = pd.DataFrame(df_list).head(length)
return selected_stocks
致辞
本次问答为选股逻辑:振幅大于1,换手率>2%且<9%,500日内至少2次涨停的问答。该策略选股条件相较之前增加了涨停次数,需要同时考虑股票的波动性、市场关注度、趋势等指标,以更全面、准确地评估股票的投资价值。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
