问财量化选股策略逻辑
选股逻辑:选取RSI小于65、今日均线向上发散、100亿市值以内的无亏损企业。
选股逻辑分析
该选股逻辑综合考虑股票的价格短期波动情况、均线走势以及公司的市值和财务情况,筛选出低市值、财务情况良好,且价格有上涨空间的股票。
有何风险?
该选股逻辑存在选到短期投机性股票的可能性,调整策略以不同的行业选择市值范围需要参考市场实际情况。
如何优化?
优化时可以考虑增加其他指标,如市盈率、市净率等,以综合评价股票投资价值,筛选出具有较高性价比的股票。此外,可以扩大筛选范围,不只是100亿市值以内,而是在市场范围内寻找具有较高投资价值且价格有上涨潜力的股票。
最终的选股逻辑
选取RSI小于65、今日均线向上发散、100亿市值以内的无亏损企业,并平均分配资金。
同花顺指标公式代码参考
- RSI: RSI(14)
- MA: MA(N)
Python代码参考
import pandas as pd
import tushare as ts
import talib
def sort_by_turnover(stock_df):
today_all_data = ts.get_today_all()
today_all_data['流通市值'] = today_all_data['nmc'] / 100000000
stock_df['流通市值'] = today_all_data['流通市值'][stock_df['股票代码'].apply(lambda x: x[2:])]
stock_df['净利润'] = today_all_data['esp'][stock_df['股票代码'].apply(lambda x: x[2:])]
stock_df = stock_df[stock_df['流通股本'] <= 5500000000]
stock_df = stock_df[stock_df['流通市值'] <= 100]
stock_df = stock_df[stock_df['净利润'] >= 0]
stock_df.sort_values(by='流通市值', ascending=False, inplace=True)
return stock_df
def get_stock_list(rsi_threshold=65, ma_today_length=1, ma_short_length=10, ma_long_length=60, top_n=5):
stock_list = pd.DataFrame(columns=['股票代码', '名称', '流通股本', '流通市值', '净利润'])
for _, row in ts.get_today_all().iterrows():
symbol = row['code']
if symbol.startswith('60'):
if row['code'][0] == '6':
symbol = 'sh' + symbol
else:
symbol = 'sz' + symbol
try:
kline_today = ts.get_k_data(symbol=symbol, start=datetime.date.today()-datetime.timedelta(days=1), end=datetime.date.today())
if len(kline_today) == 0:
continue
close = kline_today['close']
if close.iloc[-1] <= talib.MA(close, timeperiod=ma_today_length).iloc[-1]:
continue
if abs(kline_today.iloc[0]['open'] - talib.MA(close, timeperiod=ma_short_length).iloc[-1]) > 0.02 * row['pre_close']:
continue
if RSI(close, timeperiod=14)[-1] > rsi_threshold:
continue
if not symbol.startswith('60'):
continue
stock_list = stock_list.append({'股票代码': symbol, '名称': row['name'], '流通股本': row['totals'] * 10000}, ignore_index=True)
except:
continue
stock_list = sort_by_turnover(stock_list)[:100]
return stock_list[:top_n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


