请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
指标

Spread Profile by Hour - MetaTrader 5脚本

Quoc Dat Quach
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself.
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
14
等级:
(2)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

“按小时划分的点差分布”功能基于您的经纪商自身的 tick 历史数据,构建每个服务器小时的实际点差分布,并以 24 个柱状图的形式显示中位数和第 90 百分位数。 输入您通常的止损点数,每个柱状图都会显示该小时点差占1R的比例,从而让您一目了然地识别出当天点差成本较高的时段。

欧元兑美元点差走势

EURUSD, tick 计数,50点止损:一天中大部分时间点差为6点(占止损幅度的12%),21:00换点时段点差达34点(68%)

问题所在

对于日内交易和剥头皮交易系统而言,往往是点差而非入场信号决定了交易优势能否维持。交易终端会显示当前点差,但无法显示点差在全天内的变化趋势。一种在市场清淡时段测试成功的策略,在隔夜换点、交易时段开盘或新闻发布前后,即使采用相同的规则,也可能失败,仅仅是因为此时的点差扩大了数倍。

K线历史数据仅存储每根K线的一个点差值,这掩盖了点差的分布情况。该指标直接读取 tick 数据:过去 N 天内的每笔买入/卖出报价,按服务器时间的每小时进行分组。结果是每小时的中位数和第90百分位数,您可以将其与止损位及预期价格波动直接进行比较。

功能

  • 基于过去N个日历日的CopyTicksRange数据,计算出每小时点差的中位数、第90百分位数、均值和最大值(单位:点)。今日数据被排除在外,因此交易时段内图表走势不会发生偏移。
  • 两种采样模式:
    • tick 计数:每个报价仅计数一次。
    • 时间加权:每条报价按其有效时间计数(直至下一条报价,最长60秒)。 tick计数会高估快速市场的点差,而快速市场往往点差最大。时间加权则回答了“在本小时的任意时刻,我将支付多少点差”这一问题。
  • 工作日筛选:所有日子,或单独选择周一至周五。
  • 成本视图:输入您的止损点数(以点为单位),每个K线柱上都会标注该点数下点差中位数所占比例。标题栏显示当前小时的点差中位数和第90百分位数占止损点数的比例。
  • 当前小时内每1.00手交易点差成本的中位数(以账户货币计),根据该交易品种的点值和点差大小计算得出。
  • 按中位数排序的最便宜和最昂贵时段,各最多显示三个。中位数相同的时段将合并显示或汇总,例如“最便宜:23个小时,6点”,因此相同数值绝不会以排名形式呈现。若所有小时的中位数均相同,标题会明确标注。
  • 当前服务器小时高亮显示,实时点差以虚线绘制。当窗口过窄无法在每根柱状图上方显示标签时,最高柱状图将保留其标签。
  • 可选功能:将每小时统计数据导出为 CSV 文件至 MQL5\Files 目录(UTF-8 编码,可在 Excel 中直接打开)。
  • 每次定时器步进加载一天的Tick数据并立即释放,因此即使处理黄金或加密货币(每日100,000个及以上Tick)时,图表仍能保持响应迅速。 对于终端仍在下载的数据日,系统会重试几秒钟;若某天的 tick 数据无法覆盖其 M1 K线,则在使用前会进行重试。 对于早于交易终端 M1 历史数据(图表中的最大 K 线数)的日期,无法通过 K 线验证其完整性;在交易终端下载期间,此类日期只有在 tick 计数停止变化后才会被使用。
  • 首先读取最近的几天。 当连续三个交易日(或所选工作日的连续三天)未返回任何 tick,或者连续十天既无 tick 也无 M1 K 线(时间长度超过任何市场休市期)时,系统会在短暂暂停后再次读取这些日期;如果仍无 tick,则停止加载; 经纪商的 tick 存储中出现缺口也会产生相同效果。若某交易品种没有任何 tick 历史数据,系统将在约 20 秒内显示明确提示;若 tick 历史数据深度小于选定的深度,则仅使用至其起始处。 首次处理较深数据深度时,终端可能仍在下载中;若加载过早停止,请待下载完成后重新连接(第二次运行将从磁盘读取数据)。专家顾问日志中,每次计算都会生成一行摘要。
  • 随后显示图表:默认情况下背景色取自图表颜色,文本和网格颜色会根据深色或浅色背景自动调整,布局会随屏幕 DPI 进行缩放。一个图表上可同时运行多个实例。
  • 无需交易功能、DLL 文件或外部文件。

输入

输入 默认 描述
历史数据深度,以日历日为单位(不包括今天) 20 要读取的距今日之前的天数(1 至 365)。周末也计入天数,因此 20 个日历日相当于 14 至 17 个交易日。
采样 tick 计数 tick 计数或时间加权(参见“功能”)。
工作日过滤器 所有日期 将分析范围限制为某个工作日。同时应增加历史数据深度,因为20个日历日中通常仅包含2到3个特定工作日。
直方图范围,点(范围越宽 = 溢出) 5000 超过此范围的点位将进入溢出区间。落入溢出区间的统计数据将显示为“>5000”。
每小时显示的最小 tick 数 100 点数少于此值的时段将显示为“-”,例如日线间隙。
止损点数,点(0 = 关闭) 0 您的典型止损。0 会关闭百分比标签,并改以点数显示中位数。
100% 缩放时的窗口高度,像素(0 = 可调整大小) 240 指标窗口的固定高度,随屏幕 DPI 缩放。0 表示允许自由调整窗口大小。
背景(无 = 图表背景) 无 “无”使用图表背景。
中位数条 蓝色 中位数条的颜色。
第90百分位数上限(“无”表示条形颜色较浅) 无 “无”将使用该条形颜色的较浅版本。
当前小时 橙色 当前服务器小时的高亮颜色。
实时价差线 红色 实时点差线的颜色。
文本(无 = 自动) 无 “无”会根据深色或浅色背景自动选择易于阅读的颜色。
网格(无 = 自动) 无 “无”会选择与背景相匹配的网格颜色。
字体大小,pt 9 基本字体大小。
将每小时统计数据保存至 MQL5\Files(CSV) false 每次计算后,将文件写入 MQL5\Files\SpreadProfile_<symbol>_<yyyymmdd>.csv。

