通达信CCI RSI KDJ多指标共振与C++源代码详解
创作时间:
作者:
@小白创作中心
通达信CCI RSI KDJ多指标共振与C++源代码详解
引用
1
来源
1.
http://www.360doc.com/content/25/0219/03/17132703_1147091321.shtml
本文将分享一段通达信软件中CCI、RSI、KDJ多指标共振的源代码。这些技术指标主要用于判断股票市场的买卖时机和底部信号。文章将详细解释这些指标的原理和计算方法,并提供具体的C++代码实现。
技术指标详解
通道线(CCI)
通道线(Commodity Channel Index,CCI)主要用于衡量价格与平均价格之间的偏离程度,帮助投资者识别市场趋势。其计算公式为:
CCI = (TYP - MA(TYP, M)) / (0.015 * AVEDEV(TYP, M))
其中,TYP是典型价格((最高价+最低价+收盘价)/3),MA是移动平均值,AVEDEV是平均偏差。
相对强弱指标(RSI)
相对强弱指标(Relative Strength Index,RSI)用于衡量市场强弱,其计算公式为:
RSI = (RSI1 - 50) * 5.3
其中,RSI1是通过比较一段时间内的平均涨跌幅度计算得出的。
随机指标(KDJ)
随机指标(Stochastic Oscillator,KDJ)通过计算一段时间内的最高价、最低价和收盘价来判断市场买卖信号。其计算公式为:
RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100
K = SMA(RSV, 3, 1)
D = SMA(K, 3, 1)
J = 3 * K - 2 * D
指数平滑移动平均(EMA)
指数平滑移动平均(Exponential Moving Average,EMA)是对价格进行指数加权平滑处理,更看重近期的数据。其计算公式为:
EMA = alpha * data[i] + (1 - alpha) * EMA[i - 1]
其中,alpha是平滑系数。
加权移动平均(SMA)
加权移动平均(Simple Moving Average,SMA)是对价格进行加权平均处理,把价格波动给平滑了。其计算公式为:
SMA = sum(data) / period
判断底部的算法逻辑
这段代码通过多种条件组合来判断底部信号:
- 超卖判断:
- 当RSI值低于某个阈值(比如-100),可能说明市场超卖了。
- 当K值和J2值低于某个阈值(比如-100),也可能说明市场到底部了。
- 趋势反转判断:
- 用RR(即RR1 > RR2)判断当前趋势是不是向上反转了。
- 再结合CB1(指数平滑处理后的指标),看看是不是低于-100,进一步确认是不是底部。
- 共振条件:
- 通过SSTT1、SSTT2、SSTT3这些条件组合,当多个指标同时满足超卖且趋势反转时,就标记为底部信号。
源代码实现
以下是具体的C++代码实现:
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <numeric>
using namespace std;
// 计算简单移动平均线
double SMA(const vector<double>& data, int period) {
vector<double> sma(data.size() - period + 1, 0.0);
for (size_t i = period - 1; i < data.size(); ++i) {
double sum = 0.0;
for (int j = 0; j < period; ++j) {
sum += data[i - j];
}
sma[i - period + 1] = sum / period;
}
return sma.back();
}
// 计算指数移动平均线
double EMA(const vector<double>& data, int period) {
vector<double> ema(data.size(), 0.0);
ema[0] = data[0];
double alpha = 2.0 / (period + 1);
for (size_t i = 1; i < data.size(); ++i) {
ema[i] = alpha * data[i] + (1 - alpha) * ema[i - 1];
}
return ema.back();
}
// 计算平均偏差
double AVEDEV(const vector<double>& data, int period) {
vector<double> avgdev(data.size() - period + 1, 0.0);
for (size_t i = period - 1; i < data.size(); ++i) {
double sum = 0.0;
double mean = SMA(vector<double>(data.begin() + i - period + 1, data.begin() + i + 1), period);
for (int j = 0; j < period; ++j) {
sum += abs(data[i - j] - mean);
}
avgdev[i - period + 1] = sum / period;
}
return avgdev.back();
}
// 计算RSI指标
double RSI(const vector<double>& close, int period) {
vector<double> gains, losses;
for (size_t i = 1; i < close.size(); ++i) {
double change = close[i] - close[i - 1];
if (change > 0) {
gains.push_back(change);
losses.push_back(0);
} else {
gains.push_back(0);
losses.push_back(abs(change));
}
}
double avg_gain = SMA(gains, period);
double avg_loss = SMA(losses, period);
return avg_gain / avg_loss * 100;
}
风险提示
本指标仅供技术研究与学习交流使用。资本市场具有高度不确定性,任何基于本指标的投资决策都需要自行承担风险,不构成任何投资建议。
热门推荐
病娇风格与边缘型人格障碍:文化想象与现实关怀
从仓石惠理子到我妻由乃:病娇角色的崛起与反思
尔加分宠物耳部护理液:温和配方,在家轻松清除狗狗耳螨
耳螨困扰如何破?一文详解狗狗耳螨防治指南
狗狗耳螨感染的预警信号:从甩头到行为异常
《行走——溯源燕赵历史锤拓京畿文化》出版:燕赵大地五千年文明的创新呈现
游走性疼痛治疗有五招,从西药到中医需遵医嘱
小红书视频配乐指南:如何用音乐提升视频质感?
现代研究揭示大黄蛰虫丸多重药理作用,临床应用拓展至肿瘤治疗
张仲景名方大黄蛰虫丸:活血化瘀功效显著,这些情况禁用
职场饭局应对指南:4招化解领导调侃
一文掌握幸福树养护要点,6大技巧让植株茁壮成长
幸福树浇水有讲究:5大因素决定浇水频率
四种植物改善办公环境,风水盆栽全攻略
科学预防狗狗耳螨病:5大措施守护爱犬健康
狗狗耳螨治疗:伊维菌素和米尔贝肟该如何选择
狗耳螨治疗全攻略:兽医推荐伊维菌素三步疗法
火花塞热值怎么选?铂金还是铱金?
消化道出血,这些症状你知道吗?
消化道出血患者的饮食禁忌,你知道多少?
消化性溃疡的预防秘籍,远离消化道出血
儿童下消化道出血的最新诊断方法:从Oakland评分到影像学检查
天命、耳顺、期颐:中国古代老人称谓全解析
GPS、北斗、伽利略、格洛纳斯全都用不上,讲讲弹道导弹如何导航
内分泌失调导致多汗?这些方法帮你轻松应对
内分泌失调让你出汗不止?专家揭秘原因
一秒变身复古港风帅哥 冬日穿搭需要皮衣上分
从原因到对策:冬季办公室出汗问题全解析
京剧有哪些流派的分别
脸型揭秘性格密码:从科学到传统的双重解读