Fulcrum Value Profile
- 指标
- 版本: 1.0
- 激活: 5
Fulcrum Value Profile 是一款 MetaTrader 4 指标:为每个交易时段构建 tick 成交量分布(Volume Profile),标出控制点 POC(Point of Control)和价值区(value area),以线条绘制发展中的 POC/VAH/VAL,跟踪未被触及的 POC(naked POC),并在已收盘K线上标记两种价值区形态:回到前一价值区内(80% 法则)以及在价值区外被接受(突破)。本指标从不开仓、修改或平仓。
快速开始
- 将指标加载到 M5、M15 或 M30 图表。
- 保持 Profile Period = Daily session,或选择 Custom session window 并按经纪商服务器时间(市场报价窗口的时钟)设置 Custom Session Start / Custom Session End。
- 数秒内,最近 5 个已完成时段以水平直方图绘出,信息卡显示 ABOVE VALUE、INSIDE VALUE 或 BELOW VALUE。
- 可选:启用 Popup Alert on Signal 或 Push Notification on Signal(需在 工具 > 选项 > 通知 中填写 MetaQuotes ID)。
- 快速验证:在 EURUSD M15 上用可视化策略测试器运行两周;每根信号K线收盘时出现箭头。
分布图的构建方式
- 时段:Daily session = 服务器日 00:00-24:00。Weekly session = 周日至周六(周日的K线归入下一周)。Custom session window = 从 Custom Session Start 到 Custom Session End,可跨越午夜;两个时间相同表示从该时刻起 24 小时;窗口外的K线被忽略。
- 成交量:每根K线的 tick 成交量分配到其最高价与最低价之间的各价格行。Volume Distribution:Uniform across bar range(每行均分)或 Weighted toward close(三角权重,在收盘价所在行最大)。
- 行高:Row Height in Points 大于 0 时使用该值;否则为最近 20 个已完成时段波幅的中位数除以 Target Rows per Profile,并按最小跳动单位取整。信息卡显示行高(ROW)。
- POC:成交量最大的行(并列时取最接近分布中心的行);价格为该行中点。
- 价值区:从 POC 开始,每次加入上下相邻行中较大的一行,直到包含时段成交量的 Value Area Share。VAH = 最高行的顶部,VAL = 最低行的底部。
- 发展中的水平:对每根K线,计算从时段第一根K线到该K线的 POC/VAH/VAL。
- 前一时段水平:上一个已完成时段的最终 POC/VAH/VAL。
- Naked POC:比前一时段更早的已完成时段的 POC,且自该时段结束后没有任何K线穿过(包括正在形成的K线)。被触及后消失。前一时段的 POC 显示为 pPOC,而不是 nPOC。
- 历史:最近 History Bars to Calculate 根K线,从其中第一个完整时段开始计算。
- 周期:每个时段至少需要 4 根K线(Daily session 最高 H4,Weekly session 最高 D1);否则信息卡显示 TIMEFRAME TOO HIGH,且不绘制任何内容。
信号
接受K线数 = Acceptance Time 除以图表周期分钟数,向上取整,至少为 1(30 分钟 = M15 上 2 根,M5 上 6 根,H1 上 1 根)。仅使用已收盘K线;每个时段最多一个信号。时段开盘价为其第一根K线的开盘价,与前一价值区比较。
- RE-ENTRY(80% 法则):时段在 pVAH 上方(或 pVAL 下方)开盘,随后连续“接受K线数”根收盘价位于前一价值区内。信号:上方开盘后为 SELL,下方开盘后为 BUY。目标 = 前一 POC。若该收盘价已越过前一 POC,则本时段不给信号。若之后连续同样根数收盘回到重新进入的边界之外,则为 FAILED。
- BREAKOUT(价值区外被接受):时段在前一价值区内开盘,随后连续“接受K线数”根收盘高于 pVAH + Breakout Buffer x ATR(BUY)或低于 pVAL - Breakout Buffer x ATR(SELL)。目标 = 被突破的边界加/减 Breakout Target x 前一价值区高度。任何一根收盘回到前一 POC 另一侧即为 FAILED。
- 状态(在之后的已收盘K线上检查):ACTIVE、TARGET HIT(K线最高或最低价触及目标)、FAILED、EXPIRED(时段先结束)。
- Signal Types:Re-entry and breakout、Re-entry only (80% rule)、Breakout only。
- 重绘:已收盘K线的数值不会改变;第 0 根K线随每个 tick 更新。箭头在信号K线收盘时出现,不会移动。重新加载会重算历史;使用自动行高时,较早的水平可能略有变化。
图表图例
- 分布图(位于蜡烛后方,从时段起点向右,最长行 = Profile Width):POC 行使用 POC Row Color,价值区内使用 Value Area Row Color,价值区外使用 Outside Row Color。
- 金色实线:发展中的 POC。紫色点线:发展中的 VAH 和 VAL。线条在每个时段开始处断开。
- 每个已绘制时段上的虚线:前一 VAH 与 VAL(紫色)和前一 POC(黄色)。在当前时段上标注为 pVAH、pPOC 和 pVAL 及其价格。
- 带有 nPOC、时段日期和价格标签的琥珀色点线:naked POC,延伸至右边缘。
- 青色向上箭头(最低价下方 0.5 ATR):BUY。珊瑚色向下箭头(最高价上方 0.5 ATR):SELL。
- 从信号K线到结果的目标虚线,标签为 TARGET(仍为 ACTIVE)、HIT、FAILED 或 EXPIRED。
信息卡
控制:
- [-] 将信息卡折叠成 180 x 26 像素的胶囊,显示指示灯、FULCRUM 和简短状态(ABOVE、INSIDE、BELOW、NO PRIOR、CLOSED、TF HIGH);[+] 展开。
- <> 将信息卡移到下一个角落(左上、右上、右下、左下)。
- 不保存:切换周期、重新加载或修改参数后,恢复为 Card Corner 设置和展开状态。
读数(距离以点为单位,正值 = 价格高于该水平):
- 指示灯和徽章:ABOVE VALUE(翠绿,价格高于 pVAH)、INSIDE VALUE(紫色)、BELOW VALUE(珊瑚色,价格低于 pVAL)、NO PRIOR SESSION(历史中的第一个时段)、OUTSIDE SESSION(自定义窗口已关闭)、TIMEFRAME TOO HIGH、LOADING(等待历史数据)。右侧:DAILY、WEEKLY 或自定义窗口,以及周期。
- DEVELOPING(角落:ROW 行高与价值区比例):dPOC 及距离;dVAH/dVAL;SKEW = 时段成交量位于 dPOC 行上方与下方的比例(上方 55% 起为绿色,45% 及以下为珊瑚色);MIGRATION = HIGHER(发展中的 VAL 高于 pVAH)、LOWER(发展中的 VAH 低于 pVAL)或 OVERLAP。
- PRIOR VALUE(角落:OPEN ABOVE VALUE、OPEN INSIDE VALUE 或 OPEN BELOW VALUE):pPOC 及距离;pVAH/pVAL;VA METER = 从 pVAL(左)到 pVAH(右)的进度条,显示价格位置百分比,金色刻度表示前一 POC;价格在价值区外时显示 ABOVE VAH 或 BELOW VAL 及距离。
- NAKED POCS(角落:untested 数量):ABOVE 和 BELOW = 两侧最近的 naked POC 及距离,或 none。
- LAST SIGNAL(角落:RE+BO、RE 或 BO 以及 ACCEPT 加K线数):类型、方向和K线时间,例如 RE-ENTRY BUY 或 BREAKOUT SELL;TARGET 加价格和状态。没有信号时显示 NO SIGNAL YET。
警报
信号K线收盘时(下一根K线开盘时),通过所有已启用渠道发送:Popup Alert on Signal、Sound Alert on Signal(alert.wav)、Push Notification on Signal、Email on Signal(需在 工具 > 选项 > 电子邮件 中设置)。文本示例:Fulcrum Value Profile EURUSD M15: RE-ENTRY SELL at 1.08452, target 1.08401。Alert on Naked POC Touch 在价格触及 naked POC 时通过相同渠道发送消息。历史数据和策略测试器中不发出警报。
iCustom 缓冲区
0 Developing POC、1 Developing VAH、2 Developing VAL(每个时段第一根K线为空)、3 Buy Signal、4 Sell Signal(箭头价格,否则为 EMPTY_VALUE)、5 dPOC (every bar)、6 dVAH (every bar)、7 dVAL (every bar)、8 Prior POC、9 Prior VAH、10 Prior VAL、11 Signal Target(仅信号K线)。时段外的K线为 EMPTY_VALUE。
double dpoc = iCustom(NULL, 0, "Fulcrum_Value_Profile", 5, 1); // last closed bar double buy = iCustom(NULL, 0, "Fulcrum_Value_Profile", 3, 1); // EMPTY_VALUE = no buy double tgt = iCustom(NULL, 0, "Fulcrum_Value_Profile", 11, 1);
副作用
图表对象前缀为 FVP_,移除指标时一并删除。不写文件,不使用全局变量、定时器、DLL 或网络请求。每个图表只加载一份。
输入参数
- Profile Period(Daily session)。
- Custom Session Start(08:00)和 Custom Session End(17:00):服务器时间 hh:mm,仅用于 Custom session window。
- Target Rows per Profile(50):10-500,在 Row Height in Points = 0 时使用。
- Row Height in Points(0):固定行高;0 = 自动。
- Value Area Share(70):时段成交量的 50-95%。
- Volume Distribution(Weighted toward close)。
- History Bars to Calculate(5000):300 或以上。
- Draw Session Profiles(true)和 Sessions to Draw(5):除当前时段外绘制的已完成时段数,0-30;也限制前一时段水平线和目标线。
- Profile Width(35):最长行占时段长度的百分比,5-100。
- Value Area Row Color、Outside Row Color、POC Row Color:分布图颜色。
- Show Developing Value Area Lines(true):关闭时缓冲区仍保留数值。
- Show Prior Session Levels(true)、Show Naked POCs(true)。
- Naked POC Lookback(20):检查 naked POC 的已完成时段数,0-200。
- Show Signal Arrows(true):只隐藏箭头;信号、信息卡和警报照常工作。
- Signal Types(Re-entry and breakout)。
- Acceptance Time(30):分钟,1-1440。
- Breakout Buffer(0.10):越过边界的 ATR 倍数,0-5。
- Breakout Target(1.0):前一价值区高度的倍数,0.1-10。
- ATR Period(14):用于突破缓冲和箭头间距。
- Show Signal Targets(true):目标线和标签。
- Popup Alert on Signal、Sound Alert on Signal、Push Notification on Signal、Email on Signal、Alert on Naked POC Touch(均为 false)。
- Show Telemetry Card(true)、Card Corner(Top left;另有 Top right、Bottom right、Bottom left)、Card X Offset(16)和 Card Y Offset(24),单位为像素。
常用设置
- 外汇日内:Daily session,M15,默认参数。
- 仅伦敦和纽约时段:Custom session window,Custom Session Start 08:00,Custom Session End 17:00(按服务器时间调整),Signal Types = Re-entry only (80% rule)。
- 波段:H1 上的 Weekly session,Acceptance Time 240,Breakout Buffer 0.20,Sessions to Draw 3。
- 黄金和指数:M15 上的 Daily session,Target Rows per Profile 60,Breakout Buffer 0.15。
说明与风险
MetaTrader 4 提供的是 tick 成交量,而非交易所成交量;分布图是基于K线波幅的估算,因此较低周期得到更精细的分布。信号仅为分析参考,不是交易指令。交易存在亏损风险;过去的表现不保证未来结果。

