分享

【量化指标】通达信波动率四分位指标,抓住A股情绪临界点

 知行合一1ycgzb 2025-01-30

核心指标DEAA

先说说DEAA,它其实就是一个双指数移动平均线的差值再经过一次平滑处理。简单来说,就是用短期的5日均线和长期的60日均线的差值,再用指数平滑一下,看看市场短期和长期的动态变化。这个指标画出来是一条黄色的线,还挺明显的。

DEAA:=EMA(EMA(C,5)-EMA(C,60),1),LINETHICK2,COLORYELLOW;

高点和低点的辅助线

然后我又加了几条辅助线,比如HV是DEAA的2日高点,用绿色标出来。还有LIJIN,它是用13日均线差值的3日高点和低点的平均值,分成了A1到A8这8条线,颜色不同,方便区分。这些线的作用就是看看DEAA在这些高点和低点附近的表现。

LIJIN:=(HHV(EMA(EMA(C,5)-EMA(C,13),1),3)+ABS(LLV(EMA(EMA(C,5)-EMA(C,13),1),3)))/2;
图片

长期波动范围的参考线

再往上,我还加了GHCZS2,这是100日的波动范围,也分成了A9到A16这8条线。这些线主要是看看长期的波动范围,有时候市场波动大,这些线能提醒一下。

GHCZS2:=(HHV(EMA(EMA(C,5)-EMA(C,13),1),100)+ABS(LLV(EMA(EMA(C,5)-EMA(C,13),1),100)))/2;
图片

交叉信号的提示

最后,我加了一个交叉信号XG,就是当DEAA线和A2到A8这几条线都交叉的时候,会有一个提示。不过这个信号只是个参考,市场变化快得很,不能完全依赖这个信号。

用法和心得

这个指标组合没啥神奇的,就是看看市场短期和长期的变化,再结合高点、低点和长期波动范围,大概有个方向。不过吧,交易这事儿,还得结合自己的判断,不能完全依赖指标。大家要是有兴趣,可以试试看,说不定能找到自己的交易节奏。

图片

通达信波动率四分位指标

DEAA:=EMA(EMA(C,5)-EMA(C,60),1),LINETHICK2,COLORYELLOW;HV:=HHV(DEAA,2),COLOR66FF00;LIJIN:=(HHV(EMA(EMA(C,5)-EMA(C,13),1),3)+ABS(LLV(EMA(EMA(C,5)-EMA(C,13),1),3)))/2;A1:LIJIN/4*4,COLOR0000FF;A2:LIJIN/4*3,COLORAAAA00;A3:LIJIN/4*2,COLOR00AA00;A4:LIJIN/4*1,COLOR00AAAA;A5:-LIJIN/4*1,COLOR00AAAA;A6:-LIJIN/4*2,COLOR00AA00;A7:-LIJIN/4*3,COLORAAAA00;A8:-LIJIN/4*4,COLOR0000FF;GHCZS2:=(HHV(EMA(EMA(C,5)-EMA(C,13),1),100)+ABS(LLV(EMA(EMA(C,5)-EMA(C,13),1),100)))/2;A9:GHCZS2/4*4,COLOR0000AA;A10:GHCZS2/4*3,COLORAAAA00;A11:GHCZS2/4*2,POINTDOT,COLOR00AA00;A12:GHCZS2/4*1,POINTDOT,COLOR00AAAA;A13:-GHCZS2/4*1,POINTDOT,COLOR00AAAA;A14:-GHCZS2/4*2,POINTDOT,COLOR00AA00;A15:-GHCZS2/4*3,COLORAAAA00;A16:-GHCZS2/4*4,COLOR0000AA;XG:CROSS(DEAA,A2)&&CROSS(DEAA,A3)&&CROSS(DEAA,A4)&&CROSS(DEAA,A5)&&CROSS(DEAA,A6)&&CROSS(DEAA,A7)&&CROSS(DEAA,A8),COLORWHITE,NODRAW;DRAWICON(XG,LIJIN,34);
图片
波动率四分位指标C++源代码
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>

// 计算EMA(指数移动平均线)
double EMA(const std::vector<double>& data, int period, int index) {
    if (index < period - 1return data[index];
    double alpha = 2.0 / (period + 1);
    return alpha * data[index] + (1 - alpha) * EMA(data, period, index - 1);
}

// 计算HHV(最高值)
double HHV(const std::vector<double>& data, int period, int index) {
    double max_val = data[index];
    for (int i = std::max(0, index - period + 1); i <= index; ++i) {
        if (data[i] > max_val) max_val = data[i];
    }
    return max_val;
}

void calculateIndicators() {
    std::vector<doubleDEAA(prices.size());
    std::vector<doubleHV(prices.size());
    std::vector<doubleLIJIN(prices.size());
    std::vector<doubleGHCZS2(prices.size());

    for (size_t i = 0; i < prices.size(); ++i) {
        if (i >= 60) { // 确保有足够的数据来计算EMA
            DEAA[i] = EMA(EMA(prices, 5, i) - EMA(prices, 60, i), 1, i);
            HV[i] = HHV(DEAA, 2, i);
            LIJIN[i] = (HHV(EMA(EMA(prices, 5, i) - EMA(prices, 13, i), 1, i), 3, i) +
                        std::abs(LLV(EMA(EMA(prices, 5, i) - EMA(prices, 13, i), 1, i), 3, i))) / 2;
            GHCZS2[i] = (HHV(EMA(EMA(prices, 5, i) - EMA(prices, 13, i), 1, i), 100, i) +
                         std::abs(LLV(EMA(EMA(prices, 5, i) - EMA(prices, 13, i), 1, i), 100, i))) / 2;
        }
    }

风险提示:本指标仅供技术研究与学习交流使用。资本市场具有高度不确定性,任何基于本指标的投资决策都需要自行承担风险,不构成任何投资建议。

图片

图片



学习分享



学术交流:我们专注于市场的学术交流与研究包括自用指标抄底逃顶零滞后均线最速曲线,以及期货自动化和股票自动化学习

分享知识:田都元帅,敬神常在,爱人如己,我为人人,与人为善,分享快乐!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多