问财量化选股策略逻辑
选股逻辑为:振幅大于1、剔除昨日涨停、今日上涨幅度大于1%的主板股票。该选股策略旨在从技术面出发,选出短期内具备较大上涨潜力的股票,同时避免高位进场的风险。
选股逻辑分析
振幅指标反映了市场的波动强度,选择振幅大于1的股票可以过滤掉一些低波动率的品种。剔除昨日涨停的股票可以避免买入高位,降低风险。选择今日上涨幅度大于1%的股票,可以挖掘出短期内上涨潜力较大的股票。此外,选择主板股票可以避免过于波动的小盘股带来的风险。
有何风险?
该选股策略可能存在以下风险:
-
预测上涨幅度可能存在失误,选出股票的短期涨幅不如预期,或者并不符合预测的趋势。
-
选股条件过于狭隘,会导致筛选出的范围较小,而且如果某一条条件无法满足,可能会漏掉一些具备投资价值的股票。
如何优化?
以下是对该选股逻辑的优化建议:
-
可以加入更多因素来筛选股票,比如估值、业绩评级等因素,从更多的角度去评价股票的价值。
-
需要对选股条件进行细化和平衡,根据不同的投资策略选择不同的指标,需要平衡不同的指标之间的关系。
-
需要根据实际情况定期评估选股效果,及时调整选股策略中的参数,以适应市场变化。
最终权益选股逻辑
选股策略为:振幅大于1、剔除昨日涨停、今日上涨幅度大于1%的主板股票。
同花顺指标公式代码参考
以下是该选股策略的通达信指标公式代码:
振幅指标:AMO=(HIGH-LOW)/REF(CLOSE,1);
剔除昨日涨停:NOT LIMIT;
今日上涨幅度大于1%:(CLOSE-REF(CLOSE,1))/REF(CLOSE,1) > 0.01;
主板股票:INLIST(SYMBOLS,'000001.SH',STOCK)
选股条件:AMO > 1 AND NOT LIMIT AND ((CLOSE-REF(CLOSE,1))/REF(CLOSE,1)) > 0.01 AND INLIST(SYMBOLS,'000001.SH',STOCK);
python代码参考
from gm.api import *
set_token('your_token_here')
# 设置回测起点和终点
start_date = '2017-01-01'
end_date = '2022-01-01'
# 获取所有股票
symbols_all = get_symbols(exchanges=['SHSE', 'SZSE'], sec_types=['STOCK'], fields=['symbol'])
# 设置选股条件
amplitude_cond = {'$gt': 1}
limit_up_cond = {'limit_status': {'$ne': 1}}
up_cond = {'$gt': [{'$divide': [{'$subtract': ['$close', '$prev_close']}, '$close']} , 0.01]}
board_cond = {'$in': ['$symbol', ['000001.SH']]}
target_fields = {'symbol': 1}
# 筛选出符合条件的股票
for symbol in symbols_all:
data = history(symbol=symbol,
start_time=start_date,
end_time=end_date,
fields=["symbol", "close", "prev_close", "limit_status"],
indicators={},
bar_count=1,
freq="D",
filter={
'$and': [
amplitude_cond,
limit_up_cond,
up_cond,
board_cond
]
},
sort=[])["data"]
if len(data) == 0:
symbols_all.remove(symbol)
symbols_selected = symbols_all
print(symbols_selected)
上述代码中,选股的逻辑为振幅大于1、剔除昨日涨停、今日上涨幅度大于1%的主板股票。使用循环筛选股票,通过获取历史数据并比较指标条件,来筛选出符合条件的股票。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
