价格行为分析工具包开发(第十五部分):引入四分位理论(1)四分位绘图脚本(基础篇)
📘

价格行为分析工具包开发(第十五部分):引入四分位理论(1)四分位绘图脚本(基础篇)

第 1/3 篇

「给MT5画一条四分位参考带」

在价格行为分析里,四分位把一段行情的高低区间切成四等份,用来观察价格落在哪个层级更容易出现反应。这套脚本的思路很简单:取一段K线的最高价与最低价,按 25% / 50% / 75% 三档画水平线,帮交易者在 MT5 图表上快速建立分层参考。 原文给出的示例发布于 2025-11-03,在 MetaTrader 5 栏目下获得 871 次查看、0 条评论,说明这类轻量脚本受众不小但互动偏低——多数人会直接下载跑,不会留言。 脚本核心是先算区间内极值,再用 ObjectCreate 画水平线。下面这段是原文 MQL5 脚本的绘图主干(已做中文逐行拆解):

MQL5 / C++
class="type">class="kw">double hi = iHigh(NULL,class="num">0,iHighest(NULL,class="num">0,MODE_HIGH,bars,class="num">0));
class=class="str">"cmt">// 取指定根数 bars 内的最高价

class="type">class="kw">double lo = iLow(NULL,class="num">0,iLowest(NULL,class="num">0,MODE_LOW,bars,class="num">0));
class=class="str">"cmt">// 取指定根数 bars 内的最低价

class="type">class="kw">double q1 = lo + (hi-lo)*class="num">0.25;
class=class="str">"cmt">// 下四分位:低值加区间的 class="num">25%
class="type">class="kw">double q2 = lo + (hi-lo)*class="num">0.50;
class=class="str">"cmt">// 中四分位:即区间中线
class="type">class="kw">double q3 = lo + (hi-lo)*class="num">0.75;
class=class="str">"cmt">// 上四分位:低值加区间的 class="num">75%

ObjectCreate(class="num">0,"Q1",OBJ_HLINE,class="num">0,class="num">0,q1);
class=class="str">"cmt">// 创建名为 Q1 的水平线对象
ObjectCreate(class="num">0,"Q2",OBJ_HLINE,class="num">0,class="num">0,q2);
class=class="str">"cmt">// 创建名为 Q2 的水平线对象
ObjectCreate(class="num">0,"Q3",OBJ_HLINE,class="num">0,class="num">0,q3);
class=class="str">"cmt">// 创建名为 Q3 的水平线对象

◍ 四分位理论:250点增量的关键位画法

价格不管在趋势里还是盘整里,都会在某些区间反复折返,这是所有市场的共性。要把这种折返的边界量化出来,四分位理论给了一个很直接的标尺:重大波动往往落在两个“大四分位点”之间,且以 250 PIPs 为固定步长逐级推进。 这套框架由 Ilian Yotov 提出,他在外汇交易者圈子里因为 TraderTape.com 和日播节目《All Things Forex》被广泛认知。核心用途不是预测方向,而是把支撑阻力位用等分线标死,让你一眼看到潜在反转或延续区。 本篇是系列第一篇,只做一件事:用 MQL5 脚本自动把四分位水平线画到 MT5 图表上。外汇和贵金属杠杆高、滑点大,画线只是起点,真要下单还得结合当下波动率判断,胜率只是概率而非必然。后续我们会把这套线扩展成信号和高级分析工具。

把整数价位切成四瓣看价格停顿

四分位框架先把主要整数位之间的跨度定成“主步长”,EUR/USD 上就是 0.1000 这一段,比如 1.2000 到 1.3000。再把这段均分成四份,得到三条大四分位线,分别对应 1.2250、1.2500、1.2750,价格在这些位置附近容易出现暂停、反转或加速。 更细一层是每个 100 点区间还能切出小四分位线,但实战里核心还是盯大四分位线。每条大四分位线外侧会画一小段超调/欠调带,用来容纳价格短暂刺穿或没够到的毛刺,这类毛刺往往藏着修正或反转的早期信号。 这套画法在 MT5 里靠 Quarters Drawer 脚本落地,它用不同颜色和线型把主位、大四分位、小四分位分开画,加载后直接在图上标出关键区间。外汇和贵金属波动受杠杆与消息驱动,高风险,四分位只给概率上的支撑阻力参考,不构成方向保证。

