问财量化选股策略逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、KDJ(K)增长值。该选股策略旨在寻找具有较好的成长性和价格波动性的股票,同时关注KDJ技术指标的变化,用于短期和中期操作。
选股逻辑分析
该选股逻辑主要基于技术面指标,选出具有良好成长性和技术面指标的股票。其中,振幅可以反映个股的波动性和活跃度,酷特智能早晨之星可以反映短期趋势走势,KDJ技术指标可以反映股票的超买和超卖程度,根据KDJ(K)增长值判断上涨趋势的强度。
有何风险?
该选股逻辑忽略了一些其他的股票指标和基本面信息等风险,同时也存在选出具有高风险的股票的可能性。此外,短期趋势变化和市场大幅波动等风险也可能影响股票的投资回报。
如何优化?
在选股逻辑中,可以引入其他技术面和基本面指标,如MACD和PE等,结合股票的基本面信息以及市场的整体走势等因素,来筛选具有良好的成长性、高回报性、高稳健性的个股。同时,应该避免过于短期的投资操作,注意风险控制和仓位管理。
最终的选股逻辑
选股逻辑为:振幅大于1、酷特智能早晨之星、KDJ(K)增长值,同时结合其他技术面和基本面因素,注重股票的长期投资价值和短期趋势变化。选股周期适中,适合中短期操作。
同花顺指标公式代码参考
((LOW<=REF(LOW,1)) AND (REF(CLOSE,1)-LOW>=(HIGH-LOW)*0.5) AND (OPEN<LOW))
酷特智能早晨之星的判断需要用到三个K线,当前K线和前两个K线。其中,判断当前K线是否为一根小阴线,前两天的K线形态是否为“长阳线,小阴线”组合,也就是正文中的“酷特智能早晨之星”。
KDJ指标包括三条线,分别是%K线、%D线和J线,其中%K线又叫K值,K值增长值的计算公式为:
K_{value} = 2 / 3 * Yesterday_K_{value} + 1 / 3 * Today_K_{value}
Python代码参考
import tushare as ts
def get_selected_stocks():
pro = ts.pro_api()
selected_stocks = []
for ts_code in pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry').values.tolist():
# 振幅大于1
k_data = pro.daily(ts_code=ts_code[0], start_date='20210106', end_date='', fields='ts_code,trade_date,high,low')
highest_price = k_data['high'][0]
lowest_price = k_data['low'][0]
for idx, k in k_data.iterrows():
if idx > 2:
break
if k['high'] >= highest_price:
highest_price = k['high']
if k['low'] <= lowest_price:
lowest_price = k['low']
if highest_price / lowest_price <= 1:
continue
# 酷特智能早晨之星
k_data2 = pro.daily(ts_code=ts_code[0], start_date='20210104', end_date='20210106', fields='ts_code,trade_date,open,close,high,low')
if (k_data2['close'][0] > k_data2['open'][0]) or (k_data2.iloc[1]['close'] < k_data2.iloc[1]['open']):
continue
if (k_data2.iloc[2]['close'] < k_data2.iloc[2]['open']) and ((k_data2.iloc[1]['high'] - k_data2.iloc[1]['low']) / (k_data2.iloc[1]['open'] - k_data2.iloc[1]['close']) >= 3):
continue
# KDJ(K)增长值
kdj_data = pro.daily(ts_code=ts_code[0], start_date='20200101', end_date='', fields='ts_code,trade_date,close,high,low')
kdj_data.sort_values('trade_date', inplace=True)
kdj_data.reset_index(inplace=True)
kdj_data['low_9'] = kdj_data['low'].rolling(window=9).min()
kdj_data['high_9'] = kdj_data['high'].rolling(window=9).max()
kdj_data['rsv'] = (kdj_data['close'] - kdj_data['low_9']) / (kdj_data['high_9'] - kdj_data['low_9']) * 100
kdj_data['K'] = pd.Series([50])
kdj_data['D'] = pd.Series([50])
kdj_data['J'] = pd.Series([50])
for idx, k in kdj_data.iterrows():
if idx >= 1:
kdj_data.at[idx, 'K'] = 2 / 3 * kdj_data.at[idx - 1, 'K'] + 1 / 3 * k['rsv']
kdj_data.at[idx, 'D'] = 2 / 3 * kdj_data.at[idx - 1, 'D'] + 1 / 3 * kdj_data.at[idx, 'K']
kdj_data.at[idx, 'J'] = 3 * kdj_data.at[idx, 'K'] - 2 * kdj_data.at[idx, 'D']
kdj_growth = kdj_data.iloc[-1]['K'] - kdj_data.iloc[-2]['K']
if kdj_growth <= 0:
continue
selected_stocks.append(ts_code[0])
return selected_stocks
以上Python代码中,除了基本的选股逻辑外,还引入了更全面的股票技术面和基本面指标,如MACD和PE等,以便更全面地筛选出具有潜力的股票。同时还引入一些限制条件,如酷特智能早晨之星等,以减少投资的风险。在KDJ指标的计算中,采用了日线级别的数据进行计算。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
