问财量化选股策略逻辑
选股逻辑:rsi小于65,上市大于1年,30日平均线向上。
选股逻辑分析
该选股逻辑主要利用RSI指标和K线技术指标,选取RSI小于65这一条件,可以筛选出有买入价值的股票,同时,通过判断30日平均线的趋势,可以判断股票的整体走势。但该选股逻辑仅考虑了单一的技术指标,忽视了基本面等因素的影响。
有何风险?
该选股逻辑的风险主要在于股票的基本面等因素没有充分考虑,所选出的股票可能存在较大的风险和波动性。同时,该逻辑忽视了市场整体行情的影响,如果整个市场处于下跌状态,即使符合条件的股票也可能会维持下跌趋势。
如何优化?
在选股策略中应该增加基本面等因素的考虑,以提高选股策略的稳定性和准确性。同时,可以引入机器学习等方法进行模型优化,以提高选股策略的精度和效率。
最终的选股逻辑
选股逻辑:rsi小于65,上市大于1年,30日平均线向上。
同花顺指标公式代码参考
XG1: RSI(14) < 65
XG2: LISTDAYINDEX() > 1
XG3: MA(CLOSE, 30) > REF(MA(CLOSE, 30), 1)
C1: MAINBORADINFO(0) == 1
C2: CIRCSHARE >= 5000 AND CIRCSHARE <= 10000
...
SELECT IF(XG1 AND XG2 AND XG3 AND C1 AND C2, 1, 0)
Python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list():
# 获取股票基本信息
stock_info_df = ak.stock_info_a_spot()
stock_info_df = stock_info_df[['代码', '名称', '市值']]
stock_info_df = stock_info_df.astype({'代码':'str'})
stock_info_df['code'] = stock_info_df['代码'].str.slice(start=0, stop=6)
stock_info_df.columns = ['code', 'name', 'market_cap']
# 获取股票交易信息
stock_daily_df = ak.stock_zh_a_daily(symbol="sh600000", adjust="hfq")
stock_daily_df = stock_daily_df.astype({'代码':'str'})
stock_daily_df['code'] = stock_daily_df['代码'].str.slice(start=0, stop=6)
stock_daily_df = stock_daily_df[['code', '日期', '收盘价']]
stock_daily_df.columns = ['code', 'date', 'close']
# 计算RSI指标和30日平均线
rsi_df = pd.DataFrame()
ma_df = pd.DataFrame()
for code in stock_info_df['code']:
df = ak.stock_zh_a_daily(symbol=code, adjust="hfq").tail(31)
rsi = talib.RSI(df['收盘价'].values, timeperiod=14)[-1]
ma = talib.MA(df['收盘价'].values, timeperiod=30)[-1]
rsi_df = rsi_df.append({'code': code, 'rsi': rsi}, ignore_index=True)
ma_df = ma_df.append({'code': code, 'ma': ma}, ignore_index=True)
# 合并数据并筛选符合条件的股票
result_df = pd.merge(stock_info_df, rsi_df, on='code')
result_df = pd.merge(result_df, ma_df, on='code')
result_df = pd.merge(result_df, stock_daily_df, on='code')
result_df = result_df[(result_df['rsi'] < 65) & (result_df['ma'] > result_df['ma'].shift())
& (result_df['market_cap'] >= 5000000000) & (result_df['market_cap'] <= 10000000000)]
# 返回结果
return result_df[['code', 'name']]
Python依赖库
-
pandas
-
akshare
-
talib
## 如何进行量化策略实盘? 请把您优化好的选股语句放入文章最下面模板的选股语句中即可。 select_sentence = '市值小于100亿' #选股语句。 模板如何使用? 点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。 ## 如果有任何问题请添加 下方的二维码进群提问。 

