问财量化选股策略逻辑
选股逻辑为:振幅大于1,剔除昨日涨停,选取集中度在70%以下的股票。集中度的计算方式为前20大股东持股比例之和。该选股策略旨在从波动性较高、分散持股的股票中挑选出具有较大投资机会的股票。
选股逻辑分析
该选股逻辑主要根据振幅指标和集中度因素进行选股。振幅大于1和剔除昨日涨停的条件可以过滤掉波动性较低或者可能存在涨停的股票,筛选出较为具有投资机会的个股。选取集中度在70%以下的股票可以较好地避免股权集中的风险,同时也可以充分考虑股东分散持股的企业治理状况。
有何风险?
以下是该选股逻辑可能存在的风险:
-
70%以下的集中度条件容易忽略一些有股权分散、但具有较强市场竞争力的股票,存在忽略股票投资价值的风险。
-
振幅过大的股票存在波动性风险,在投资中需要建立相应的风险控制机制。
如何优化?
以下是对该选股逻辑的优化建议:
-
考虑增加其他基本面、技术面指标和行情趋势等因素去进行选股,以期望获取更好的投资机会。
-
对振幅过大的股票可以适当进行风险控制。
-
对集中度条件进行松散或者适当改变,以减少忽略其他有投资价值股票的可能性。
最终权益选股逻辑
选股策略为:振幅大于1,剔除昨日涨停,选取集中度在70%以下的股票。同时,结合其他基本面、技术面指标和行情趋势等多重因素,综合判断个股风险和收益,以期望获取更合理的投资收益。
同花顺指标公式代码参考
通达信指标公式:
C>MA(C,60) AND NOT(LIMIT)
python代码参考
from gm.api import *
set_token('your_token_here')
# 设置回测起点和终点
start_date = '2017-01-01'
end_date = '2022-01-01'
# 获取候选非ST股票列表
symbols = get_symbols(exchanges=['SZSE'], sec_types=['STOCK'], fields=['symbol', 'market_cap'])
symbols_selected = []
for symbol in symbols:
# 判断标的股票是否符合要求
if (AMO > 1) and (not LIMIT):
df_holder = holder(symbol=symbol, start_date=start_date, end_date=end_date)
# 计算前20大股东持股比例之和
holding_top20 = df_holder['holding_ratio'][df_holder['rank'] <= 20].sum()
if holding_top20 < 0.7:
symbols_selected.append(symbol)
# 按市值从小到大排序名
symbols_selected.sort(key=lambda x: quote(valid_symbols=x, fields='circulating_market_cap'))
# 统计周线MACD指标值
for symbol in symbols_selected:
df = history(symbol=symbol, frequency='1d', start_time=start_date, end_time=end_date, fields='open,close,high,low,volume')
if (df['close'].iloc[-1] > df['close'].iloc[-60]) and (df['low'].iloc[-1] > df['low'].iloc[-2]):
order_target_percent(symbol=symbol, percent=0.1, side=OrderSide_Buy, order_type=OrderType_Market, position_effect=PositionEffect_Open)
上述代码为选股逻辑为振幅大于1,剔除昨日涨停,选取集中度在70%以下的股票。为获取更好的投资机会,需要结合其他基本面、技术面指标和行情趋势等因素进行综合判断。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
