Market Profile (市场功能)
市场概况 MetaTrader 指标——是一款经典的市场概况指标;它可以显示不同时间的价格密度,并绘制最重要的价格水平、值区和指定交易时段的控制值。这项指标可以用于 M1 和 D1 之间的时间周期,还可以显示日线、周线、月线甚至是日内时段的市场概况。时间周期更短,则准确性更高。您也可以使用自由绘制的矩形时段在任何时间周期上创建自定义市场概况。时间周期更长,则可视性更佳。可选用 6 种不同的颜色方案来绘制市场概况的图块。市场概况可以被绘制为纯色直方图。或者,您可以选择根据看涨/看跌蜡烛图来设置概况颜色。这项指标基于大致的价格行为,不采用任何标准 MetaTrader 指标。它它可以在 MetaTrader 4、MetaTrader 5 及 cTrader 平台上使用。
输入参数
主要参数
- Session(默认值 = Daily)— 市场概况的交易时段:每日、每周、每月、日内和矩形。对于要计算的矩形时段,矩形图表对象须取名为“MPR”才能添加至图表中。按下键盘上的“r”键将自动添加一个已正确命名的矩形对象。
- StartFromDate(默认值 = __DATE__)— 如果 StartFromCurrentSession 为 false,则指标将从此日期开始绘制曲线。从当前日期向之前的日期绘制。例如,如果设置为 2016-01-20,而且 SessionsToCount 为 2,则将绘制 2016-01-20 和 2016-01-19 的曲线。
- StartFromCurrentSession(默认值 = true)— 如果为 true,则指标从当日开始绘制,否则就从 StartFromDate 中给定的日期开始。
- SessionsToCount(默认值 = 2)— 绘制市场曲线时对应的交易期数。
- SeamlessScrollingMode (默认值 = false) — 如果为 true,则忽略 StartFromDate 及 StartFromCurrentSession;时段将从当前图表位置的最右侧烛图开始计算及显示。这样做可以无限期地向后滚动,以查看历史时段。
- EnableDevelopingPOC (默认值 = false) — 如果为 true, 将绘制多条水平线来描述控制点在整个会话中的发展情况。
- EnableDevelopingVAHVAL (默认值 = false) — if true, multiple horizontal lines will be drawn to depict how the Value Area High and Value Area Low developed through the session.
- ValueAreaPercentage (默认值 = 70) — 包含在价值区域里 TPO 会话中的百分比份额。
外观与颜色
- ColorScheme(默认值 = Blue_to_Red)— 市场概况图块的配色方案:
- 蓝色 至 红色
- 红色 至 绿色
- 绿色 至 蓝色
- 黄色 至 蓝绿色
- 品红色 至 黄色
- 蓝绿色 至 品红色
- SingleColor (默认 = clrBlue) — 如果 ColorScheme 被设为 Single_Color,这个颜色将被用来绘制市场概况。
- ColorBullBear (默认 = false) — 如果为true,概况图块的颜色并不取决于原始烛图的时间值,而是取决于朝向。
- MedianColor(默认值 = clrWhite)— 控制值(中间值)的颜色。
- ValueAreaSidesColor (默认值 = clrWhite) — 值域侧边框的颜色。
- ValueAreaHighLowColor (默认值 = clrWhite) — 值域顶部和底部边框的颜色。
- MedianStyle (默认值 = STYLE_SOLID) — “控制点”(中值)线段形式。
- MedianRayStyle (默认值 = STYLE_DASH) — “控制点”(中值)射线形式。
- ValueAreaSidesStyle (默认值 = STYLE_SOLID) — 价值区域四周边框的形式。
- ValueAreaHighLowStyle (默认值 = STYLE_SOLID) — 价值区域顶部和底部边框的形式。
- ValueAreaRayHighLowStyle (默认值 = STYLE_DOT) — 价值区域顶部和底部射线的形式。
- MedianWidth(默认值 = 1) — “控制点”(中值)线段宽度。
- MedianRayWidth(默认值 = 1) — “控制点”(中值)射线形式。
- ValueAreaSidesWidth(默认值 = 1) — 价值区域四周边框的宽度。
- ValueAreaHighLowWidth(默认值 = 1) — 价值区域顶部和底部边框的宽度。
- ValueAreaRayHighLowWidth(默认值 = 1) — 价值区域顶部和底部射线的宽度。
- ShowValueAreaRays(默认 = None)— 可设置为将值域的最高价与最低价显示于图表右侧。可以设置为“前一个时段”、“当前时段”、“前一个及当前时段”、“所有之前时段”或“所有时段”。
- ShowMedianRays (默认 = None) — 可设置为将中值显示于图表右侧。可以设置为“前一个时段”、“当前时段”、“前一个及当前时段”、“所有之前时段”或“所有时段”。
- RaysUntilIntersection (默认值 = Stop_No_Rays) — 定义中值和值域线在触及下一个交易时段的价格范围时被切断的方式:
- Stop_No_Rays — 值域线在任意位置都不会被切断。
- Stop_All_Rays — 所有值域线均在与另一个时段的价格交叉时被切断。
- Stop_All_Rays_Except_Prev_Session — 除了上一个时段的值域线以外,所有值域线均在与另一个时段的价格交叉时被切断。
- Stop_Only_Previous_Session — 只有前一个时段的值域线会在与另一个时段的价格交叉时被切断。
- HideRaysFromInvisibleSessions (默认 = false) - 如果为 true,在您滚动回去之前,将不会显示从屏幕左侧边缘后方开始的会话射线。
- TimeShiftMinutes(默认 = 0)— 用于切换时段,以分钟为基础。正值将时段起点向左移;负值——向右移。
- ShowKeyValues (默认 = true) — 如果为true,值域最高价、值域最低价及控制点将显示于市场概况的左侧。
- KeyValuesColor (默认 = clrWhite) — 值域最高价、值域最低价和控制点的输出颜色。
- KeyValuesSize (默认 = 8) — 值域最高价、值域最低价和控制点的输出字体大小。
- ShowSinglePrint (默认 = No) — 可以设为“左侧”或“右侧”,并将标记单个打印概况(市场概况的一部分,仅一个TPO宽)。
- SinglePrintRays (默认值 = false) — 如果为真, 单独打印边缘以射线形式标注。
- SinglePrintColor (默认 = clrGold) — 当ShowSinglePrint未设置为“否”时,单个打印标记的颜色。
- SinglePrintRayStyle (默认值 = STYLE_SOLID) — 单独打印射线形式。
- SinglePrintRayWidth(默认值 = 1) — 单独打印射线宽度。
- ProminentMedianColor (默认 = clrYellow) — 当ProminentMedianPercentage设为 100或更低值时,突出中值(PPOC)的颜色。
- ProminentMedianStyle (默认值 = STYLE_SOLID) — 如果ProminentMedianPercentage 设置为 100 或更少时,突出中间(PPOC)的形式。
- ProminentMedianWidth(默认值 = 4) — 如果ProminentMedianPercentage 设置为 100 或更少时,突出中值(PPOC)的宽度。
- RightToLeft (默认 = false) — 如果为true,则当前交易时段市场概况的直方图将从右向左绘制。如果时段设为矩形,则所有时段的市场概况将从右向左绘制。
表现
- PointMultiplier (默认 = 1) — 该值越高,概况价格框就越宽,图表对象也越少。您可以用它来减少指标在 CPU 的上的负载。当值为零时,将使用自适应乘数 — 指标会尝试自动计算最佳值。
- ThrottleRedraw (默认 = 0) — 每次重新绘制市场概况之前将应用的延迟秒数。您可以用它来减少指标在 CPU 的上的负载。
- DisableHistogram (默认 = false) — 如果为true,则不会绘制市场概况直方图,但仍会标记“值区”和“中值”。这会让指标拥有极快的处理速度,但对整体市场分析的用处没有那么大。
Alerts
- AlertNative (默认 = false) - 如果为 true,当满足某些条件时,指标将发送平台本地弹出提醒。
- AlertEmail (默认 = false) - 如果为 true, 当满足某些条件时,将发送 MetaTrader 邮件提醒。应在 MetaTrader 中正确地设置邮件,设置方式为:工具->选项->邮件。
- AlertPush (默认 = false) - 如果为 true, 当满足某些条件时,将发送 MetaTrader 推送通知提醒至您的移动设备。应在 MetaTrader 中正确地设置通知,设置方式为:工具->选项->通知。它在 Ctrader 版本中不可用。
- AlertArrows (默认 = false) — 如果为 true, MetaTrader 将在满足一些提醒条件时在图表上绘制箭头。
- AlertCheckBar (默认 = Previous) - 可控制用于查看提醒条件的蜡烛图。当前 - 指标将检查当前未完成的烛图;可能会发送多条提醒。上一个 - 指标将检查前一根(已完成)烛图;提醒将会延迟,但更加简洁。
- AlertForValueArea (默认 = false) - 如果为 true,当值区射线(高线或低线)与价格交汇时,将发送提醒。
- AlertForMedian (默认 = false) - 如果为 true,当中值射线与价格交汇时,将发送提醒。
- AlertForSinglePrint (默认 = false) - 如果为 true,当单次打印射线与价格交汇时,将发送提醒。
- AlertOnPriceBreak (默认 = false) - 如果为 true,当价格突破任意触发位,然后又返回它后方时,将发送提醒。
- AlertOnBarClose (默认 = false) - 如果为 true,当蜡烛图的开盘价与触发位在同一侧,并在另一侧收盘时,将发送提醒。
- AlertOnGapCross (默认 = false) — 如果为 true,当触发位出现在前两根烛图的价格跳空内时,将发送提醒。
- AlertArrowCodePB (默认 = 108) - 用于价格突破提醒箭头的箭头代码。
- AlertArrowCodeCC (默认 = 110) — 用于蜡烛图结束提醒箭头的箭头代码。
- AlertArrowCodeGC (默认 = 117) — 用于跳空交汇提醒箭头的箭头代码。
- AlertArrowColorPB (默认 = clrRed) - 当价格突破提醒箭头时的箭头颜色。
- AlertArrowColorCC (默认 = clrBlue) - 当蜡烛图结束时提醒箭头的颜色。
- AlertArrowColorGC (默认 = clrYellow) - 用于跳空交叉点提醒箭头的箭头颜色。
- AlertArrowWidthPB (默认 = 1) - 价格突破时提醒箭头的箭头宽度。
- AlertArrowWidthCC (默认 = 1) - 蜡烛图结束时提醒箭头的箭头宽度。
- AlertArrowWidthGC (默认 = 1) - 用于跳空交叉点提醒箭头的箭头宽度。
日内时段
- EnableIntradaySessionN(默认值 = true)— 如果该值为 true 且 时段被设为日内,则指标将被尝试绘制在图表上的日内市场概况 #N。
- IntradaySessionNStartTime(默认值 = "HH:MM")— 日内交易时段 #N 的起始时间,其显示格式为 HH:MM。
- IntradaySessionNEndTime(默认值 = "HH:MM")— 日内交易时段 #N 的结束时间,其显示格式为 HH:MM。
- IntradaySessionNColorScheme(默认值 = Blue_to_Red)— 日内时段 #N 的配色方案。
其他
- SaturdaySunday (默认 = Normal sessions) — 如何处理周六及周日时段:
- Normal sessions — 周六和周日将被视为普通时段,并包含它们自己的每日及日内时段。
- Ignore Saturday and Sunday — 周六和周日的蜡烛图将被忽略。
- Append Saturday and Sunday — 周六烛图将附加至周五时段;周日烛图将附加至周一时段。
- DisableAlertsOnWrongTimeframes (默认 = false) — 如果为true,将不会弹出关于市场概况的时间周期/时段组合出错的提醒。
- ProminentMedianPercentage (默认 = 101) — 如果要突出显示中值(PPOC),中值内应该出现的所有可能的TPO比例。例如,将它设为50%后,如果它在M30时间周期上的每日时段内至少含有24个TPO,中值将被标记为突出。如果设为101,则不可能显示突出中值。
示例
每日时段
图表屏幕显示了2日外汇交易时段计算得出的市场概况。时间框架为30分钟图表,第二日仍在进行当中。最早的价格标记为蓝色,最后的价格为红色。中值和值域使用白线标记,并显示最重要的价格区域。如果突破行为的交易量不够大,交易商更倾向于返回那些区域。以高交易量突破这些区域意味着真实的突破。了解更多关于市场概况的内容,请查阅此简短的电子书:市场概况书籍。
看涨/看跌颜色
以下示例显示“市场概况”如何根据时段内每根条形的方向,而不是时间来绘制颜色。这样配色的前提是将ColorBullBear设置为true。
矩形时段
以下示例显示指标如何根据交易者自由绘制的矩形图表对象来显示市场概况。为此,矩形对象须取名为“MPR”,而“时段”输入参数须设为“矩形”。您可以按下键盘上的“r”键自动在表格中添加该矩形。
从右向左显示
“市场概况”指标也可以从右向左绘制直方图。与传统的从左向右的显示方法不同,这种显示有助于关注当前的交易时段,而不会模糊图表。您可以在下方的图表屏幕截图中查看其操作方式。
cTrader
市场概况(Market Profile)指标也可以作为一项免费的 cTrader 指标使用吧。它与 MetaTrader 上的同类指标非常相似,但不能与推送通知提醒一起使用。
下载 (ver. 1.23, 2024-05-20)
市场概况正通过一个专用的GitHub仓库开发。我们鼓励您积极地参与这项指标的改进。您可以通过pull-request提交您设计的功能,也可以审核现有的建议、修改和修复等。
MT4/MT5
MetaTrader 4 Market Profile zip 格式 MetaTrader 4 Market Profile mq4 格式 MetaTrader 5 Market Profile zip 格式 MetaTrader 5 Market Profile mq5 格式讨论
您有关于此指标的任何建议或问题吗?您可以始终与其它交易者或MQL程序员在我们的外汇论坛讨论Market Profile。
更新日志
1.22 — 2023/6/14
- 在 MT4 版指标中添加了输入参数的标题。
- 提升了从右至左和无缝滚动模式的性能。
- 修复了在 MT5 中无缝滚动模式下配置文件闪烁的问题。
1.20 — 2022/12/7
- 增加了用于历史信息的箭头提醒 - 对于已生成提醒的历史时段,其箭头会立刻显示出来。
- 修正了无缝滚动模式下的射线。
- 修复了如果未打开其他提醒类型就无法显示提醒箭头的错误。
- 修复了当单份打印射线未正确隐藏时的小错误。
- 修改了 AlertCheckBar 输入参数从当前切换至前一个的默认值。
- 修复了在“矩形”对话模式中当矩形被移除时箭头也被移除的错误。
1.19 — 2022/5/17
- 添加了箭头提醒功能。
- 添加了无缝滚动模式,以便从当前图表窗口最右侧的蜡烛图开始显示时段。这有助于分析历史时段,且无需不断地返回指标的输入参数。
- 修复了 SinglePrint 的线样式及宽度的输入参数类型。
- 修复了在某些情况下可能会将值区及 POC 线显示在错误时段的错误。
- 修复了 RaysUntilIntersection 参数值的描述。
- 修复了随机的指标绘制值可能会显示在 MT5 版指标中的问题。
- 修复了值区线可能会在 MT5 版指标中消失又出现的问题。
- 修复了当前交易时段未正确删除单次打印的错误。
1.18 — 2022-01-12
- 添加了穿过中值(控制点)、值区及单次打印区时的提醒。
- 添加了新的射线绘制模式(通过 HideRaysFromInvisibleSessions 输入参数),如果源会话位于屏幕左边缘后方,则射线不会显示在图表上。这有助于在同时处理多个会话时减少图表混乱。
- 提升了 MT4 及 MT5 指标版本的表现。
- 修复了最新 MT5 版本中会话颜色的错误。
- 固定了值区的最低边缘 - 现在用实际水平绘制。
- 修复了当新会话开始时所有射线可能会消失的错误。
1.17 — 2021/07/17
- 已添加开发 POC 选项,以显示在会话中所开发的“控制点(中值)”。
- 已为所有线段和射线的形式和宽度添加输入参数。
- 已添加快捷键(r),以便在矩形会话模式中放入已正确命名的矩形图表对象。
- 已添加在“价值区域”中控制应捕捉多少 TPO(配置文件的构建块)的输入参数(ValueAreaPercentage)。
- 已添加单点打印射线选项,以标注单点打印配置文件范围的边缘。
- 已修复时区切换参数(TimeShiftMinutes)以便正确应对当前的工作会话。
1.16 — 2020/12/07
- 添加输入参数(DisableHistogram),以阻止指标绘制概况直方图(TPO)。值区和控制点仍以这种方式绘制。
- 添加输入参数(RightToLeft),以便从右向左显示直方图。非矩形时段类型适用于当前交易时段,矩形会话类型适用于所有交易时段。
- 将PointMultiplier输入参数设为0(目前为默认值),以添加自适应点乘数选项。
1.15 — 2020/07/14
- 增加“矩形”时段类型,以显示基于添加至图表的矩形对象的市场概况。它适用于任何时间周期。矩形须取名为"MPR”才能被指标检测到。
- 增加单打印高亮显示(ShowSinglePrint和SinglePrintColor输入参数)。
- 增加突出中值(PPOC) 的高亮显示(ProminentMedianPercentage和ProminentMedianColor输入参数)。
1.14 — 2020/01/26
- 将ValueAreaColor输入参数替换为两个单独的参数:ValueAreaSidesColor和ValueAreaHighLowColor,以便更好地控制值域在图表上的显示方式。
- 修改RaysUntilIntersection输入参数,以便更好地控制值域或控制点(中值)线在与其他时段交叉时被切断的方式。
- 修复了MT5版本中的取整误差,使值域偏向更高的价格。
- 修复了MT5版本中的一个错误。使用Single_Color方案并将SingleColor参数设置为
clrNone
时,该错误会导致配置文件块以白色显示,而不是无显示。 - 忽略了MT4版本中的一个配色问题。该问题会导致图表变色、闪烁以及配置文件出现可见间隙。
1.13 — 2019/10/18
- 增加ColorBullBear输入参数,以根据烛图朝向设置市场概况的颜色。
- 增加DisableAlertsOnWrongTimeframes输入参数,以禁止弹出关于市场概况时间周期出错的提醒。
- 增加可选输出功能,可输出每个概况的值域最高价、值域最低价和控制点值。
- 增加该指标MT5版输入参数的分组。
1.12 — 2019/03/27
- 增加RaysUntilIntersection输入参数,用于隐藏前一个时段的中值线以及已被新交易时段打乱的值域线。
- 修复了当交易对象
TickSize
大于_Point
× PointMultiplier时的TPO显示问题。
1.11 — 2019/01/20
- 修复了构建当前时段时概况中可能出现空洞的问题。
- 修复了当前时段概况无法从第一根烛图开始绘制的问题。
- 修复了一些潜在的“数组超出范围”的问题。
1.10 — 2018/12/25
- 修复了用市场概况指标重新打开旧图表时潜在的数组超出范围问题。
1.09 — 2018/12/24
- 增加两个替代选项,可用于处理周六及周日蜡烛图。
- 增加了更多用于显示中值及值域线的灵活性。
- 修改了中值,可在值域内将它绘制为单线。
- 大幅减少了工作数组的大小,这应该可以加快一些交易工具市场概况的计算。
1.08 — 2018/05/28
- 已添加根据时间周期和会话类型而变化的智能色彩分级。
- 已添加将前一个会话的中值(控制点)绘制于图表右侧的选项。
- 已添加单色方案。
- 已添加 PointMultiplier 输入参数,使交易者能够设置更宽的概况框并提升指标表现。
- 已添加 ThrottleRedraw 输入参数;它可以延迟指标的显示更新,并有助于减少它在 CPU 上的荷载。
- 修复了当错误图表对象的命名历程导致市场概况显示异常的问题。
- 将硬初始化失败改为软初始化——这将防止在用到错误的时间周期和会话类型组合时重设输入参数。
1.07 — 2018/02/06
- 已增加四个日内时段支持。
- 增加三种用于绘制市场概况的配色方案。
- 已进行一些小的代码调整和改进。
1.06 — 2017/11/30
- 添加了当”市场概况“与图表模板一起使用进行适当进行对象清理的功能。
1.05 — 2017/11/23
- 用户可以选择是否显示前一个时段的值区最高价/最低价曲线。
- 增加时间切换输入参数,以便移动时段的时区。
1.04 — 2016/11/07
- 已修复“数组超出范围”错误。
1.03 — 2016/01/25
- 增加三个时段支持:日线、周线和月线。
- 将删除图表对象修改为仅删除指标对象。
- 已优化执行速度。
- 已扩大所支持的时间周期范围。
- 增加内联指标描述。
- 已优化界面(列举输入参数)。
- 已修复一些潜在的“数组超出范围”错误。
- 重写代码,使之符合当前的 MQL4 和 MQL5 标准。
1.01 — 2011/12/11
- 已修复由于 MQL5 新编码规范所引起的兼容问题。
1.00 — 2010/07/23
- 已发布用于 MT4 和 MT5 的原创市场概况。