问财量化选股策略逻辑
选股逻辑为 MACD 技术指标零轴以上、价格小于 12 元、前 25 天内有涨停板。选股时间为每个交易日开盘前 10 点进行。
选股逻辑分析
该选股策略除了考虑技术指标和股票价格外,还关注了股票的市场表现。如果股票最近有涨停板,说明市场对该股票有一定的关注度和认可度,有望带来一定程度上的上涨趋势。
有何风险?
- 数据风险,选股依赖于股票数据的准确性,如果数据不稳定或不准确,可能会影响选股结果。
- 策略风险,该选股策略仅考虑了前 25 天的涨停板情况,如果该股份在这段时间外有重要的市场变化,可能会影响选股结果。
- 市场风险,股票市场波动较为剧烈,选股结果容易受到市场波动的影响。
如何优化?
- 综合考虑股票基本面等更多指标来筛选出更具潜力的股票。
- 根据实际情况,定期对选股逻辑进行调整或优化,以适应市场变化。
- 定期回溯测试选股结果,并进行风险评估,避免过度追求高收益而忽略风险控制。
最终的选股逻辑
选股逻辑为 MACD 技术指标零轴以上、价格小于 12 元、前 25 天内有且仅有一次涨停板。选股时间为每个交易日开盘前 10 点进行。
同花顺指标公式代码参考
以下为 MACD 指标的同花顺指标公式:
MACD(C, 12, 26, 9);
CROSS(MACD, 0) = 1;
其中 C 为当日收盘价,OPEN 为开盘价,MA 为均线指标,J、K、D 分别为 KDJ 指标的三条线。
Python代码参考
以下是 Python 的选股筛选代码,仅供参考:
import talib
import akshare as ak
import pandas as pd
data_stock_price = ak.stock_zh_a_daily(symbol="sz000001", adjust="qfq") # 获取股票数据,可根据实际需求调整
close_price = data_stock_price['close'].to_numpy()
can_trading = data_stock_price['can_trading'].to_numpy()
ma = talib.SMA(np.array(close_price), timeperiod=10)
short, long, m = 12, 26, 9
dif, dea, macd = talib.MACD(np.array(close_price), fastperiod=short, slowperiod=long, signalperiod=m)
max_high_prices = data_stock_price['high'].rolling(25).max().to_numpy()
max_high_prices[0:25] = -1
target_stocks = []
for i in range(2, len(data_stock_price)):
if data_stock_price["price"].iloc[i] < 12 and macd[i] > 0 and max_high_prices[i] == data_stock_price["price"].iloc[i] and \
max_high_prices[i-1] != data_stock_price["price"].iloc[i] and can_trading[i] == 1:
target_stocks.append([data_stock_price.index[i], data_stock_price["name"].iloc[i]])
target_stocks = sorted(target_stocks, key=lambda x: hot_rank_list.index(x[0]), reverse=True)
同样需要注意,由于数据在运行时需要更新,因此具体代码需要根据实际情况进行调整。同时需要根据实际情况查询对应的 AKShare 数据接口并获取前 25 天内的涨停板数据。还需要根据需求调整选股结果的输出方式。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


