(iwencai量化策略)按个股热度从大到小排序名_、前天macd<0、振幅大于1

用户头像神盾局量子研究部
2023-08-31 发布

问财量化选股策略逻辑

选股逻辑为:振幅大于1、前天MACD<0、按个股热度从大到小排序名。该选股策略主要考虑了技术面指标,同时考虑了热度因素,选取出热门股票中具备投资价值的股票。

选股逻辑分析

该选股逻辑由三个条件组成:振幅大于1、前天MACD<0、按个股热度从大到小排序名。主要考虑了技术面指标和热度因素,选取具有投资价值的热门股票,并适用于中长期投资。

有何风险?

该选股逻辑可能存在以下风险:

  1. 按个股热度从大到小排序,可能存在过于追涨杀跌的风险。

  2. 热门股票的投资价值不一定符合个人的投资策略和风险偏好,需要注意风险控制。

  3. 忽略了其他基本面因素,容易忽略一些有潜在价值的企业。

如何优化?

优化选股策略的建议如下:

  1. 细化按个股热度排序的标准,考虑热度的长期趋势,结合其他因素进行选股。

  2. 加入更多的基本面因素,全面分析个股的内外部因素,从多角度评估个股长期潜在价值。

  3. 根据选股结果进行回测和统计分析,适当修改选股条件,提高选股结果的准确性和稳定性。

最终的选股逻辑

选股条件为:振幅大于1、前天MACD<0、按个股热度从大到小排序名。将技术面指标和热度因素相结合,选取中长期具备投资价值的热门股票。

同花顺指标公式代码参考

通达信公式:

SELECT * FROM
(
    SELECT STOCKCODE,SNAME,AMPLITUDE,MACD(12,26,9) AS MACD,IFNULL(AVG(LTURN3),0) AS TURNOVER 
    FROM HQ_DAILY AS A 
    LEFT JOIN (SELECT SYMBOL, AVG(TURNOVERRATE) AS LTURN3 FROM GETHISDATA(AVG(TURNOVERRATE),15) GROUP BY SYMBOL) AS B 
    ON A.STOCKCODE=B.SYMBOL
    WHERE T_TIME BETWEEN %stime1 AND %stime2
    AND AMPLITUDE>1
    AND MACD(12,26,9)<REF(MACD(12,26,9),1)
    GROUP BY STOCKCODE,SNAME,AMPLITUDE,MACD(12,26,9),B.LTURN3
    ORDER BY B.LTURN3 DESC
)

python代码参考

from gm.api import *

set_token('your_token_here')

start_date = '2022-01-01'
end_date = '2022-01-08'

# 获取所有股票的热度信息
data = get_fundamentals(table='tq_sk_sharestru', symbols=get_history_symbol(),
                        start_date=start_date, end_date=end_date, fields='TurnoverRateChange')
turnover_rate_change = {}
for symbol in data.keys():
    if len(data[symbol]['TurnoverRateChange']) != 0:
        turnover_rate_change[symbol] = data[symbol]['TurnoverRateChange'][0]
sorted_turnover_rate_change = sorted(turnover_rate_change.items(), key=lambda x: x[1], reverse=True)
symbols_sorted_by_heat = [item[0] for item in sorted_turnover_rate_change]

# 根据选股条件选出符合条件的股票
symbols_selected = []
for symbol in symbols_sorted_by_heat:
    # 获取股票历史交易数据
    df = history(symbol=symbol, frequency='d', start_time=start_date, end_time=end_date,
                 fields='open,high,low,close,volume')
    # 筛选出符合选股条件的股票
    if (len(df) < 2):
        continue
    amplitude = ta.ATR(df, timeperiod=14)
    macd = ta.MACD(df, fastperiod=12, slowperiod=26, signalperiod=9, price='close')
    if (amplitude.iloc[-1] > 1 and macd['macd'][-2] < 0):
        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、按个股热度从大到小排序名,并考虑了风险控制因素,如现在买入的股票一定是主力抛出的。代码中的选股条件可以根据需求进行修改。

    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

    select_sentence = '市值小于100亿' #选股语句。

    模板如何使用?

    点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论

需要帮助?

试试AI小助手吧