本文档对应 2025-12-30 发布的“六玛三价API.ex5”开发版指标(编译后文件:SixSigma三价API.ex5)。
指标已将 79 条缓冲区全部开放。用户可在自己的 EA/脚本/指标中 直接读取缓冲区 进行二次开发。
| 索引 | 中文含义 | 数据范围 | 实时性 | 关键用途示例 |
|---|---|---|---|---|
| 0 | 价位台阶上沿 | 价格 | 每根更新 | 绘制台阶上边界线;作为潜在压力位或止盈点参考。 |
| 1 | 台阶监视器(中轨) | 价格 | 每根更新 | 绘制台阶中心线;作为台阶内部多空分水岭;结合水位值判断相对位置。 |
| 2 | 价位台阶下沿 | 价格 | 每根更新 | 绘制台阶下边界线;作为潜在支撑位或止损点参考。 |
| 3 | 价格中枢上沿 | 价格 | 每根更新 | 绘制中枢上边界线;作为中枢上方压力位或空头入场参考。 |
| 4 | 中枢监视器(中位线) | 价格 | 每根更新 | 绘制中枢中心线;作为中枢多空分水岭;结合走势段连线判断趋势。 |
| 5 | 价格中枢下沿 | 价格 | 每根更新 | 绘制中枢下边界线;作为中枢下方支撑位或多头入场参考。 |
| 6 | 价值区间上沿 | 价格 | 每根更新 | 绘制价值区间上边界线;作为极端压力位或重要反转信号参考。 |
| 7 | 区间监视器(中位线) | 价格 | 每根更新 | 绘制价值区间中心线;作为市场价值中枢参考。 |
| 8 | 价值区间下沿 | 价格 | 每根更新 | 绘制价值区间下边界线;作为极端支撑位或重要反转信号参考。 |
| 9 | 走势高低点价格 | 价格 | 事件触发 | 读取基于中枢中位线计算的高低点价格,用于绘制趋势线或识别分形结构。 |
| 10 | 走势段线段高低点价格 | 价格 | 事件触发 | 读取基于中枢封闭信号计算的走势段高低点价格,用于绘制走势段连线或分析走势段特征。 |
| 11 | 走势类型高低点价格 | 价格 | 事件触发 | 读取基于区间封闭信号计算的走势类型高低点价格,用于绘制更大级别趋势连线或分析走势类型特征。 |
| 12 | 三价模型归位次数 | 0~n | 每根更新 | 量化三价模型(台阶、中枢、区间)收敛或发散的次数,评估市场结构的稳定性或活跃度。 |
| 13 | 三价模型归位已过K线数 | 0~n | 每根更新 | 记录上一次模型归位信号发生后经过的K线数,评估信号持续性或寻找新的归位时机。 |
| 14 | 上新台阶预计K线数 | ≥-1 | 每根更新 | 预测向上突破当前台阶所需时间(K线数),辅助判断突破时机。(-1表示无法预测) |
| 15 | 下新台阶预计K线数 | ≥-1 | 每根更新 | 预测向下突破当前台阶所需时间(K线数),辅助判断跌破时机。(-1表示无法预测) |
| 16 | 上新中枢预计K线数 | ≥-1 | 每根更新 | 预测向上突破当前中枢所需时间(K线数),辅助判断中枢突破。(-1表示无法预测) |
| 17 | 下新中枢预计K线数 | ≥-1 | 每根更新 | 预测向下突破当前中枢所需时间(K线数),辅助判断中枢跌破。(-1表示无法预测) |
| 18 | 上新区间预计K线数 | ≥-1 | 每根更新 | 预测向上突破当前价值区间所需时间(K线数),辅助判断区间突破。(-1表示无法预测) |
| 19 | 下新区间预计K线数 | ≥-1 | 每根更新 | 预测向下突破当前价值区间所需时间(K线数),辅助判断区间跌破。(-1表示无法预测) |
| 20 | 台阶水位值 | 0~100 | 每根更新 | 反映当前价格在台阶内的相对位置,类似RSI,用于判断台阶内的超买超卖状态。 |
| 21 | 中枢水位值 | 0~100 | 每根更新 | 反映当前价格在中枢内的相对位置,用于判断中枢内的多空力量对比。 |
| 22 | 区间水位值 | 0~100 | 每根更新 | 反映当前价格在价值区间内的相对位置,用于判断市场价值的极端程度。 |
| 23 | 台阶封闭标志 | -1/0/1 | 事件触发 | 识别台阶封闭方向:1=向上封闭,-1=向下封闭,0=未封闭。用于确认台阶失效或新台阶开始。 |
| 24 | 中枢封闭标志 | -1/0/1 | 事件触发 | 识别中枢封闭方向:1=向上封闭,-1=向下封闭,0=未封闭。是判断走势段结束和新走势段开始的关键信号。 |
| 25 | 区间封闭标志 | -1/0/1 | 事件触发 | 识别区间封闭方向:1=向上封闭,-1=向下封闭,0=未封闭。是判断更大级别走势类型转换的关键信号。 |
| 26 | 台阶封闭K线数 | 0~n | 每根更新 | 记录当前台阶从形成到当前时刻(或封闭时)所经历的K线数,用于分析台阶的持续时间和稳定性。 |
| 27 | 中枢封闭K线数 | 0~n | 每根更新 | 记录当前中枢从形成到当前时刻(或封闭时)所经历的K线数,用于分析中枢的持续时间和稳定性。 |
| 28 | 区间封闭K线数 | 0~n | 每根更新 | 记录当前价值区间从形成到当前时刻(或封闭时)所经历的K线数,用于分析区间的持续时间和稳定性。 |
| 29 | 台阶移动序数 | …-2,-1,1,2… | 每根更新 | 记录台阶的移动方向(正负)和累计移动次数(绝对值),量化价格波动的“步数”。 |
| 30 | 台阶序数小计 | 0~n | 低频更新 | 统计特定台阶移动序数(如+1, -1等)出现的总次数,用于后续概率计算。 |
| 31 | 台阶序数常见率% | 0~100% | 低频更新 | 计算特定台阶移动序数出现的频率,反映该模式的普遍性。 |
| 32 | 台阶序数转折率% | 0~100% | 低频更新 | 计算台阶移动发生转折(如+1后变为-1)的概率,反映该模式的持续性。 |
| 33 | 台阶序数显著度% | 0~+∞ | 低频更新 | 计算显著度(延续率/常见率),综合评估台阶移动序数模式的重要性。 |
| 34 | 中枢移动序数 | …-10~10… | 每根更新 | 记录中枢的移动方向(正负)和累计移动次数(绝对值),量化中枢波动的“步数”。 |
| 35 | 中枢序数小计 | 0~n | 低频更新 | 统计特定中枢移动序数(如+1, -1等)出现的总次数,用于后续概率计算。 |
| 36 | 中枢序数常见率% | 0~100% | 低频更新 | 计算特定中枢移动序数出现的频率,反映该模式的普遍性。 |
| 37 | 中枢序数延续率% | 0~100% | 低频更新 | 计算中枢移动延续(如+1后继续+1或0)的概率,反映该模式的持续性。 |
| 38 | 中枢序数显著度% | 0~+∞ | 低频更新 | 计算显著度(延续率/常见率),综合评估中枢移动序数模式的重要性。 |
| 39 | 区间移动序数 | …-10~10… | 每根更新 | 记录价值区间的移动方向(正负)和累计移动次数(绝对值),量化区间波动的“步数”。 |
| 40 | 区间序数小计 | 0~n | 低频更新 | 统计特定区间移动序数(如+1, -1等)出现的总次数,用于后续概率计算。 |
| 41 | 区间序常见率% | 0~100% | 低频更新 | 计算特定区间移动序数出现的频率,反映该模式的普遍性。 |
| 42 | 区间序延续率% | 0~100% | 低频更新 | 计算区间移动延续(如+1后继续+1或0)的概率,反映该模式的持续性。 |
| 43 | 区间序显著度% | 0~+∞ | 低频更新 | 计算显著度(延续率/常见率),综合评估区间移动序数模式的重要性。 |
| 44 | 台阶最多K线数 | 0~n | 低频更新 | 统计历史上所有台阶中持续时间最长的K线数。 |
| 45 | 台阶最少K线数 | 0~n | 低频更新 | 统计历史上所有台阶中持续时间最短的K线数。 |
| 46 | 台阶平均K线数 | 0~n | 低频更新 | 统计历史上所有台阶的平均持续时间(K线数)。 |
| 47 | 中枢最多K线数 | 0~n | 低频更新 | 统计历史上所有中枢中持续时间最长的K线数。 |
| 48 | 中枢最少K线数 | 0~n | 低频更新 | 统计历史上所有中枢中持续时间最短的K线数。 |
| 49 | 中枢平均K线数 | 0~n | 低频更新 | 统计历史上所有中枢的平均持续时间(K线数)。 |
| 50 | 区间最多K线数 | 0~n | 低频更新 | 统计历史上所有价值区间中持续时间最长的K线数。 |
| 51 | 区间最少K线数 | 0~n | 低频更新 | 统计历史上所有价值区间中持续时间最短的K线数。 |
| 52 | 区间平均K线数 | 0~n | 低频更新 | 统计历史上所有价值区间的平均持续时间(K线数)。 |
| 53 | 台阶收敛度% | 0~100% | 每根更新 | 反映台阶内部价格波动的集中程度,值越低表示筹码越集中。 |
| 54 | 中枢收敛度% | 0~100% | 每根更新 | 反映中枢内部价格波动的集中程度,值越低表示筹码越集中。 |
| 55 | 区间收敛度% | 0~100% | 每根更新 | 反映价值区间内部价格波动的集中程度,值越低表示筹码越集中。 |
| 56 | 筹码流动状态 | 1~4 | 每根更新 | 量化筹码流动速度:1=趋急(快速),2=趋稳(减缓),3=平衡(稳定),4=胶着(横盘)。 |
| 57 | 七种价格走势形态 | 0,1,2,3,4,6,8,9 | 每根更新 | 识别基于台阶和中枢的7种特定形态(0表示无匹配),用于判断当前市场状态。 |
| 58 | 两种价值走势形态 | 0,5,7 | 每根更新 | 识别基于价值区间的2种特定形态(0表示无匹配),区分回归与偏离。 |
| 59 | 趋势能力指数 | 0~100 | 每根更新 | 量化当前趋势的强度,值越高表示趋势越强。 |
| 60 | 趋势能力标志 | -1/1 | 每根更新 | 标识当前趋势方向:1=多头,-1=空头。 |
| 61 | 趋势能力归零预计K线数 | ≥-1 | 每根更新 | 预测趋势能力指数归零(趋势结束)所需的K线数。(-1表示无法预测) |
| 62 | 走势高低点标志 | -1/0/1 | 事件触发 | 标识走势高低点:1=顶点,-1=底点,0=非高低点。用于绘制基于中枢中位线的分形连线。 |
| 63 | 走势高低点K线序号 | 0~n | 事件触发 | 记录走势高低点发生的K线索引。 |
| 64 | 走势高低点编号 | 0~n | 事件触发 | 为识别出的走势高低点进行顺序编号。 |
| 65 | 走势包含K线数 | 0~n | 事件触发 | 记录构成该走势高低点所包含的K线总数。 |
| 66 | 走势段线段高低点标志 | -1/0/1 | 事件触发 | 标识走势段高低点:1=顶点,-1=底点,0=非高低点。用于绘制基于中枢封闭的走势段连线。 |
| 67 | 走势段线段高低点K线序号 | 0~n | 事件触发 | 记录走势段高低点发生的K线索引。 |
| 68 | 走势段线段高低点编号 | 0~n | 事件触发 | 为识别出的走势段高低点进行顺序编号。 |
| 69 | 走势段线段包含K线数 | 0~n | 事件触发 | 记录构成该走势段高低点所包含的K线总数。 |
| 70 | 走势段类型(6种) | 1~6 | 事件触发 | 提供更细分的走势段类型编号(共6种),对应两个中枢间的不同结构。 |
| 71 | 走势段类型(扩展) | 1/2/3 | 事件触发 | 简化分类走势段类型:1=标准型,2=扩展型,3=扩张型。 |
| 72 | 走势类型高低点标志 | -1/0/1 | 事件触发 | 标识走势类型高低点:1=顶点,-1=底点,0=非高低点。用于绘制基于区间封闭的走势类型连线。 |
| 73 | 走势类型高低点K线序号 | 0~n | 事件触发 | 记录走势类型高低点发生的K线索引。 |
| 74 | 走势类型高低点编号 | 0~n | 事件触发 | 为识别出的走势类型高低点进行顺序编号。 |
| 75 | 走势类型包含K线数 | 0~n | 事件触发 | 记录构成该走势类型高低点所包含的K线总数。 |
| 76 | 走势类型 | 1/2/3 | 事件触发 | 简化分类走势类型 |
| 77 | 当前中枢形式 | 1/2/3 | 每根更新 | 实时显示当前中枢的预期或当前形式:1=标准型,2=扩展型,3=扩张型。 |
| 78 | 当前区间形式 | 1/2/3 | 每根更新 | 实时显示当前价值区间的预期或当前形式:1=标准型,2=扩展型,3=扩张型。 |
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
PeriodN |
int |
21 |
筹码样本周期 |
HalfMode |
BOOL |
false |
台阶中枢筹码对齐 |
VcpViewMode |
ENUM_VCP_VIEW_MODE |
0 |
三价模型显示方式 (0孤岛, 1矩形, 2终态, 3原生) |
FirstBSBuyStep |
ENUM_FIRSTBS_AT_STEP |
2 |
一买一卖建构阶段 (1启动, 2加速, 3衰竭, 4恐慌) |
OpenTrendLine |
BOOL |
1 |
计算走势段连线 |
OpenCostTrendLine |
BOOL |
0 |
计算走势段类型连线 |
OpenValueTrendLine |
BOOL |
0 |
计算走势类型连线 |
OnlyViewLastBarsForLive |
int |
8 |
操盘元素K线数(0无-1全部) |
CalulateBars |
int |
1999 |
计算K线数量 |
API_ID_STRING |
string |
"API_202512" |
API识别号(避免多次调用数据冲突) |
enum BOOL {是=1,否=0};
enum SIGMACLASS {1σ=1,2σ=2,3σ=3,4σ=4,5σ=5};
enum ENUM_MA_CLASS {1简单平均(SMA)=0,2指数平均(EMA)=1,3光滑平均(SMMA)=2,4加权平均(LWMA)=3,5离差均线(DEA)=4,6多空均线(Diff)=5};//,7自适均线(AMA)=6};
enum ENUM_BANDCLASS {分数堆积=0,倍数堆积=1};
enum PRICECLASS {CLOSE=1,OPEN=2,HIGH=3,LOW=4};
enum ENUM_VCP_VIEW_MODE {孤岛模式=0,矩形模式=1,终态模式=2,原生模式=3};
//常见率:指特定走势形态出现的频次占所有形态总频次的比例,体现该形态出现的普遍性。
//延续率:指走势形态出现后,其趋势得以延续的概率,反映该形态对后续走势的引导性。
//显著度:是延续率与常见率的比值,综合体现走势形态的重要性和可靠性。
enum ENUM_PERCENT_MODE {常见率=0,延续率=1,显著度=3};
enum ENUM_FIRSTBS_AT_STEP {启动阶段=1,加速阶段=2,衰竭阶段=3,恐慌阶段=4};
enum ENUM_MARKOV_MX {一阶矩阵=1,二阶矩阵=2,三阶矩阵=3,综合矩阵=4};
| 缓冲区 | 取值 | 含义 |
|---|---|---|
| ExtPriceClosureFlag (索引 23) | 1 向上封闭 -1 向下封闭 0 未封闭 | 台阶完成状态标志 |
| ExtCostClosureFlag (索引 24) | 同上 | 中枢完成状态标志 |
| ExtValueClosureFlag (索引 25) | 同上 | 区间完成状态标志 |
MQL5 示例:EA 开仓过滤(引用缓冲区)
// 假设指标已加载到图表
int handle = iCustom(_Symbol, PERIOD_CURRENT, "SixSigma_VCP.ex5", 0, 0, 0, 0, 0, 0, 0, 0, "API_202512");
if(handle == INVALID_HANDLE) return;
// 获取当前K线索引
int currentBarIndex = 0; // 0 是最新K线
// 从句柄读取缓冲区数据
double priceClosureBuffer[], costClosureBuffer[];
CopyBuffer(handle, 23, currentBarIndex, 1, priceClosureBuffer); // 读取台阶封闭标志
CopyBuffer(handle, 24, currentBarIndex, 1, costClosureBuffer); // 读取中枢封闭标志
// 获取当前值
double currentPriceFlag = priceClosureBuffer[0];
double currentCostFlag = costClosureBuffer[0];
// 只做“中枢向上封闭”后的多单,且台阶未向下封闭
if(currentCostFlag == 1 && currentPriceFlag != -1) {
// 执行开多逻辑
// ...
}
// 记得在程序结束或不需要时释放句柄
// IndicatorRelease(handle);
| 缓冲区 | 正负号 | 绝对值 | 用法 |
|---|---|---|---|
| (索引 29) | + 上移 - 下移 | 已走台阶数 | 判断当前是启动、加速还是衰竭阶段 |
| (索引 34) | + 上移 - 下移 | 已走中枢数 | 用于判断中枢延续的可能性 |
| (索引 39) | + 上移 - 下移 | 已走区间数 | 用于判断区间延续的可能性 |
示例:动态止损(引用缓冲区)
// ... (获取句柄 handle 和 currentBarIndex 如上)
double priceTurningBuffer[], stepDownBuffer[];
CopyBuffer(handle, 29, currentBarIndex, 1, priceTurningBuffer); // 读取台阶移动序数
CopyBuffer(handle, 2, currentBarIndex, 1, stepDownBuffer); // 读取台阶下沿
double currentStepCount = priceTurningBuffer[0];
double currentStepBottom = stepDownBuffer[0];
double stepOffset = 50 * _Point;
// 如果台阶移动到加速阶段(假设为+2),则将止损设在台阶下沿下方一定距离
if(currentStepCount == 2) {
double newStopLoss = currentStepBottom - stepOffset;
// 应用止损逻辑
// ...
}
| 缓冲区 | 缓冲区索引 | 缓冲区名称 |
|---|---|---|
| 七种价格走势形态 | 57 | 5价值回归 7价值偏离 |
| 编码 | 中文 | 典型场景 |
|---|---|---|
| 1 | 一买建构 | |
| 2 | 二卖三买 | |
| 3 | 中继反转 | |
| 4 | 即将回调 | |
| 6 | 即将反弹 | |
| 8 | 二买三卖 | |
| 9 | 一卖建构 | |
| 0 | 无 | 未匹配 |
示例:只做“一买”与“即将反弹”(引用缓冲区)
// ... (获取句柄 handle 和 currentBarIndex 如上)
double stateBuffer[];
CopyBuffer(handle, 57, currentBarIndex, 1, stateBuffer); // 读取形态编码
int currentState = (int)stateBuffer[0];
// 如果形态是“一买建构”或“即将反弹”,则允许做多
if(currentState == 1 || currentState == 6) {
// 执行开多逻辑
// ...
}
// ... (获取句柄 handle 和 currentBarIndex 如上)
double costUpTimeBuffer[], costDnTimeBuffer[];
CopyBuffer(handle, 16, currentBarIndex, 1, costUpTimeBuffer); // 读取上新中枢预计K线数
CopyBuffer(handle, 17, currentBarIndex, 1, costDnTimeBuffer); // 读取下新中枢预计K线数
int upK = (int)costUpTimeBuffer[0];
int dnK = (int)costDnTimeBuffer[0];
if(upK >= 0 && dnK >= 0) { // 检查是否有效预测
int minLeft = MathMin(upK, dnK) * PeriodSeconds(PERIOD_CURRENT) / 60; // 转换为分钟
Print("中枢预计", minLeft, "分钟后(或", MathMin(upK, dnK), "根K线后)封闭");
} else {
Print("中枢封闭时间无法预测");
}
| 需求 | 引用缓冲区 |
|---|---|
| 获取三价上轨/下轨 | 0,2,3,5,6,8 |
| 判断台阶是否封闭 | 23/26 |
| 计算常见率、显著度 | 31,32,33 |
| 实时扩展类型(1/2/3) | 77,78 |
| 画“孤岛”模式 | 0,1,2 |
| 趋势能力归零倒计时 | 61 |
| 识别走势高低点 | 62, 66, 72 |
PeriodN 默认 21,越大越代表走势级别越大;iCustom 或 CopyBuffer 引用缓冲区时,确保指标文件名和参数与API_ID_STRING一致,避免数据冲突。| 日期 | 版本 | 说明 |
|---|---|---|
| 2025-12-15 | 4.03 | 首版 API 开放,79 缓冲区导出。 |
如需进一步帮助,请参考 MetaTrader 5 的 MQL5 文档,特别是 iCustom 和 CopyBuffer 函数的使用。