问财量化选股策略逻辑
本选股策略选取满足振幅大于1、2019年分红比例大于25%、日线MACD大于0的股票作为投资标的。
选股逻辑分析
本选股策略主要基于股票波动性、企业盈利能力和技术指标分析。振幅大于1可以反映股票波动性较高,存在投资机会;2019年分红比例大于25%反映企业盈利稳定性相对较高;日线MACD大于0反映股票目前处于上涨趋势。
有何风险?
本选股策略可能存在市场风险、行业风险和股票特有的风险,如公司经营不善、财务数据造假、政策风险等。
如何优化?
本选股策略可以加入更多的技术指标,如RSI、DMI等,以便更好地确定股票趋势和价格波动性。同时,可以加入基本面相关的指标,如利润增长率、营收增长率等信息,以更全面地了解企业的盈利状况。另外,可以增加风险控制策略,如止盈保护、分散化投资等,以降低投资风险。
最终的选股逻辑
本选股策略选取满足以下条件的股票:
- 振幅大于1;
- 2019年分红比例大于25%;
- 日线MACD大于0。
同花顺指标公式代码参考
- 振幅公式:
AVG(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(LOW,1))),ABS(REF(CLOSE,1)-REF(OPEN,1))),N)
- 日线MACD公式:
EMA(CLOSE, 12) - EMA(CLOSE, 26)
python代码参考
import tushare as ts
# 获取所有 A 股列表
def get_all_stock():
all_stock = ts.get_stock_basics()
return all_stock
# 判断是否满足选股逻辑
def select_logic(df):
macd = df['close'].ewm(span=12).mean() - df['close'].ewm(span=26).mean()
if df.iloc[-1]['high'] - df.iloc[-1]['low'] <= df.iloc[-2]['close']*0.01:
return False
if df.iloc[-1]['divi'] <= 0:
return False
if df.iloc[-1]['profits'] <= 0:
return False
if df.iloc[-1]['shares'] <= 0:
return False
if df.iloc[-1]['esp'] <= 0:
return False
if macd.iloc[-1] <= 0:
return False
return True
# 选取满足条件的股票
def select_stock(market='sh'):
selected_stocks = []
all_stocks = get_all_stock()
for stock in all_stocks.index:
if all_stocks.loc[stock, 'name'][0] == '*':
continue
if all_stocks.loc[stock, 'outstanding'] * all_stocks.loc[stock, 'price'] > 1000:
continue
if all_stocks.loc[stock, 'pb'] > 3:
continue
if all_stocks.loc[stock, 'pe'] > 50:
continue
df = ts.get_hist_data(stock)
if len(df) < 250:
continue
if not select_logic(df):
continue
selected_stocks.append(stock)
return selected_stocks
print(select_stock(market='sh'))
以上代码仅供参考,实现方法会因投资人情况和市场环境而异。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
