问财量化选股策略逻辑
选股策略为:在元宇宙行业中选取收盘价大于BOLL上轨且大于BOLL中轨,并且KDJ刚形成金叉的股票。在每个交易日的10点之前进行选股,选取当日的交易股票。
选股逻辑分析
本选股策略综合考虑了BOLL和KDJ两个指标, BOLL指标能够较好地反映出股票的价格走势,而KDJ指标则能较好地反映股票的买卖压力。当收盘价同时大于BOLL上轨和BOLL中轨时,更能代表当前股票的价格趋势向上,而KDJ金叉又能代表买入信号的出现,有望在短期内获得较好的收益。
有何风险?
本选股策略存在以下风险:
- BOLL指标对于极端波动的股票易出现偏差,影响选股结果;
- 忽略了其他可能对股票走势产生影响的技术指标,对选股结果可能带来一定的影响;
- 选股结果可能受到市场炒作、舆情等因素的影响,导致选股结果产生较大的波动。
如何优化?
为提高本选股策略的准确性和鲁棒性,可以:
- 加入其他具有代表性的技术指标,例如MACD、RSI等,以多方面的印证选股结果;
- 结合公司基本面因素,例如行业发展趋势、政策变化等,以选取具有较好潜力的股票,提高选股准确性;
- 对选股结果进行风险评估,制定适当的风险控制策略,例如适当的分散投资、制定止损点等,可以降低选股结果的风险。
最终的选股逻辑
在元宇宙行业中,选取收盘价大于BOLL上轨且大于BOLL中轨,并且KDJ刚形成金叉的股票。在每个交易日的10点之前进行选股,选取当日的交易股票。
同花顺指标公式代码参考
# 选股条件:大于BOLL上轨,大于BOLL中轨,KDJ金叉
REF(CLOSE,BARS) >= BOLL(20,2) AND CLOSE >= BOLL(20,0) AND KDJ(9, 3, 3)上穿KDJ(9, 3, 3)的DEA
# 选股结果:选取当日交易的股票
选股条件:REF(CLOSE,BARS) >= BOLL(20,2) AND CLOSE >= BOLL(20,0) AND KDJ(9, 3, 3)上穿KDJ(9, 3, 3)的DEA AND TRADE_STATUS == 1 AND CURRENT_TIME <= 1000
排序规则:默认排序
选股数量:EMPTY()
python代码参考
import talib
import pandas as pd
from typing import List
def select_stocks(data: pd.DataFrame, industry: str) -> List[str]:
df = data[data['INDUSTRY'] == industry]
# BOLL指标
df['upper'], df['middle'], df['lower'] = talib.BBANDS(df['CLOSE'].values, timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
# KDJ
df['KDJ_K'], df['KDJ_D'], df['KDJ_J'] = talib.STOCH(df['HIGH'].values, df['LOW'].values, df['CLOSE'].values, fastk_period=9, slowk_period=3, slowd_period=3)
df['KDJ_金叉'] = (df['KDJ_K'] > df['KDJ_D']) & (df['KDJ_K'].shift() < df['KDJ_D'].shift())
# 风险控制
select_df = df[(df['CLOSE'] > df['upper']) & (df['CLOSE'] > df['middle']) & (df['KDJ_金叉'])
& (df['TRADE_STATUS'] == 1) & (df['TIME'] <= '10:00:00')].index.tolist()
return select_df
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


