分享

通达信指标:量价规律四象限,解锁量价起升指标的秘密和C语言编程

 老鹰666 2025-04-27 发布于重庆

兄弟朋友们,今天来学习一款量价检测指标,通常我们对市场的理解可以概括为四种状态,那么完全可以用量化指标的方式来直观表示出来。

一、指标核心算法

该指标可以监测四种基本的市场状态:

图片

图一:量价规律四象限算法附图

  • 1. 价量齐升:价格上涨,成交量也随之增加。

  • 2. 价升量缩:价格走高,但成交量却有所减少。

  • 3. 价跌量增:价格下跌,但成交量却增加。

  • 4. 价量齐跌:价格走低,成交量也萎缩。

算法指标以简单的标签帮助用户快速识别当前市场特征,就像天气预报用符号表示天气变化。

此外,它采用双指标验证机制来追踪趋势:

1. 成交量指标:计算近50天的成交量变化均值。

2. 价格指标:计算近30天的价格变化均值。当两个指标同步变化时,确认趋势有效,避免单一数据的误判。这种验证方式类似于使用两个气压计来判断气压变化。

图片
图二:下降趋势的应用附图

算法指标还配备了可视化提示系统:

  • 1. 文字提示:在图表下方显示关键状态说明。

  • 2. 图形提示:用红绿柱状图展示累计涨跌幅。

  • 3. 特殊标记:在K线末端用标记标注风险点,绿色箭头提示机会点。

二、实际指标用法指导

短期信号:

  • 1. 当日价格上涨且成交量增加时,系统会发出提示。

  • 2. 当价格增速超过近期平均水平时,系统会特别标注。

图片
图三:上升趋势的应用附图

确认中期趋势:需要同时满足以下条件:

  • 1. 50天的成交量均值呈现上升趋势。

  • 2. 30天的价格均值也呈现上升趋势。只有当这两个条件同时满足时,才确认趋势有效。

此外,指标还具备风险管理机制:

  • 1. 异常波动预警:当价格创出新高但成交量下降时,系统会发出警告。

  • 2. 持续下跌处理:当价格和成交量同步下降时,系统会计算潜在亏损幅度,达到设定值时触发止损。

三、算法指标的优势特点

自适应调整能力:根据市场波动自动调整参数,采用动态计算方式,更好地适应市场变化。如同手机屏幕根据环境光线自动调节亮度。

多时间维度分析:指标可以同时观察日线级别变化和月线级别趋势,兼顾短期波动和长期方向。

图片

四、总结和建议

当趋势明朗时,顺应趋势:

1. 当价格和成交量同步上升,趋势指标大于1时,建议增加持仓。

2. 当价格和成交量同步下降,趋势指标低于0.8时,建议减少持仓。同时,注意趋势转折的提示,如价格下跌但成交量突然放大等短期反弹信号,以及趋势反转警示。该算法指标将复杂的量价关系转化为直观的视觉信号,适合需要客观决策依据的使用。有对这个算法感兴趣的可以一起评论区交流交流改进下。

