问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10天内涨停天数大于2
- 竞价涨幅>-2<5
选股逻辑分析
- 第一条均线是5日均线,表示最近5天的平均价格。
- 第二条均线是10日均线,表示最近10天的平均价格。
- 第三条均线是20日均线,表示最近20天的平均价格。
- 第四条均线是30日均线,表示最近30天的平均价格。
- 第五条均线是60日均线,表示最近60天的平均价格。
当5日、10日、20日、30日和60日均线重合时,表示股价在短期内处于相对稳定的水平,可能有上涨的趋势。
有何风险?
- 该策略的选出的股票可能并不是市场上最优秀的股票,因为仅仅考虑了短期的价格波动。
- 该策略的选出的股票可能在短期内表现不佳,因为股价可能在短期内出现回调。
如何优化?
- 可以考虑加入更多均线,例如90日均线、180日均线等,以更好地反映股票的长期趋势。
- 可以考虑加入其他指标,例如成交量、MACD等,以更好地判断股票的走势。
最终的选股逻辑
- 选取5日、10日、20日、30日和60日均线重合的股票
- 选取10天内涨停天数大于2的股票
- 选取竞价涨幅>-2<5的股票
python代码参考
import tushare as ts
# 设置token
ts.set_token('your_token')
# 初始化pro接口
pro = ts.pro_api()
# 获取所有股票的代码和名称
data = pro.realtime_quotes('600036.XSHG')
codes = data['code']
names = data['name']
# 选取5日、10日、20日、30日和60日均线重合的股票
def get_consecutive_moving_average(codes):
ma5 = pro.realtime_quotes(codes, fields=['close'], count=5)
ma10 = pro.realtime_quotes(codes, fields=['close'], count=10)
ma20 = pro.realtime_quotes(codes, fields=['close'], count=20)
ma30 = pro.realtime_quotes(codes, fields=['close'], count=30)
ma60 = pro.realtime_quotes(codes, fields=['close'], count=60)
ma5 = ma5['close'].values
ma10 = ma10['close'].values
ma20 = ma20['close'].values
ma30 = ma30['close'].values
ma60 = ma60['close'].values
return ma5, ma10, ma20, ma30, ma60
# 选取10天内涨停天数大于2的股票
def get_stocks_with_large_gain(codes):
data = pro.query('ts_code in (%s)' % (', '.join(codes)), fields=['ts_code', 'trade_date', 'is_stk_chg'], count=10)
df = pd.DataFrame(data, columns=['ts_code', 'trade_date', 'is_stk_chg'])
df['is_stk_chg'] = df['is_stk_chg'].astype(int)
df = df[df['is_stk_chg'] > 2]
codes = df['ts_code'].values
return codes
# 选取竞价涨幅>-2<5的股票
def get_stocks_with_pro_bidding_price(codes):
data = pro.query('ts_code in (%s)' % (', '.join(codes)), fields=['ts_code', 'trade_date', 'pre_close', 'pre_open', 'pre_bid', 'pre_ask'], count=10)
df = pd.DataFrame(data, columns=['ts_code', 'trade_date', 'pre_close', 'pre_open', 'pre_bid', 'pre_ask'])
df['pre_bid'] = df['pre_bid'].astype(float)
df['pre_ask'] = df['pre_ask'].astype(float)
df = df[df['pre_bid'] > df['pre_ask'] - 2]
df = df[df['pre_bid'] < df['pre_ask'] + 5]
codes = df['ts_code'].values
return codes
# 组合筛选条件
codes = get_consecutive_moving_average(codes)
codes = get_stocks_with_large_gain(codes)
codes
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


