技术指标

将Pine脚本转为MQL5的斐波那契布林带指标
MetaTrader5
将Pine脚本转为MQL5的斐波那契布林带指标

大家好!今天要给大家分享一个非常实用的指标——斐波那契布林带(Fibonacci Bollinger Bands)。这个指标是将Pine脚本(由Rashad开发)转换为MQL5语言的结果。它将布林带的强大功能与斐波那契水平结合,帮助交易者更有效地识别动态支撑和阻力区域。 功能特点: 自动计算布林带上的斐波那契水平。 为突破和反转交易提供独特的视角。 与MetaTrader 5完全兼容。 这个指标非常适合那些寻找增强技术分析工具的交易者。快来下载并测试一下吧! 以下是Pine脚本代码: study(shorttitle="FBB", title="Fibonacci Bollinger Bands", overlay=true) length = input(200, minval=1) src = input(hlc3, title="Source") mult = input(3.0, minval=0.001, maxval=50) basis = vwma(src, length) dev = mult * stdev(src, length) upper_1= basis + (0.236*dev) upper_2= basis + (0.382*dev) upper_3= basis + (0.5*dev) upper_4= basis + (0.618*dev) upper_5= basis + (0.764*dev) upper_6= basis + (1*dev) lower_1= basis - (0.236*dev) lower_2= basis - (0.382*dev) lower_3= basis - (0.5*dev) lower_4= basis - (0.618*dev) lower_5= basis - (0.764*dev) lower_6= basis - (1*dev) plot(basis, color=fuchsia, linewidth=2) p1 = plot(upper_1, color=white, linewidth=1, title="0.236") p2 = plot(upper_2, color=white, linewidth=1, title="0.382") p3 = plot(upper_3, color=white, linewidth=1, title="0.5") p4 = plot(upper_4, color=white, linewidth=1, title="0.618") p5 = plot(upper_5, color=white, linewidth=1, title="0.764") p6 = plot(upper_6, color=red, linewidth=2, title="1") p13 = plot(lower_1, color=white, linewidth=1, title="0.236") p14 = plot(lower_2, color=white, linewidth=1, title="0.382") p15 = plot(lower_3, color=white, linewidth=1, title="0.5") p16 = plot(lower_4, color=white, linewidth=1, title="0.618") p17 = plot(lower_5, color=white, linewidth=1, title="0.764") p18 = plot(lower_6, color=green, linewidth=2, title="1") MQL5示例:

2024.12.04
优化MetaTrader 5的经济日历监测与历史回测
MetaTrader5
优化MetaTrader 5的经济日历监测与历史回测

