问财量化选股策略逻辑
选股逻辑为:振幅大于1、换手率大于2%小于9%、10天内涨停天数大于2的股票。该选股策略主要考虑了股票的波动性、市场交易情况以及近期市场情绪,找出一些具有较高热度的投资标的。
选股逻辑分析
选股策略主要考虑了股票的波动性、市场交易情况以及近期市场情绪,振幅大于1可以较好地筛选出波动性较大的股票,换手率大于2%小于9%表明了股票市场的交易活跃程度,而10天内涨停天数大于2则表明股票近期市场热度、情绪较高。
有何风险?
该选股策略较为依赖近期市场情绪及市场热度,存在选股风险。同时,过度追求涨停板的股票可能会产生慣性上涨而存在较大的风险。需要注重结合基本面因素进行综合考虑。
如何优化?
可以考虑加入基本面因素的综合分析,如市盈率、市净率、分红率等方面。同时,可以设置较为严格的选股条件,同时多考虑市场风格、趋势等因素,从而减少风险。
最终的选股逻辑
选股条件为:振幅大于1、换手率大于2%小于9%、10天内涨停天数大于2的股票。该选股策略主要考虑了股票的波动性、市场交易情况以及近期市场情绪,找出一些具有较高热度的投资标的。
同花顺指标公式代码参考
选股条件为:振幅大于1、换手率大于2%小于9%、10天内涨停天数大于2。
C1: ABS((HIGH/LOW-1)*100)>=1;//振幅大于1
C2: TURNOVER>2 AND TURNOVER<=9;//换手率大于2%小于9%
C3: CNTT(REF(HIGH==MAXS(HIGH,9)),10)>2;//10天内涨停天数大于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()
# 筛选符合条件的股票
df_list = []
for i in range(1, 10):
trade_date = (datetime.datetime.today() - datetime.timedelta(days=i)).strftime('%Y%m%d')
# 获取涨停股票
limit_data = pro.limit_list(trade_date=trade_date, limit_type='U', fields='ts_code')
if limit_data.empty:
continue
# 获取股票市场和技术数据
tech_data = pro.daily_basic(ts_code=limit_data['ts_code'].tolist(), trade_date=trade_date, fields='ts_code,turnover_rate')
if tech_data.empty:
continue
# 获取股票均线数据
ma_data = pro.daily(ts_code=tech_data['ts_code'].tolist(), start_date=datetime.date.today()-datetime.timedelta(days=120), end_date=datetime.date.today()+datetime.timedelta(days=1),
fields='ts_code,trade_date,close')
# 筛选符合条件的股票
for index, row in tech_data.iterrows():
if row['turnover_rate'] <= 0.02 or row['turnover_rate'] > 0.09:
continue
ma = ma_data[ma_data['ts_code'] == row['ts_code']]
if ma.empty or ma.iloc[-1]['close'] > ma.iloc[-1]['close'].rolling(window=20).mean() or ma.iloc[-1]['close'] < ma.iloc[-1]['close'].rolling(window=120).mean():
continue
info = {}
info['code'] = row['ts_code']
# 获取企业名称
info['name'] = pro.stock_basic(ts_code=row['ts_code'], fields='name').iloc[0]['name']
# 获取近10日涨停天数
cnt_data = pro.limit_list(ts_code=row['ts_code'], start_date=(datetime.datetime.today() - datetime.timedelta(days=10)).strftime('%Y%m%d'), end_date=datetime.datetime.today().strftime('%Y%m%d'),
limit_type='U', fields='ts_code')
if cnt_data.empty or len(cnt_data) <= 2:
continue
# 添加股票
df_list.append(info)
# 根据个股热度排序
selected_stocks = pd.DataFrame(df_list)
selected_stocks = selected_stocks.head(length)
return selected_stocks
致辞
本次问答为选股逻辑:振幅大于1、换手率大于2%小于9%、10天内涨停天数大于2的股票的问答。该选股策略主要考虑了股票的波动性、市场交易情况以及近期市场情绪,找出一些具有较高热度的投资标的。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
