(同花顺量化)15分钟周期MACD绿柱变短_、PE_0、振幅大于1

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

问财量化选股策略逻辑

选股逻辑为:振幅大于1、PE>0、15分钟周期MACD绿柱变短的股票。将选股逻辑作为第一个标题放入段落中。

选股逻辑分析

该选股策略的逻辑如下:

  1. 振幅大于1表示该股票价格波动比较大,有较高的交易活跃度;
  2. PE>0表示该股票未亏损,有一定盈利能力;
  3. 15分钟周期MACD绿柱变短表示该股票短期内价格出现下跌趋势,处于较好的卖出时机。

综合以上几点,我们可以选出具备较好交易活跃度、盈利能力和较好卖出时机的股票。

有何风险?

该选股策略的风险如下:

  1. 该策略可能忽略了一些处于长期上涨趋势的股票,可能错过一些高潜力的投资标的。
  2. MACD指标有滞后性,当短期下降走势出现时,有可能已经处于跌势中,容易被套牢。

如何优化?

为了降低风险和提高选股的成功率,可以在以上的基础上进行如下优化:

  1. 考虑加入更多的技术指标,如KDJ、RSI等,以提高选股的完整性;
  2. 对技术指标进行调整和筛选,找到更加准确的判断股票走势的指标;
  3. 加入基本面的分析,如市值、收益率、股息率等,更有效地评价股票的价值。

最终的选股逻辑

综合以上分析和优化,我们最终的选股逻辑为:振幅大于1、PE>0、15分钟周期MACD绿柱变短的股票。在此基础上,可以进一步进行调整和优化,以降低风险,提高选股成功率。

同花顺指标公式代码参考

以下是同花顺选股公式代码参考:

# 振幅大于1
C1: (HIGH - LOW) / REF(CLOSE, 1) > 0.01;

# PE>0
C2: PE > 0;

# 15分钟周期MACD绿柱变短
C3: DIF < DEA AND DIFFERENCE > REF(DIFFERENCE, 1);

# 选取同时满足以上条件的股票
FILTER: C1 AND C2 AND C3;

其中,C1、C2、C3分别表示振幅大于1、PE>0、15分钟周期MACD绿柱变短的选股条件;FILTER表示同时满足这些条件的股票进行筛选。

Python代码参考

以下是使用Python进行选股的代码参考:

import pandas as pd
import tushare as ts
from pyecharts.charts import Kline
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
from pyecharts.globals import ThemeType


def macd_signal(data):
    # 计算MACD指标的参数
    data["EMA12"] = data["close"].ewm(span=12).mean()
    data["EMA26"] = data["close"].ewm(span=26).mean()
    data["DIF"] = data["EMA12"] - data["EMA26"]
    data["DEA"] = data["DIF"].ewm(span=9).mean()
    data["DIFFERENCE"] = data["DIF"] - data["DEA"]
    
    # 判断MACD指标的卖出信号
    return data["DIF"] < data["DEA"] & (data["DIFFERENCE"] > data["DIFFERENCE"].shift(1))


def stock_selection():
    # 获取股票数据
    all_data = ts.get_k_data("002230", ktype="15")
    all_data = pd.DataFrame(all_data, columns=["date", "open", "close", "high", "low", "volume"])
    
    # 振幅大于1
    condition1 = (all_data["high"] - all_data["low"]) / all_data["close"].shift(1) > 0.01
    
    # PE > 0
    condition2 = True  # 此处省略PE>0的判断
    
    # MACD绿柱变短
    condition3 = macd_signal(all_data)
    
    # 筛选符合条件的股票
    selected_data = all_data[condition1 & condition2 & condition3]
    
    # 画出股票的K线图
    kline = Kline()
    kline.add_xaxis(selected_data["date"].tolist())
    kline.add_yaxis(series_name="", y_axis=selected_data[["open", "close", "low", "high"]].values.tolist())
    kline.set_global_opts(
        xaxis_opts=opts.AxisOpts(is_scale=True),
        yaxis_opts=opts.AxisOpts(is_scale=True),
        title_opts=opts.TitleOpts(title="股票K线图", subtitle=""),
        datazoom_opts=[opts.DataZoomOpts()]
    )
    kline.set_series_opts(
        itemstyle_opts={
            "normal": {
                "color": "#FF4500",  # 上涨为红色
                "color0": "#00CED1"  # 下跌为青色
            }
        }
    )
    kline.render("stock_kline.html") # 保存股票K线图至文件
    
    # 返回符合条件的股票代码和K线图文件名
    return selected_data["code"].values[0], "stock_kline.html"

其中,我们首先使用tushare库获取指定股票的15分钟K线图数据,然后根据选股逻辑进行筛选,最终返回符合条件的股票代码和该股票的K线图文件名。在MACD信号的判断中,我们定义了一个名为macd_signal的函数,用来计算和判断MACD指标的绿柱变短信号。最后,我们使用pyecharts库绘制股票的K线图,并保存至本地文件。

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

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

    模板如何使用?

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


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

评论