MetaTrader 5的经济日历与历史报价不同步简而言之:MetaTrader 5内置的经济日历与历史报价并不完全同步。每个报价都带有时间戳,这些时间戳是根据每个对应K线形成时服务器所在时区来标记的。一旦K线形成,它们的时间戳将保持不变。但经济日历则提供与服务器当前时区相关的过去、现在和未来事件的信息。由于许多经纪商遵循特定的时区安排,包括夏令时的开启和关闭,因此历史事件的时间戳相对于相关的K线可能会在一年中的大约一半时间内出现1小时的偏差。此外,经纪商有时更改时区的方式比简单的夏令时切换还要激进。历史报价可能因此在经济事件发生时的时间上出现数小时的偏移,而这些事件现在却在更新后的时区中被日历所报告。考虑到新闻来自不同国家,各自的夏令时安排又不同,而你的服务器可能位于其他时区,新闻发布的时间在图表上可能会“跳跃”。这在春季和秋季的几周内尤为明显。这些在在线交易中似乎不那么重要,但如果我们想测试基于新闻的策略呢?是的,虽然可以说MetaTrader的测试器不支持经济日历,但许多交易者喜欢交易新闻,而其他人则应该密切关注新闻,以便在市场因新闻而剧烈波动前提前退场。因此,带有经济日历的回测非常重要。这就是为什么将日历导出到外部存储(文件或数据库),然后再导入到测试器中显得非常合理的原因。书中介绍了这样的日历归档工具:算法交易书籍。在这里,我们遇到了历史报价与历史事件脱节的问题。为简单起见,书中没有解决这个问题。现在,这个问题通过扩展版的CalendarCache.mqh和展示指示器CalendarMonitorCachedTZ.mq5得到了很好的解决。这是书中CalendarMonitorCached.mq5的一个略微修改的版本。该指示器监控新闻事件,并动态更新图表上的表格,显示若干过去和即将发生的事件。所有与时间纠正相关的工作都在幕后完成——在另一个公共库TimeServerDST.mqh中。为了更好地理解时间纠正的工作原理,可以使用脚本CalendarCSVForDates.mq5并并排比较带与不带纠正的CSV文件。以下是该库是如何嵌入到两个程序的源代码中的——脚本和该指示器。#include <TimeServerDST.mqh> // 在日历缓存之前包含,以启用时区修正支持 #include <MQL5Book/CalendarFilterCached.mqh> #include <MQL5Book/CalendarCache.mqh>与原始指示器一样,这里有一个字符串输入CalendarCacheFile,您可以提供用于写入或读取的日历文件名。当指示器附加到在线图表并且CalendarCacheFile为空时,它会直接使用内置日历。当指示器使用CalendarCacheFile中的特定名称执行并且文件不存在时,指示器将日历记录导出到缓存文件(创建该文件)并退出。这是时间戳应该/可以进行纠正的阶段(见FixCachedTimesBySymbolHistory)。当指示器使用CalendarCacheFile中现有缓存文件的名称执行时,它将加载缓存并像使用内置日历一样工作。这对于测试器尤其有用。请记得,测试器需要指定附加文件,在我们的情况下——准备好的在线日历文件,在指令#property tester_file中,或者您应该将日历文件放入公共文件夹C:/Users/<User>/AppData/Roaming/MetaQuotes/Terminal/Common/。当然,缓存也可以在回测和优化期间加载到EA中。输入字符串FixCachedTimesBySymbolHistory的处理方式如下。如果它为空,指示器将不进行时间纠正保存缓存。要在导出时启用时间纠正,您需要指定一个符号,该符号将用于经验性检测服务器的历史时区。它基于H1报价的历史,最好是“XAUUSD”或“EURUSD”。借助这个输入,指示器的新版本仅添加了几行代码:         if(StringLen(FixCachedTimesBySymbolHistory))             cache[].adjustTZonHistory(FixCachedTimesBySymbolHistory, true); 方法adjustTZonHistory是专门为时间戳调整而引入到CalendarCache类中的,其实现使用了TimeServerDST.mqh的内部。该方法应仅在线调用(而不是在测试器中)。通常,该方法应在从内置日历填充的缓存对象上调用,紧接着填充后进行调用。否则,如果缓存是从日历文件加载的,或者如果该方法之前已被调用,则缓存内容可能已经调整。然后,您将修正重复应用,导致错误的时间戳。第二个参数(true)指示该方法将变更边界写入日志。类似如下:时间修正开始于 2021.07.19 00:30:00 2021.07.19 00:30:00: 148786 -10800 diff=-3600 2021.11.08 01:50:00: 135918 -7200 OK 2022.03.14 04:30:00: 161085 -10800 diff=-3600 2022.11.07 04:00:00: 165962 -7200 OK 2023.03.13 01:50:00: 168500 -10800 diff=-3600 2023.11.06 01:50:00: 169270 -7200 OK 2024.03.11 01:50:00: 181258 -10800 diff=-3600 2024.11.04 02:30:00: 208469 -7200 OK每一行都包含一个事件的时间和ID,其中发现了新的不一致,事件的服务器时间偏移,以及为消除服务器时间在日历缓存时的偏差而必须应用的所有后续时间戳的差异。附带的mqh文件(CalendarFilter.mqh,CalendarCache.mqh,QuickSortStructT(Ref).mqh)包含了与书中原始版本相比的bug修复和改进。更新日志2024年11月11日 - CalendarFilter.mqh, CalendarCache.mqh的小bug修复和更新;2024年11月22日 - CalendarCache.mqh的小bug修复和改进。

2024.11.11
MetaTrader 5极端高低价位指标解析
MetaTrader5
MetaTrader 5极端高低价位指标解析

在交易中,准确识别价格的极端高低点是至关重要的。今天,我想跟大家分享一款用于MetaTrader 5的极端高低价位指标,它能够帮助我们更好地分析市场走势。 指标的工作原理 这个指标通过线条来标记价格极端值。我们可以输入一个时间段,以确定该期间内的最高价和最低价。与传统指标不同的是,它不仅仅依赖于OHLC(开盘、最高、最低、收盘)数据,还会考虑每根K线的买卖报价。为了提高效率,我们还可以设置一个回看数值,以限制处理的K线数量。 智能过滤结构性突破 该指标的另一个亮点是它能够智能识别并过滤掉结构性突破区域。当当前高点或低点被突破时,指标会自动隐藏某些线段,这样我们只会在真正的支撑和阻力区域看到线条。这一功能可以通过输入参数进行控制。如果你喜欢,也可以选择在极端价格上显示线条,同时在市场上升或下降趋势时,线条也会相应地倾斜显示。 版本2.0的新特性 优化了算法,现在只计算当前K线的tick数据,使得该指标在更高的时间框架上运行更加流畅。 移除了不必要的缓存,提高了指标的运行效率。 通过使用这个极端高低价位指标,交易者们可以更清晰地识别市场的关键点,为我们的交易决策提供重要依据。希望大家能在实际操作中好好运用这一工具!

