问财量化选股策略逻辑
该选股策略包括三个条件:
- 振幅大于1
- 今日最低价小于昨日最低价
- 20日均线大于120日均线
选股逻辑分析
该选股策略考虑到了技术面和趋势面的因素,振幅大于1和今日最低价小于昨日最低价表明股票可能有一定的短期反弹或中期上涨的机会;20日均线大于120日均线则表明股票走势处于长期向上趋势中,并且较为稳定。
有何风险?
该选股策略过于依赖技术面和趋势面的因素,忽略了公司的基本面和行业因素的重要性,如公司营收、净利润、毛利率、净利率、ROA、PE、PEG、市净率等指标,以及行业发展趋势、政策环境、经济形势等方面的分析,容易失去选股的全面性和可靠性。
如何优化?
该选股策略应加入基本面和行业因素的考虑,如加入毛利率、净利率、ROA、PE、PEG、市净率等指标。同时,应该从行业发展趋势、政策环境、经济形势等多方面进行分析,以获取更全面的信息,从而提高选股的准确度和可靠性。
最终的选股逻辑
基于以上分析,完善后的选股逻辑为:
- 振幅大于1,市场对波动剧烈的股票更感兴趣;
- 今日最低价小于昨日最低价,表明股票下跌趋势已经明显;
- 20日均线大于120日均线,表明股票处于长期向上趋势中;
- 基本面和行业因素指标应根据个人需求进行选择和比较。
同花顺指标公式代码参考
- 振幅大于1:amplitude > 1
- 今日最低价小于昨日最低价:low < ref(low, 1)
- 20日均线大于120日均线:ma(close, 20) > ma(close, 120)
python代码参考
import pandas as pd
import tushare as ts
df = ts.get_stock_basics()
codes = df.index.tolist()
result = pd.DataFrame()
for code in codes:
bars = ts.get_hist_data(code)
if bars is not None and len(bars) > 150:
is_not_limit_up = not ts.is_n_day_limit_up(code, 2, 1)
is_cross_ma = bars['ma20'][-1] > bars['ma120'][-1] and bars['ma20'][-2] <= bars['ma120'][-2]
if is_not_limit_up and is_cross_ma:
# 其他基本面指标
result = result.append({'code': code, 'name': df.loc[code]['name'], 'price': bars['close'][-1], 'ma20': bars['ma20'][-1], 'ma120': bars['ma120'][-1]}, ignore_index=True)
result = result.sort_values(by=['ma20', 'ma120'], ascending=[False, False])
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
