威廉·江恩(William Gann)方法(第二部分):创建江恩宫格指标(基础篇)
📘

威廉·江恩(William Gann)方法(第二部分):创建江恩宫格指标(基础篇)

第 1/3 篇

◍ 在 MT5 里搭一个江恩宫格指标

江恩宫格(Gann Grid)把价格与时间画成等距网格,用来读支撑阻力与角度。想在 MT5 自己造一个,不必从零写复杂对象,核心是用 OBJ_GANNLINE 把起点和终点锚定在图表上。 下面这段 MQL5 在图表主图创建一条江恩线,参数写死便于直接验证:起点取当前图表最左可见 K 线时间、价格 1.1000,终点取当前时间、价格 1.2000。复制进 MT5 的脚本或指标 OnInit,编译运行就能看到斜向网格基线。 外汇与贵金属波动受杠杆与消息驱动,网格只是概率参考,实际击穿概率随波动率放大而升高,请自行在策略测试器回测确认。

MQL5 / C++
class="type">int OnInit()
{
   ObjectCreate(class="num">0, "GannLine1", OBJ_GANNLINE, class="num">0, iTime(NULL,class="num">0,class="num">0), class="num">1.1000, TimeCurrent(), class="num">1.2000);
   ObjectSetInteger(class="num">0, "GannLine1", OBJPROP_COLOR, clrDodgerBlue);
   class="kw">return(INIT_SUCCEEDED);
}

「江恩九宫格与MT5的接口机会」

威廉·德尔伯特·江恩在20世纪初留下的分析体系里,九宫格是被反复提及却少有人量化的工具。它把数字按螺旋方式排进9×9方格,试图同时标定关键价格位与时间间隔,底层混用了几何、数论与占星视角。 现代MT5交易者若只靠肉眼在图表上数格,基本不可行;但江恩原稿里‘9×9方阵’这一结构,恰好能用二维数组在MQL5里直接映射。 本文系列要做的,是用MQL5给MetaTrader 5写一个新指标,把九宫格的螺旋序列渲染成可叠加在报价上的参考层。外汇与贵金属波动受杠杆与跳空影响,属高风险品种,这类非传统工具只能作为概率参考,不能单独成策。 从理论回溯到指标落地,再到实盘局限,后面几节会逐步放出可编译代码,你可以直接开MT5验证每步输出是否和江恩手稿的数列一致。

九宫格里的螺旋数字怎么排

江恩九宫格把价格与时间塞进一个 9×9 的方格,核心假设是市场沿螺旋模式运动,数字序列本身携带转折信息。建格从正中心写 1,之后逆时针绕圈填充,直到右下角落定 81;每数到第 9 个(9、18、27…81)会构成他口中的“基点十字”,被视作关键共振位。 这些数字在江恩体系里既是价位也是时间窗。同一行、对角或存在和谐比例的数字,市场倾向于给出反应,表现为支撑、阻力或拐点;他甚至把格中数字夹角对应到行星相位,给静态方格叠了一层日期维度。 实际用起来解释空间很大。有人只抓价格水平,有人专看时间周期,也有人两者叠加;这种主观性意味着新手直接照方格下单很容易误读。外汇与贵金属杠杆高、波动剧烈,拿九宫格当唯一依据风险极高。 要在 MT5 里落地,得先把“中心为 1、逆时针到 81”的填充规则写成数组,再映射报价精度与时间周期。理论概念只有变成可重复计算的算法,才谈得上补传统技术分析一角。

◍ 把九宫格拆成可算的坐标与数列

江恩九宫格表面玄乎,底子是 9×9 矩阵里 1 到 81 的逆时针螺旋。把它当纯数学对象看,每个数都能落到一个 (x, y) 坐标,螺旋走向可用离散参数方程描述,不用去猜什么神秘能量。 每第九个数构成基点十字,也就是 9、18、27…81,是首项 9、步长 9 的等差数列;很多循环判断直接吃模 9 运算,数除 9 的余数就决定了它在格里的相位。 价格投影靠平方根或对数变换把格数拉到价位尺度,时间维度则用模运算表达——螺旋每转满一圈对应一个周期长度。江恩原法还反复用价格平方根做二次运算,这部分在代码里得单独开函数。 数学本身是硬的,但怎么解释角度和谐关系、哪条十字算信号,仍高度主观。做 MT5 指标的目标不是替你下结论,而是把螺旋生成、角度计算、数转价、周期判定全变成可改参数的函数,让你自己跑。

「动手前先把九宫格指标的结构想清楚」

江恩九宫格指标不是画个方框就完事。核心要干三件事:在图表上把方格阵列画出来、把格子里面的数字换算成具体价格水平、再把对应的时间周期标出来。这三块逻辑如果前期没拆开,后面改一次参数就得重画一遍。 给用户留的参数至少要覆盖三个:九宫格的起始数字、数字到价格的换算尺度(scale)、以及线条和文字的颜色。起始数字决定整张网格的基准,scale 直接控制每格代表多少点,这两个值调错,网格会整体偏离现价区。 数据存放方式得提前定。用一个数组存九宫格里的数字序列,再用独立列表分别存算出来的价格和日期。MT5 里图形对象多了容易卡,数组和列表分清楚,后续刷新效率会高不少。 算法上要写三个函数:生成九宫格、数字转价格、算时间周期日期。显示位置也得想好——价格水平放右侧坐标轴附近,日期标在底部还是悬浮框,不同品种可视区域差异很大。 外汇和贵金属波动快、跳空多,这类网格指标仅作辅助参考,高风险品种上别单独拿它做进出场。正式写代码前,先准备一套跨时间框架的校验办法,比如拿历史某天的收盘价反推网格数,看误差是否落在 1~2 个点内,不然上线后图形会越跑越歪。

九宫格指标的函数骨架怎么摆

在 MT5 里写江恩九宫格指标,先把变量和数组的归属理清,比急着算方格更重要。全局变量放用户可调的设置项,独立数组承接九宫格坐标与中间计算值,后面调试时你才知道哪块数据飘了。 初始化阶段靠 OnInit() 把参数绑定好,顺手建出要用的图形对象;指标被移除时,OnDeinit() 必须把这些对象清干净,不然图表上会留一堆死线。 真正干活的是 OnCalculate(),每次新报价进来它就被触发一次。九宫格的刷新和重绘全压在这里,逻辑若写重了,CPU 占用会随 tick 频率直线往上走,这点在高波动贵金属行情里尤其明显。

常见问题

用自定义指标脚本画出以价格为轴心的3x3方格,把关键价位标在格线上,加载到图表即可直观看价格落在哪一宫。
从中心1开始顺时针向外螺旋递增,每圈数字按固定步长扩展,中心代表基准价,外围是衍生价位。
可以,小布能读取品种页坐标并自动映射九宫格位置,直接告诉你价格处于哪个宫和对应倾向。
先定好基准价获取方式和格距计算逻辑,否则图表缩放后宫格会错位,建议先画纸面坐标再写函数。
至少要有初始化基准价、计算格距、循环绘制线条与文字、刷新坐标四部分,缺一块图表就不会完整显示。