问财量化选股策略逻辑
本选股策略选取振幅大于1,周线MA5金叉MA10,前天macd<0的股票为投资目标,通过技术指标和价格波动幅度等因素寻找具有较高潜力的股票。
选股逻辑分析
本选股策略结合了均线趋势和MACD技术指标,并对价格的波动幅度进行筛选,寻找具有上涨趋势和上涨潜力的股票。
有何风险?
本选股策略主要依赖技术指标进行选股,过于依赖短期价格变化,存在较强的市场风险和投资风险,同时缺乏对基本面的考虑。
如何优化?
本选股策略可结合基本面指标加强风险控制和股票筛选,在技术指标和价格波动幅度等因素基础上,加入关注公司实际业绩等因素,提高选股结果的稳定性和收益率。
最终的选股逻辑
本选股策略选取振幅大于1,周线MA5金叉MA10,前天macd<0的股票为投资目标,结合基本面指标对选股结果进行优化,提高投资收益率和稳定性。
同花顺指标公式代码参考
- 均线公式:
- MA(N) = SUM(CLOSE, N) / N
- MACD公式:
- DIF = EMA(CLOSE, SHORT) - EMA(CLOSE, LONG)
- DEA = EMA(DIF, MID)
- MACD = 2 * (DIF - DEA)
- 筛选前天macd<0的方法:
- MACD = MACD()
- MACD_SIGNAL = MACDSignal()
- MACD_BAR = MACD() - MACDSignal()
- REF(MACD_BAR, 2) < 0
- 相关指标公式请参考同花顺财经的数据说明文档
Python代码参考
import tushare as ts
pro = ts.pro_api()
def select_stocks(n):
selected_stocks = []
for code in pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,name,industry,market,area,pe,pb,circ_mv')['ts_code']:
df = pro.daily(ts_code=code, start_date='', end_date='', fields='ts_code,trade_date,open,high,low,close,vol,amount')
if (df.iloc[-1]['high'] - df.iloc[-1]['low']) / df.iloc[-1]['close'] > 0.01:
df_weekly = pro.weekly(ts_code=code, start_date='', end_date='', fields='ts_code,trade_date,open,high,low,close,vol,circ_mv,total_mv')
ma_list = [df_weekly['close'].rolling(n).mean().iloc[-1] for n in range(5, 11)]
if df_weekly.iloc[-1]['close'] > ma_list[-1] and ma_list.count(ma_list[-1]) >= 5:
df_macd = pro.index_daily(ts_code='000001.SH', start_date='', end_date='', fields='trade_date,close')
df_macd['macd'], df_macd['signal'], df_macd['hist'] = talib.MACD(df_macd['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
if df_macd.iloc[-3]['hist'] < 0:
df_limit = pro.limit_list(ts_code=code, trade_date='', limit_type='U')
if df_limit.size == 0 or df_limit.iloc[-1]['trade_date'] != df.iloc[-1]['trade_date']:
selected_stocks.append(code)
return selected_stocks[:n]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