2024.11.09
锤头指标:MetaTrader 5 上的关键反转工具
MetaTrader5
锤头指标:MetaTrader 5 上的关键反转工具

大家好,今天我要和大家聊聊锤头指标,这个在MetaTrader 5图表上非常实用的工具。锤头指标主要用于识别关键的蜡烛图形态,尤其是绿色锤头、红色锤头和倒锤头。这些形态能够帮助我们分析价格反转的潜在点。 锤头的特征通常是小蜡烛体和长下影线,这表明在下跌趋势后可能会出现买入压力。而倒锤头则有所不同,它的长上影线可能暗示在上涨趋势后即将反转。 该指标通过计算蜡烛图的影线和蜡烛体的大小和比例来检测这些形态,主要有三个可调参数: MaxRatioShortWick:设置短影线相对于整个蜡烛的最大比例,用于过滤那些顶部影线较小的形态。 MinRatioLongWick:定义长影线的最小比例,确保识别出的形态在蜡烛体比较长的情况下具有显著的影线长度。 MinCandleSize:指定识别为锤头或倒锤头形态所需的蜡烛体最小大小。 一旦识别出形态,指标会在图表上用指定颜色(绿色或红色)显示箭头,箭头位置靠近蜡烛的最高价或最低价,这取决于形态的方向。代码中的功能可以处理这些图形对象的创建和定位,以及在从图表中移除指标时清理这些对象。 锤头指标非常适合那些希望发现潜在反转的交易者,其参数也可以根据不同的时间框架和市场条件进行调整。它是一个多功能的工具,可以为各种交易策略提供早期的视觉提示,帮助我们捕捉潜在的价格变化。

2024.10.31
MetaTrader 5中的星期、周数及其他数据窗口指标解析
MetaTrader5
MetaTrader 5中的星期、周数及其他数据窗口指标解析

在MetaTrader 5中,有一个非常实用的指标叫做星期显示器(WeekDays),它能够在数据窗口中显示当前的星期几、年度周数、年度天数或K线索引,并且可以选择在图表上以标签形式显示这些信息。 如往常一样,数据窗口中的信息会根据鼠标移动动态更新:左侧栏始终会及时更新当前的星期几名称,而右侧栏的内容则由设置决定,具体是由输入参数 WholePart 和 FractionalPart 决定。每个参数都允许用户选择要显示的内容:星期几、年度周数、年度天数、K线索引,或者不显示。 WholePart - 浮点数前面的整数选择器; FractionalPart - 浮点数后面的数值选择器; 这两个选定的属性(整数值)会合并成一个浮点值,存储在指标缓冲区中。由于其值是合成的,因此缓冲区在图表上是不可见的,样式为 DRAW_NONE。 例如,下面的截图中,星期几的名称是周二,而包含年度天数(Day Of Year index)的缓冲区显示值为 44.302,这意味着这是第44周和第302天。 其他输入参数允许用户指定是否在图表上 显示标签,选择 字体名称、字体大小、字体颜色,以及从上下边缘的 内边距,以及如何 对齐 标签(顶部/中间/底部),还有可选的 旋转角度 用于中间对齐。 默认的 clrNONE 字体颜色意味着与当前图表背景相反的颜色。

2024.10.29
PTB指标:提升MetaTrader 5交易策略的利器
MetaTrader5
PTB指标:提升MetaTrader 5交易策略的利器

指标介绍:PTB.mq5 概述: PTB.mq5指标专为MetaTrader 5交易平台设计,能够计算并展示短期和长期的高低价位,以及基于这些极值的斐波那契回撤水平。 功能特点: - 短期高低价:该指标计算用户定义的短期内的最高和最低价格,帮助交易者识别即时的支撑和阻力位。 - 长期高低价:它还计算长期内的最高和最低价格,为交易者提供更广泛的市场趋势洞察。 - 斐波那契水平:该指标绘制重要的斐波那契回撤水平(23.6%、38.2%、50%、61.8%和78.6%),交易者常用来识别市场潜在的反转点。 输入参数: - shortLength:用于计算短期高低价的蜡烛数。 - longLength:用于计算长期高低价的蜡烛数。 可视化表现: - 该指标为不同的绘制线使用了独特的颜色和宽度:   - 短期高: 红色(宽度:3)   - 短期低: 蓝色(宽度:3)   - 长期高: 绿色(宽度:3)   - 长期低: 橙色(宽度:3)   - 斐波那契水平:     - 78.6%: 紫色(宽度:1)     - 23.6%: 水蓝色(宽度:1)     - 38.2%: 黄色(宽度:1)     - 61.8%: 棕色(宽度:1)     - 50%: 白色(宽度:3) 计算逻辑: - 该指标遍历价格数据,计算短期和长期的最高和最低值。 - 然后根据长期高低价之间的差异计算斐波那契水平。

2024.09.22
首页 上一页 9 10 11 12 13 14 15 16 17 18 19 下一页 末页