问财量化选股策略逻辑
该策略基于以下三个条件进行股票筛选:
-
至少5根均线重合的股票:通过计算股票的5日、10日、20日、60日和120日均线的平均值,如果这5条均线的值相等,则认为该股票至少有5根均线重合。
-
流通盘小于等于55亿股:为了确保股票的流动性,该策略仅考虑流通盘小于等于55亿股的股票。
-
近一个月内有过涨停:为了筛选出有较强市场表现的股票,该策略仅考虑近一个月内有过涨停的股票。
选股逻辑分析
该策略通过计算股票的均线平均值来筛选出至少有5根均线重合的股票,这可以视为一种趋势跟踪策略,因为均线的平均值可以反映股票价格的趋势。同时,该策略还考虑了股票的流通盘和市场表现,可以避免一些流动性较差或市场表现不佳的股票。
有何风险?
该策略的风险主要来源于市场风险和流动性风险。首先,市场风险是指股票价格的波动性,由于股票价格受到市场情绪、政策等因素的影响,因此可能会出现较大的波动,从而导致策略的收益受到影响。其次,流动性风险是指股票的流动性不足,如果股票的流动性较差,可能会导致交易困难,从而影响策略的执行效果。
如何优化?
为了优化该策略,可以考虑以下几点:
-
考虑更多周期的均线:除了5日、10日、20日、60日和120日均线外,还可以考虑其他周期的均线,例如30日、90日等,以更好地反映股票的趋势。
-
考虑更多技术指标:除了均线外,还可以考虑其他技术指标,例如MACD、RSI等,以更好地判断股票的趋势和市场表现。
-
考虑更多市场因素:除了考虑股票的趋势和市场表现外,还可以考虑其他市场因素,例如政策、经济等因素,以更好地预测股票的价格走势。
最终的选股逻辑
以下是最终的选股逻辑:
-
计算股票的5日、10日、20日、60日和120日均线的平均值,如果这5条均线的值相等,则认为该股票至少有5根均线重合。
-
计算股票的30日、90日均线的平均值,如果这2条均线的值相等,则认为该股票至少有2根均线重合。
-
计算股票的MACD指标的DIF和DEA线的平均值,如果DIF和DEA线的值相等,则认为该股票的趋势较强。
-
计算股票的RSI指标的值,如果RSI的值在30以下,则认为该股票的市场表现较弱。
-
考虑股票的流通盘和市场表现,选择流通盘小于等于55亿股、近一个月内有过涨停的股票。
-
根据以上条件,筛选出符合条件的股票。
python代码参考
以下是基于上述策略的python代码:
import talib
def get_line_average(data, n):
"""计算n条均线的平均值"""
if n <= 0:
return None
if n == 1:
return data[-1]
else:
ma = talib.MA(data, n)
return ma[-1]
def get_macd_average(data):
"""计算MACD指标的DIF和DEA线的平均值"""
if len(data) < 20:
return None
else:
ema12 = talib.EMA(data, 12)
ema26 = talib.EMA(data, 26)
macd = ema12 - ema26
return macd[-1]
def get_rsi_average(data):
"""计算RSI指标的值"""
if len(data) < 14:
return None
else:
rsi = talib.RSI(data, 14)
return rsi[-1]
def get_stock符合条件的股票代码:
# 获取所有股票代码
stock_codes = get_stock_codes()
# 筛选出符合条件的股票
filtered_codes = []
for code in stock_codes:
if code.endswith('.SH') or code.endswith('.SZ'):
# 获取股票数据
data = get_stock_data(code)
# 计算均线平均值、MACD平均值和RSI值
line_average = get_line_average(data, 5)
macd_average = get_macd_average(data)
rsi_average = get_rsi_average(data)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
