问财量化选股策略逻辑
本选股策略选取符合以下条件的股票:振幅大于1,周线MA5金叉MA10,归属母公司股东的净利润(同比增长率)大于20%小于等于100%。通过综合考虑技术面和公司业绩,筛选出符合条件的股票,并进行后续的投资操作。
选股逻辑分析
本选股策略主要考虑了技术面和公司业绩。振幅大于1可以筛选出波动较大的股票,周线MA5金叉MA10表明股票已经出现了明显的上涨趋势,而归属母公司股东的净利润(同比增长率)大于20%小于等于100%则表明公司业绩较好。当这些条件同时满足时,可以判断该股票具有较好的投资价值,适合进行短期投资。
有何风险?
本选股策略可能会存在对公司基本面的过于依赖的情况,忽略了市场走势等因素,可能存在较大的盲区。另外,本选股策略可能会选出一些由于营业利润涨幅或者其他原因导致营业总收入大幅度下滑但归属母公司股东的净利润相比去年同期增长的股票,可能存在业绩造假情况。
如何优化?
本选股策略应该在增加对市场走势的考虑的同时,以营收、利润、毛利率等多个维度来综合评估公司的业绩表现。同时,鉴于归属母公司股东的净利润有可能受到财务工程等因素的影响,应该综合多个财务指标进行选股。
最终的选股逻辑
本选股策略选取符合以下条件的股票:
- 振幅大于1;
- 周线MA5金叉MA10;
- 归属母公司股东的净利润(同比增长率)大于20%小于等于100%。
认为此时股票具有较好的投资价值,适合进行短期投资。
同花顺指标公式代码参考
以下是本选股策略的通达信指标代码:
C1: V>1
C2: WEEK:MA(CLOSE,5)>REF(MA(CLOSE,10),1) AND MA(CLOSE,5)<REF(MA(CLOSE,10),1)
C3: NetProfitYOYRate[1]>=20 AND NetProfitYOYRate[1]<=100
C4: COUNTC(C1 AND C2 AND C3, 1)>0
BULL:SELECTC(C4 AND C, 0, 1)
其中,C1
表示振幅大于1,C2
表示周线MA5金叉MA10,C3
表示归属母公司股东的净利润(同比增长率)大于20%小于等于100%。COUNTC
函数用于计算符合条件的股票数量,SELECTC
用于选出符合条件的股票,进行投资操作。
python代码参考
import tushare as ts
import talib
# 判断当日是否符合筛选条件
def check_today(code):
df = ts.get_profit_data(code)
if df.empty:
return False
net_profit_yoy_rate = df.iloc[-1]['net_profit_ratio']
if net_profit_yoy_rate<20 or net_profit_yoy_rate>100:
return False
k_data = ts.get_hist_data(code)
if k_data is None:
return False
v = k_data.iloc[-1]['volume']
ma5 = talib.MA(k_data['close'], timeperiod=5)[-1]
ma10 = talib.MA(k_data['close'], timeperiod=10)[-1]
return v>1 and ma5>ma10
# 按市值排序
def sort_by_market_value(data):
return data.sort_values(by='totalAssets', ascending=False)
# 选取符合条件的股票
def select_stock():
results = []
all_stocks = ts.get_stock_basics()
for code in all_stocks.index:
if check_today(code):
results.append(code)
selected_data = all_stocks.loc[results]
return sort_by_market_value(selected_data).index.tolist()
print(select_stock())
以上代码仅供参考,具体实现应根据实际情况进行调整。其中,使用了 tushare
和 talib
库进行了股票数据获取和技术指标计算。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
