问财量化选股策略逻辑
选股逻辑为:振幅大于1、前天MACD<0、10天内涨停天数大于2的股票。该选股策略主要是利用技术面指标和市场情绪因素,选取具有一定投资价值的股票。
选股逻辑分析
该选股逻辑由三个条件组成:振幅大于1、前天MACD<0、10天内涨停天数大于2。主要是利用技术面指标和市场情绪因素,筛选具有一定投资价值的股票。相较于前一个选股逻辑,该选股策略更注重市场情绪因素,适用于短期操作。
有何风险?
该选股逻辑可能存在以下风险:
-
过于注重市场情绪因素,可能会忽略股票质量等基本面因素的影响,选股结果可能存在投资价值欠佳的股票。
-
选股条件较为主观和简单,可能会存在过度拟合的问题,选股结果不具有普遍适用性。
-
由于涨停股票市场表现较为复杂,选股结果可能存在不稳定性较大的股票。
如何优化?
优化选股策略的建议如下:
-
筛选出基本面较好、投资价值较高的个股,再加入市场情绪等因素,综合选出具有一定投资价值的股票。
-
采用机器学习等方法建立预测模型,预测涨停股票的涨跌情况,并根据预测结果选股。
-
将涨停股票涨停天数的条件转化为涨幅等指标,降低其复杂度,使其更加规范和稳定。
最终的选股逻辑
选股条件为:振幅大于1、前天MACD<0、10天内涨幅大于20%的股票。综合考虑技术面、基本面和市场情绪等多维度因素,筛选具有一定投资价值的股票。
同花顺指标公式代码参考
通达信公式:
SELECT * FROM
(
SELECT STOCKCODE,SNAME,AMPLITUDE,MACD(12,26,9) AS MACD
FROM STOCKBASIC S
LEFT JOIN (
SELECT STOCKCODE,SECURITY_TYPE
FROM INDEXQUOTESPIRIT
WHERE LocalDate BETWEEN %stime1 AND %stime2
AND TRADESTATUS='1'
) Q ON S.STOCKCODE=Q.STOCKCODE
WHERE AMPLITUDE>1
AND MACD(12,26,9)<REF(MACD(12,26,9),1)
AND S.LIST_TYPE IN (1,2,3)
AND Q.SECURITY_TYPE IN (1,2,3)
AND S.STOCKCODE NOT LIKE '688%'
AND S.STOCKCODE NOT LIKE '300%'
ORDER BY AMPLITUDE DESC
)
python代码参考
from gm.api import *
import talib as ta
import pandas as pd
set_token('your_token_here')
start_date = '2022-01-01'
end_date = '2022-01-08'
# 获取所有A股代码
df_all_codes = get_all_securities(['stock'], '2022-01-01')
symbols_all = df_all_codes.index.tolist()
# 根据选股条件选出符合条件的股票
symbols_selected = []
for symbol in symbols_all:
# 获取股票历史交易数据
df = history(symbol=symbol, frequency='d', start_time=start_date, end_time=end_date,
fields='open,high,low,close,volume')
# 筛选出符合选股条件的股票
if (len(df) < 10):
continue
amplitude = ta.ATR(df, timeperiod=14)
macd = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
if (amplitude.iloc[-1] > 1 and macd[0][-2] < 0 and (df['close'] / df['close'].shift(1) - 1).rolling(10).apply(lambda x: (x >= 0.2).sum())[-1] > 2):
symbols_selected.append(symbol)
# 根据选股结果进行交易
for symbol in symbols_selected[:10]:
order_target_percent(symbol=symbol.replace('XSHE', 'SZSE'), percent=0.1, side=OrderSide_Buy,
order_type=OrderType_Limit, position_effect=PositionEffect_Open,
price=get_last_n_bars(symbol=symbol, window='d', count=1, fields='close')['close'][0])
以上代码是基于选股逻辑为:振幅大于1、前天MACD<0、10天内涨幅大于20%。代码中的选股条件可以根据需求进行修改。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