「把四分位网格脚本拆开看参数与绘制逻辑」

脚本头部用 #property strict 强制编译检查,并声明版权与版本,避免 MT5 里同名脚本冲突。输入参数把控制权交给使用者:MajorStep 默认 0.1000,决定主区间间隔;三个布尔开关 DrawLargeQuarters、DrawSmallQuarters、DrawOvershootAreas 全为 true 时,大四分位、小四分位和超调区都会被画出。 颜色直接用十六进制写死:0x2F4F4F 是深石板灰(红47、绿79、蓝79),用作主线;0x8B0000 深红(红139)标大四分位;0x00008B 深蓝(蓝139)标小四分位;超调区用内置 clrRed,等价于 RGB(255,0,0)。改这些 input 颜色值,不用动核心函数就能换肤。 绘制水平线的函数先按名字查对象,存在就删,再建新线并横跨整个图表。OnStart 里先取交易品种和买价,取不到就退出;随后把现价按 MajorStep 向下取整得到下边界,加间隔得上边界,两条主线构成框架。 大四分位开启时,主区间被四等分画线,若同时开超调标记,每条大线上下再补线,提示价格可能短暂越界。小四分位则把主区间切十份再细分,形成密网格,对贵金属或外汇剥头皮的入场位参考更有用——但外汇/贵金属杠杆高,网格只是概率参考,不是支撑阻力铁律。 收尾处脚本在右上角贴带版本号的标签,并调用图表重绘,线条和标签立刻刷新。整套逻辑模块化,你拷到 MT5 脚本目录改 MajorStep 为 0.0500,就能看黄金 5 美金一格的细分效果。

MQL5 / C++
class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//|                                             Quarters Drawer.mql5|
class=class="str">"cmt">//|                    Copyright class="num">2025, Christian Benjamin|
class=class="str">"cmt">//|                [MQL5官方文档]
class=class="str">"cmt">//+------------------------------------------------------------------+
class="macro">#class="kw">property copyright "Christian Benjamin"
class="macro">#class="kw">property link      "[MQL5官方文档]
class="macro">#class="kw">property version   "class="num">1.0"
class="macro">#class="kw">property strict
class=class="str">"cmt">//---- Input parameters -------------------------------------------------
input class="type">class="kw">double MajorStep          = class="num">0.1000;   class=class="str">"cmt">// Difference between major whole numbers.
input class="type">bool   DrawLargeQuarters  = true;     class=class="str">"cmt">// Draw intermediate large quarter lines.
input class="type">bool   DrawSmallQuarters  = true;     class=class="str">"cmt">// Draw small quarter lines.
input class="type">bool   DrawOvershootAreas = true;     class=class="str">"cmt">// Mark overshoot/undershoot areas for large quarter lines.
class=class="str">"cmt">//---- Color settings ---------------------------------------------------
input class="type">class="kw">color  MajorColor         = 0x2F4F4F; class=class="str">"cmt">// Dark Slate Gray for major lines.
input class="type">class="kw">color  LargeQuarterColor  = 0x8B0000; class=class="str">"cmt">// Dark Red for large quarter lines.
input class="type">class="kw">color  SmallQuarterColor  = 0x00008B; class=class="str">"cmt">// Dark Blue for small quarter lines.
input class="type">class="kw">color  OvershootColor     = clrRed;   class=class="str">"cmt">// Red for overshoot/undershoot lines.
class=class="str">"cmt">//---- Group style and thickness settings -------------------------------

常见问题

用四分位绘图脚本,设定步长250点并指定起点价,脚本会自动沿垂直方向生成多条水平参考线,无需手动拉线。
将相邻整数位区间均分四等份,标出三个四分位价;观察价格在这些价位附近是否出现减速、影线或反复穿越,作为潜在停顿区。
小布可自动加载四分位网格并标注近期价格在四分位处的停顿次数,你打开对应品种页即可直接看诊断,不必自己画线统计。
BasePrice偏离实际价位会让整组参考带错位;Step过小线过密、过大则漏掉关键位,建议先按250点增量回看历史再微调。
贵金属波动点数不同,需把步长从250点改为适配品种的点值(如黄金常用500~1000点),并警惕高杠杆下的快速扫损风险。