问财量化选股策略逻辑
选股逻辑为:在换手率3%-12%、K小于20、振幅大于1的前提下,选择股票作为买入信号。
选股逻辑分析
该选股策略要求股票在相对低位,同时具有较高的交易活跃度和波动性,从而得到更多的涨跌幅机会,从而提高买入信号的成功率。
有何风险?
该选股策略主要是从股票技术指标出发,可能存在过度追求技术指标而忽略公司基本面和其他重要因素的可能性,同时股票波动本身也存在风险。
如何优化?
除了技术指标外,还应该根据市场整体表现趋势、板块走势和相关行业的研究,综合判断股票表现和趋势,特别是对于一些已经发生变化的股票,需要根据新情况进行重新的筛选和判断。
最终的选股逻辑
在换手率3%-12%、K小于20、振幅大于1的前提下,选择股票作为买入信号。
同花顺指标公式代码参考
选股条件:SETPRICETYPE(1); VOLUME>0; (K<20) AND (AMO>1)
选股结果:fml('SETPRICETYPE(1); VOLUME>0; (K<20) AND (AMO>1)','desc', 'market_cap', 100)
Python代码参考
import tushare as ts
import talib
# 筛选好股票函数
def select_good_stocks():
# 换手率3%-12%
basic_info = ts.get_stock_basics()
good_stocks = basic_info[(basic_info['turnoverratio'] >= 3) & (basic_info['turnoverratio'] <= 12)]
# K小于20、振幅大于1
for stock in good_stocks.index.tolist():
df1 = ts.get_k_data(stock)
if len(df1) <= 0:
continue
df1['K'], df1['D'], df1['J'] = talib.STOCH(df1['high'].values, df1['low'].values, df1['close'].values,
fastk_period=9, slowk_period=3, slowd_period=3)
df1['AMO'] = (df1['high'] - df1['low']) / df1['close'].shift(1) * 100
if not (df1.iloc[-1]['K'] < 20 and df1.iloc[-1]['AMO'] > 1):
good_stocks.drop([stock], inplace=True)
return good_stocks
good_stocks = select_good_stocks()
print(good_stocks)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