如何解读

每个柱状图代表服务器时间中的一小时。实心部分为点差中位数:一半的报价(或在时间加权模式下,一半的时间)的点差等于或低于该值。较浅的上界达到第90百分位数:每十个报价中就有一个点差高于该值。 虚线代表实时点差,高亮显示的列为当前服务器小时。以下示例来自截图,这些截图是在模拟账户上采集的,覆盖了 20 个日历日(其中 17 天有 tick 数据)。

  • 欧元/美元,以点为单位计数,50点止损:在24小时中的23小时内,中位数为6点。 在服务器时间21:00(每日隔夜展期时间),点差为34点,第90百分位数为58点。中位数点差在一天的大部分时间里占1R的12%,而在该小时内则占68%。
  • 英镑/美元,时间加权:23小时内为7点,21:00时中位数为46,第90百分位数为94。 在点数计数模式下,同一小时的数据显示为54和100,因为交割时段周围报价最活跃的时刻也伴随着最宽的点差。
  • XAUUSD,点数计数,1500点止损:在有数据的每一小时内,中位数均为182点(占止损幅度的12%,即每手18.20美元),因此标题直接标注该数值,而非对相等值进行排序。 21:00的日间跳空没有报价点,显示为“-”。

点差曲线-GBP/USD-时间加权

GBPUSD,时间加权,未设置止损:23小时内7点,中位数46,21:00时第90百分位数为94

点差概况-XAU/USD

XAUUSD,以点数计,止损位设为1500点:在有数据的每小时内波动182点,每日21:00的间歇时段无点数变动

实际解读:如果您的交易系统在某小时内进行交易,而该小时的点差中位数占止损幅度的很大比例,则应跳过该小时、扩大止损幅度,或确保预期价格波动足以覆盖该成本。第90百分位数可让您了解一种虽不常见但可能出现的糟糕成交情况。

注释与限制

  • Tick 历史数据的深度取决于您的经纪商以及交易终端已下载的数据量。首次对较长周期进行分析可能需要一段时间,因为交易终端需要从服务器下载 Tick 数据。如果 Tick 历史数据在选定的深度之前就结束了,标题栏会显示“之前无 Tick 数据”,并附上所用最早日期的日期。 例如,在测试服务器上,Tick历史数据始于2026年1月1日,而M1K线图则可追溯至数年前。
  • 所有时间均为服务器时间。根据经纪商服务器时区及夏令时规则,诸如每日平仓等事件在夏令时与标准时之间可能存在一小时的偏移。跨越此类转换的历史窗口中,该事件将显示在两个相邻的小时内。
  • 模拟账户和真实账户,以及不同账户类型(标准、Raw、Zero),对于同一交易品种可能存在截然不同的点差。请以您实际交易的账户为准。
  • 点差历史数据并不保证未来的点差水平。受新闻事件、节假日及流动性较低时期的影响,点差可能远高于此处显示的第90百分位数。
  • 每手成本采用当前点值计算,对于交叉货币对,该点值会随汇率波动而变化。
  • 该配置文件会在每个新的服务器日重新计算一次,并且每当输入值、交易品种或时间框架发生变化时也会重新计算。
  • 在测试机上,加载20天的XAUUSD数据(430万个点)约需1至3秒, 90天(1,900万个点)约需8秒,而365天的EURUSD数据(其中232天包含940万个点)约需30秒,这包括在点数据已存入磁盘后,对点历史开始前日期的二次读取。 您的加载时间取决于经纪商的 tick 密度,以及 tick 数据是否已存储在磁盘上。

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77815

iFVG Indicator With Signals iFVG Indicator With Signals

带信号的iFVG指标

ZoneUS30 — US30中的反转与对您有利的掉期 ZoneUS30 — US30中的反转与对您有利的掉期

ZoneUS30 是一款简单的 US30 专家顾问,专注于价格上涨后出现的做空机会。 该策略将均值回归概念与套利交易理念相结合:当空头头寸获得正的隔夜掉期收益时,该EA既能从价格回调中获利,又能从长期持仓中获益。 本策略专为US30设计,仅供实验和教育用途。逆势交易存在重大风险,尤其是使用大仓位时。

Symbol Spec Auditor Symbol Spec Auditor

一个图表面板,用于显示决定仓位规模和交易成本(点值、点差成本、保证金、掉期、成交规则)的合约规格详情(以账户货币为单位),会就那些会悄无声息地破坏手数代码的经纪商设置发出警告,并能将每个“市场观察”符号的审计记录导出为CSV文件。

离散 离散

离散技术指标由价格和交易量的变化决定。