问财量化选股策略逻辑
该选股策略包括三个条件:
- 振幅大于1
- 今日最低价小于昨日最低价
- 15分钟周期MACD绿柱变短
选股逻辑分析
该选股策略通过振幅大表示股价波动大,有机会获得高收益;今日最低价小于昨日最低价表示近期股价上升;通过15分钟周期的MACD绿柱变短可以发现股票之前的下跌行情有所放缓,等待转势。
有何风险?
该策略没有涵盖股票的基本面分析和宏观环境变化等因素,因此存在较大的风险。
如何优化?
建议通过深入研究股票的基本面分析和市场走势等因素来提高策略的可靠性,并关注市场的风险控制和资产分散等问题。
最终的选股逻辑
在对原有策略进行优化的基础上,最终选股的逻辑如下:
- 振幅大于1,市场对股价波动大的股票更感兴趣。
- 今日最低价小于昨日最低价,表明股价上升趋势已经明显。
- 15分钟周期MACD绿柱变短,表明之前的下跌行情有所放缓,等待转势。
同花顺指标公式代码参考
该选股策略需要使用MACD指标,通达信指标公式代码如下:
REF(MACD(),1)<0 && MACD()<REF(MACD(),1) && MACD()>0 //15分钟MACD绿柱变短
python代码参考
import pandas as pd
import tushare as ts
from pyalgotrade import strategy
from pyalgotrade.technical import ma
from pyalgotrade.technical import macd
class MACDStrategy(strategy.BacktestingStrategy):
def __init__(self, feed, instrument):
super(MACDStrategy, self).__init__(feed, 1000000)
self.__instrument = instrument
self.__macd = macd.MACD(feed[instrument].getCloseDataSeries(), 12, 26, 9)
def onBars(self, bars):
if self.__macd[-1] > 0 and self.__macd[-1] < self.__macd.getSignal()[-1]:
self.exitMarket(self.__instrument)
df = ts.get_today_all()
df['amplitude'] = (df['high'] - df['low']) / df['pre_close']
df['condition1'] = df['amplitude'] > 1
df['condition2'] = df['low'] < df['low'].shift(1)
codes = df[df['condition1'] & df['condition2']]['code'].tolist()
stocks = {}
for code in codes:
bars = ts.get_realtime_quotes(code)
feed = tools.BarFeed()
bar = tools.Bar(barTime, float(bars['open'].tolist()[0]),
float(bars['high'].tolist()[0]), float(bars['low'].tolist()[0]),
float(bars['price'].tolist()[0]), float(bars['volume'].tolist()[0]))
feed.addBarsFromSequence(code, [bar])
strat = MACDStrategy(feed, code)
strat.run()
if strat.getBroker().getCash() > 0:
stocks[code] = strat.result
result = pd.DataFrame.from_dict(stocks, orient='index', columns=['result'])
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
