问财量化选股策略逻辑
选股逻辑为:振幅大于1、按个股热度从大到小排序、15分钟周期MACD绿柱变短。将选股逻辑作为第一个标题放入段落中。
选股逻辑分析
该选股策略的逻辑如下:
- 振幅大于1:表明该股票交易活跃度较高;
- 按个股热度从大到小排序:表示在符合条件下,按照市场的热度进行排序;
- 15分钟周期MACD绿柱变短:表示股票在短期内出现了一定程度上的回调迹象,可能存在买入机会。
综合以上三个点,在符合条件的股票中按市场热度从大到小排序,选出具有一定买入机会的股票,以寻求投资机会。
有何风险?
该选股策略可能存在以下风险:
- MACD指标不一定能够准确反映市场趋势;
- 短期回调并不代表股票长期上涨的趋势会发生改变;
- 完全依赖于技术指标和量化因素,可能忽略其他重要的市场因素;
如何优化?
为了提高选股的准确性和降低风险,我们可以在以下方面对该选股策略进行优化:
- 引入其他技术指标,如RSI、CCI等,进行多重指标判断;
- 对MACD指标的阈值进行动态调整,根据市场走势进行相应调整;
- 结合市场情绪、基本面等因素进行综合分析;
- 引入机器学习算法,进行选股结果的优化和预测。
最终的选股逻辑
综合以上分析和优化,我们最终的选股逻辑为:
在符合振幅大于1、按个股热度从大到小排序、15分钟周期MACD绿柱变短的要求下,按照市场热度从大到小排列,在多重指标和其他非量化因素的综合分析下,以尽可能降低风险并提高选股准确率。
同花顺指标公式代码参考
该策略可引入以下指标进行辅助分析:
1.振幅指标:
振幅:
((HIGH-LOW)/REF(CLOSE,1))>0.01
2.按个股热度排序的指标。
同花顺热度指标:
SORT_BY_DESC(stock_heat/)
3.15分钟MACD绿柱:
MACD(12,26,9)>0 AND CROSS(MACD(12,26,9), MACD(12,26,9)*EMA(2/3)+MACD(12,26,9)*EMA(1/3))>0
Python代码参考
以下是使用Python进行选股的代码参考:
import pandas as pd
import tushare as ts
import talib as ta
def stock_selection():
# 获取股票数据
all_data = ts.get_k_data("002230", ktype="15")
all_data = pd.DataFrame(all_data, columns=["date", "open", "close", "high", "low", "volume", "code"])
# 按要求选股
condition1 = ((all_data["high"] - all_data["low"]) / all_data["close"].shift(1) > 0.01) # 振幅大于1
hot_code = ts.top_list().loc[1:10, 'code']
condition2 = all_data['code'].apply(lambda x: x in hot_code.to_list()) # 按个股热度排序
macd, signal, hist = ta.MACD(all_data['close'], fastperiod=12, slowperiod=26, signalperiod=9)
condition3 = (macd[-2] - signal[-2]) < (macd[-3] - signal[-3]) # 15分钟MACD绿柱变短
# 按照市场热度排序
all_data['pct_change'] = abs(all_data['close'] - all_data['open']) / all_data['open']
all_data.sort_values('pct_change', ascending=False, inplace=True)
# 返回符合条件的股票代码
return all_data[condition1 & condition2 & condition3]["code"].values.tolist()
# 选出符合条件的股票
selected_stocks = stock_selection()
print("符合条件的股票:", selected_stocks)
其中,在代码中需要根据实际需求进行相应的设置。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
