目录

六玛三价 API 接口文档(Alpha版)



六玛三价 API 接口文档(MT5-EX5 二次开发版)

本文档对应 2025-12-30 发布的“六玛三价API.ex5”开发版指标(编译后文件:SixSigma三价API.ex5)。

指标已将 79 条缓冲区全部开放。用户可在自己的 EA/脚本/指标中 直接读取缓冲区 进行二次开发。


一、缓冲区速查表(79 条,按索引 0~78)

索引 中文含义 数据范围 实时性 关键用途示例
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};

四、关键信号详解与引用缓冲区示例

1. 三价封闭信号(最常用)

缓冲区 取值 含义
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);

2. 移动序数(量化“位移了几次”)

缓冲区 正负号 绝对值 用法
(索引 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;
    // 应用止损逻辑
    // ...
}

3. 九种形态( 索引 57)

缓冲区 缓冲区索引 缓冲区名称
七种价格走势形态 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) {
    // 执行开多逻辑
    // ...
}

4. 封闭倒计时(以K线数为单位)(引用缓冲区)

// ... (获取句柄 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

六、性能与注意事项

  1. 缓冲区 79 条全部常驻内存,每根 K 线一次计算,复杂度 O(n)。
  2. PeriodN 默认 21,越大越代表走势级别越大;
  3. 使用 iCustomCopyBuffer 引用缓冲区时,确保指标文件名和参数与API_ID_STRING一致,避免数据冲突。
  4. 读取缓冲区时,注意区分实时更新(每根K线)和事件触发(仅在特定条件下更新)的数据。

七、版本记录

日期 版本 说明
2025-12-15 4.03 首版 API 开放,79 缓冲区导出。

如需进一步帮助,请参考 MetaTrader 5 的 MQL5 文档,特别是 iCustomCopyBuffer 函数的使用。