问财量化选股策略逻辑
选股逻辑:MACD零轴以上,高点为两日最高,15分钟周期MACD绿柱变短。
选股逻辑分析
该选股逻辑基于MACD和高点指标进行选股,并考虑了股票的短期趋势,即15分钟周期MACD绿柱的变化。同时,限制股票所处的板块,即不考虑科创板股票。该选股逻辑通过技术面和市场趋势综合选出符合要求的股票,适合追求短期收益的投资者。
有何风险?
该选股策略可能存在以下风险:
-
仅考虑MACD和高点指标,可能无法全面反映股票的长期表现,选股结果可能不准确。
-
依赖15分钟周期的MACD绿柱变化,可能对短期市场波动较为敏感,选股结果可能存在一定的波动性。
-
只选择非科创板股票,可能无法充分利用科创板带来的投资机会。
如何优化?
为减少风险,可以采用以下方式进行优化:
-
加入其它技术指标,如均线等指标,综合分析股票在市场中的表现。
-
选择不同周期的MACD指标,并考虑多周期的综合情况,降低单一技术指标对选股结果的影响。
-
在进行选股时,可以单独考虑科创板股票的情况,并根据需要决定是否将其纳入投资范围。
-
加入风控管理,避免选股结果的波动范围过大。
最终的选股逻辑
优化后的选股逻辑如下:
选股逻辑:满足MACD零轴以上、高点为两日最高、15分钟周期MACD绿柱变短、非科创板股票,并加入其它技术指标和风控管理的辅助。
同花顺指标公式代码参考
-
MACD零轴以上:
CROSS(JC, 0) AND DIFF > DEA -
高点为两日最高:
H = HHV(HIGH,2)
CROSS(H, REF(H, 1)) -
15分钟周期MACD绿柱变短:
DIF, DEA, MACD = MACD(L, H, C, fastperiod=12, slowperiod=26, signalperiod=9)
REF(MACD, 1) - MACD > 0 -
非科创板股票:
NOT(industry_code.startswith('787'))
Python代码参考
import pandas as pd
from jqdata import *
import talib as ta
def select_stock(context):
q = query(
valuation.code,
valuation.market_cap,
valuation.circulating_market_cap,
stock_account.industry_code_name_1,
fundamental.eps
).filter(
valuation.market_cap >= 500000000,
valuation.circulating_market_cap >= 100000000,
stock_account.exchanges != '北京A股',
~stock_account.industry_code.startswith('787')
)
df = get_fundamentals(q).sort_values(by=['market_cap', 'circulating_market_cap'])
# MACD零轴以上
macd_list = []
for stock in df['code']:
if df.loc[df['code'] == stock, 'macd'].iloc[-1] > 0:
macd_list.append(stock)
# 高点为两日最高
top_point = []
for stock in macd_list:
x = attribute_history(stock, 2, '1d', ('high', 'close'))
if x.high.iloc[-1] == max(x.high):
top_point.append(stock)
# 15分钟周期MACD绿柱变短
buy_list = []
for stock in top_point:
df = get_bars(stock, 60*15, fields=['time', 'open', 'close', 'high', 'low'], count=10, include_now=True, end_dt=None, fq_ref_date=None)
dif, dea, macd = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
if macd[-1] - macd[-2] > 0:
buy_list.append(stock)
result = buy_list[:10]
log.info("Chosen stocks:", result)
return result
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