通达信指标量价规律四象限
价量同升:=C>REF(C,1)&&V>REF(V,1);价量背离1:=C<REF(C,1)&&V>REF(V,1);价量背离2:=C>=REF(C,1)&&V<REF(V,1);价量同降:=C<REF(C,1)&&V<REF(V,1);DRAWRECTREL(10,500,990,500,0);DRAWRECTREL(500,10,500,990,0);价涨幅1:=(C-REF(C,1))/REF(C,1);量涨幅1:=(V-REF(V,1))/REF(V,1);价涨幅:SUM(价涨幅1,0),COLORFF2000,LINETHICK2,LINESTICK;量涨幅:=SUM(量涨幅1,0);量涨幅2:=EMA(量涨幅,50)/EMA(价涨幅,30);量涨幅线:量涨幅/量涨幅2,COLORGRAY,LINETHICK2,LINESTICK;DRAWTEXT_FIX(价量同升,0.9,0.9,1,'价量同升且量较小,低');DRAWTEXT_FIX(价量同降,0.2,0.9,1,'价量同降,清仓');DRAWTEXT_FIX(价量背离1,0.2,0.7,1,'价量背离,清仓');DRAWTEXT_FIX(价量背离2,0.9,0.2,1,'价量背离,观望');DRAWTEXT_FIX(价量同升,0.2,0.2,1,'价量同升且量大,持');DRAWNUMBER_FIX(CURRBARSCOUNT=1&&价量同升,0.98,0.9,1,C),COLORRED;DRAWNUMBER_FIX(CURRBARSCOUNT=1&&价量同降,0.28,0.9,1,C),COLORGREEN;DRAWNUMBER_FIX(CURRBARSCOUNT=1&&价量同升,0.28,0.20,1,C),COLORRED;DRAWNUMBER_FIX(CURRBARSCOUNT=1&&价量背离1,0.28,0.7,1,C),COLORGREEN;DRAWNUMBER_FIX(CURRBARSCOUNT=1&&价量背离2,0.98,0.20,1,C),COLORRED;
图片
C语言源代码量价规律四象限
#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <sstream>

struct StockData {
    double closePrice; // 收盘价
    double volume;     // 成交量
};

std::pair<doubledoublecalculatePriceAndVolumeChange(const std::vector<StockData>& data, int index) {
    if (index <= 0 || index >= data.size()) {
        return {0.00.0};
    }
    double priceChange = (data[index].closePrice - data[index - 1].closePrice) / data[index - 1].closePrice;
    double volumeChange = (data[index].volume - data[index - 1].volume) / data[index - 1].volume;
    return {priceChange, volumeChange};
}

// 简单的移动平均计算
double calculateEMA(const std::vector<double>& data, int period, int index) {
    if (index < period - 1) {
        return0.0;
    }
    double sum = 0.0;
    for (int i = index - period + 1; i <= index; ++i) {
        sum += data[i];
    }
    return sum / period;
}

// 判断价量关系
std::string judgePriceVolumeRelation(const std::vector<StockData>& data, int index) {
    if (index <= 0) {
        return'Invalid index';
    }
    bool priceUp = data[index].closePrice > data[index - 1].closePrice;
    bool volumeUp = data[index].volume > data[index - 1].volume;

    if (priceUp && volumeUp) {
        return'价量同升';
    } elseif (!priceUp && volumeUp) {
        return'价量背离1';
    } elseif (priceUp && !volumeUp) {
        return'价量背离2';
    } elseif (!priceUp && !volumeUp) {
        return'价量同降';
    } else {
        return'未知情况';
    }
}

int main() {

    for (size_t i = 1; i < data.size(); ++i) {
        std::string relation = judgePriceVolumeRelation(data, i);
        std::cout << '第 ' << i + 1 << ' 天: ' << relation << std::endl;

        // 根据关系绘制文本和数字
        if (relation == '价量同升') {
            drawText('价量同升且量较小,低'0.90.9'红色');
            drawNumber(data[i].closePrice, 0.980.9'红色');
        } elseif (relation == '价量同降') {
            drawText('价量同降,清仓'0.20.9'绿色');
            drawNumber(data[i].closePrice, 0.280.9'绿色');
        } elseif (relation == '价量背离1') {
            drawText('价量背离,清仓'0.20.7'绿色');
            drawNumber(data[i].closePrice, 0.280.7'绿色');
        } elseif (relation == '价量背离2') {
            drawText('价量背离,观望'0.90.2'灰色');
            drawNumber(data[i].closePrice, 0.980.2'红色');
        }
    }

    return0;
}

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

图片

图片

图片




学习分享



学术交流:我们专注于市场的学术交流与研究包括自用指标零滞后均线最速曲线,以及自动化程序量化学习。

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

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

    0条评论

    发表

    请遵守用户 评论公约