English Русский Deutsch 日本語 Português
preview
基于季节性因素的MetaTrader 5外汇价差交易质量评估

基于季节性因素的MetaTrader 5外汇价差交易质量评估

MetaTrader 5交易 |
22 9
Roman Shiredchenko
Roman Shiredchenko

引言

季节性是指与气候、经济及行为因素相关的周期性价格波动。该现象在商品市场中最为显著,但在外汇与股票市场中同样存在。季节性效应举例:圣诞行情、夏季咖啡价格上涨、一月效应等。

本文介绍如何利用MQL5编写一款用于评估季节性特征质量的指标。该指标既可分析单一品种的季节性,也可分析两个交易品种的价差。它能够识别具有统计显著性的季节性波动,应用加权系数,并生成指定月份的分析报告。


季节性与价差交易

价差交易是指在相关品种上同时开立多单与空单。利润来源于资产间相对价格的变动。与套利不同,价差头寸并非无风险,但其风险通常低于单一资产头寸交易。

价差头寸可分为:

  • 市场内价差 —— 同一市场的不同品种(如货币对、贵金属)。
  • 市场间价差 —— 不同但相关的商品(如“小麦–玉米”)。
  • 交易所间价差 —— 同一商品在不同交易所(如CBOT与KCBT的小麦)。

    在价差交易中运用季节性规律,可降低外部因素影响,提升可预测性。MetaTrader 5平台的SpreadMultiYearComparison指标可用于识别与分析此类规律,既适用于价差分析,也适用于单一资产分析。

    在该指标中,价差通过两个品种开盘价的差值计算,且可对每个品种设置加权系数,以反映其在价差中的相对权重。

    以下是一套可在实战中应用季节性规律的分步算法。遵循该流程有助于识别稳定的市场模式、做出更有依据的交易决策并有效管理风险。

    季节性交易分步方法

    1. 模式分析:研究指标图表,识别逐年重复出现的价差上涨/下跌周期。

    2. 入场点位选择:如果某月份历史上价差持续走高,可在月初开仓。例如,如果观察到价差在特定月份倾向于扩大,可考虑在月初买入价差(买入第一个资产、卖出第二个资产)。

    3. 风险管理:设置止损与止盈,并根据风险承受能力调整仓位。

    SpreadMultiYearComparison指标同样可用于识别单一资产的季节性规律。如果发现某类资产(如能源品种)连续多年在12月倾向于上涨,即可依据该规律在当年12月做出买入决策。

    有时指标图表上并无明确趋势,这种情况在夏季假期尤为常见,市场交投清淡、走势更难预测。在此情况下,可利用指标数据,在包络线边界进行高抛低吸。例如,在通道下沿买入,并在上沿卖出。


    季节性分析方法

    为识别季节性规律,通常采用10至15年的日线历史数据,分析每年选定月份的日线级别波动,数据以去年同期区间为参照进行展示。 

    选择交易品种或价差(如白银或欧元兑美元–英镑兑美元),研究其15年及以上的历史走势,重点关注相同月份(如6月、7月)的规律重复性。如果在75%的年份中价格均在6月持续下跌,则表明存在强季节性。如果不同年份的收益大致相近(如月收益约+5%),则该规律被视为稳定可靠。

    季节性规律同样可用于交易标普500、纳斯达克100等单一金融工具,只需依据识别出的趋势进行操作即可。图例1展示了标普500指数的季节性图表。左侧列为年份,表格中的收益按如下公式计算:月末报价 - 月初首日报价。

    标普500

    图例1. 标普500指数7月份走势概率

    在下图中,黄线代表今年7月价格大概率呈上行走势;橄榄色曲线(绿色箭头上方)为该品种历年统计数据的平均走势线。绿色箭头用于更直观地展示基于整个研究周期的平均值,7月份曲线的变化特征。                                                                               

    标普500指数7月明细                  

     图例1.1. 标普500指数走势概率

    下图展示了英镑兑日元(GBPJPY)8月份的季节性走势:

    英镑兑日元8月行情    

    图例2. 英镑兑日元8月报价走势概率   

    英镑兑日元8月详细数据

    图例2.1. 英镑兑日元8月价格走势概率

    黄色曲线代表该交易品种本年度8月的走势;橙色箭头用于突出走势变化,橄榄绿色曲线为历年统计得出的英镑兑日元平均历史走势。

    下图为经过15年观测统计得出的澳元兑纽元(AUDNZD)8月份季节性价格规律:

    澳元兑纽元8月行情

    图例3. 澳元兑纽元8月报价走势概率   

    澳元兑纽元8月明细
       

    图例3.1. 澳元兑纽元货币对8月价格变动走势

    下图基于15年观测数据,展示澳元兑美元(AUDUSD)8月的季节性走势规律:

    澳元兑美元8月行情

    图例4. 澳元兑美元8月报价走势概率 

    澳元兑美元8月明细 

    图例4.1. 澳元兑美元8月价格变动走势

    以下两组图表基于15年观测数据,展示英镑兑美元(GBPUSD)4月的季节性走势规律:

    英镑兑美元4月行情

    图例5. 英镑兑美元4月报价走势概率

    英镑兑美元4月明细

    图例5.1. 英镑兑美元4月价格变动走势

    以下两组图表基于15年观测数据,展示纽元兑美元(NZDUSD)8月季节性走势规律:

    新西兰元兑美元

    图例6. 纽元兑美元8月报价走势概率

    纽元兑美元8月明细

    图例6.1. 纽元兑美元价格变动走势

    以下两组图表基于10年观测周期,展示WTI原油11月价格季节性走势规律:

    WTI原油11月行情

    图例7. WTI原油11月报价走势概率 

    WTI原油11月明细

    图例7.1. WTI原油11月价格变动走势

    以下两组图表基于15年观测数据,展示了白银兑美元(XAGUSD)6月季节性走势;红色箭头上方粗橄榄色曲线代表该周期白银历史平均价格走势。

    在图8.1中,黄色箭头与黄色曲线代表本年度6月白银价格走势。由此可见,该品种的季节性走势并非每年都会出现。

    白银兑美元6月行情

    图例8. 白银兑美元6月报价走势概率

    白银兑美元6月明细
                                                 

    图例8.1. 白银兑美元 6月价格变动走势

    图例8.1.1中黄色区域代表2025年9月白银期货合约,基于统计概率测算出的本年度6月价格延续走势:

    2025年9月白银MRCI季节性图表

    8.1.1. 2025年9月白银期货

    图例8.1.2为芝商所2025年9月纳斯达克100迷你期货当前图表,预测7月价格整体上行。

    我们将持续跟踪该品种,并在MetaTrader 5中生成对应的分析报告。

    纳指100期货     

                       8.1.2. 2025年9月纳指100迷你期货合约

    这些数据由摩尔研究中心提供,基于期货合约在本年度各月份的季节性走势编制而成。


    季节性价差交易:定义与图表展示

    以下两张图表展示了经过15年观测,白银兑美元与黄金兑美元在1月份的价差季节性走势(指标加载于白银品种上):

    金银价差1月行情

    图例9. 15年观测数据下金银价差1月走势概率

    金银价差明细 

    图例9.1. 金银价差1月价格变动走势

    从图例9与图例9.1中(本文未刻意筛选特定周期与月份)可见:该贵金属价差整体走势、橄榄色历史平均曲线、橙色标注箭头,以及代表本年度价差走势的黄色曲线,全部朝着价差收窄的方向运行。这表明在15年观测周期内,该价差具备统计学有效的中期季节性规律。我们可在指标内设置配比系数:将白银权重设置为1,黄金权重设置为2。

    以下两张图表基于15年观测数据,展示欧元兑美元 - 英镑兑美元价差12月的季节性特征(指标加载在价差第一品种欧元兑美元上):

    欧元兑美元 - 英镑兑美元价差12月行情

    图例10.欧元兑美元 - 英镑兑美元价差12月走势概率

    欧元兑美元 -英镑兑美元价差明细

    图例10.1. 欧元兑美元 - 英镑兑美元价差12月价格变动走势

    橄榄色上行曲线代表观测周期内该月份价差的平均走势,绿色箭头用于突出该趋势;黄色箭头与后续上行的黄色曲线代表本年度12月价差的预期走势。

    以下两张图表基于15年观测周期,展示英镑兑美元 - 纽元兑美元价差4月季节性规律:

    英镑兑美元 - 纽元兑美元价差4月行情

    图例11.英镑兑美元 - 纽元兑美元价差4月走势概率

    英镑兑美元 - 纽元兑美元价差明细

    图例11.1. 英镑兑美元 - 纽元兑美元价差4月价格变动走势

    由此可见,英镑兑美元 - 纽元兑美元价差的历史平均走势曲线(粗橄榄色线)与本年度价差走势曲线(黄色曲线 + 黄色箭头)趋势一致(本文未特意挑选与当前年度走势匹配的历史月份样本)。也就是说,两条曲线均自下而上,价差呈扩大趋势。

    以下两张图表基于15年观测周期,展示英镑兑美元 - 白银兑美元价差6月季节性规律:

    英镑兑美元 - 白银兑美元6月行情

    图例12. 英镑兑美元 - 白银兑美元价差6月走势概率

    英镑兑美元 - 白银兑美元价差明细

    图例12.1. 英镑兑美元 - 白银兑美元价差6月价格变动走势 

    由此可见,本年度6月并未验证该英镑兑美元 - 白银兑美元价差的季节性规律。绿色箭头代表15年观测均值下该组合价差的运行方向,对应曲线为橄榄色。 

    以下两张图表基于15年观测数据,展示WTI - 布伦特原油价差7月季节性规律:

    WTI - 布伦特原油价差7月行情

    图例13. WTI - 布伦特原油价差7月走势概率

    WTI- 布伦特原油价差明细

    图例13.1. WTI–布伦特原油价差7月价格变动走势

    预计今年7月,WTI–布伦特原油价差将呈现季节性走弱。黄线代表本年度价差曲线变化;橙色箭头根据观测期内的平均值,指示下行方向。图表表明,从历史规律看,7月WTI原油跌幅通常大于布伦特原油,因此可做空WTI–布伦特价差。

    请注意,不同经纪商的品种代码可能不同。同时,本指标需加载在价差第一个品种(WTI)的图表上。配比系数为1:1。

    基于季节性的交易质量评估可借助附带指标数据进行,方法如下:    

    • 样本期至少应覆盖10年,最好达到15至20年(需保证观测期内价差品种均有报价,可构建统计关系)。该方法同样可用于分析历史数据,只需从相关平台下载品种历史行情,例如美国芝加哥商业交易所(CME)官网数据。
    • 各年份数据不应存在过大的离散度,数值应保持相近且平稳,如:100...150...90...166...200...150...130...125等。

    样本中各年份不应出现异常极高或极低的月份值(即异常值/离群点),这样能提高统计结果的可靠性。

    如果某一品种或价差在连续多年的同一月份中,走势方向(上涨或下跌)一致性达到70%,且数值区间相近,则说明该季节性模型可靠性高,适用于当年交易。

    本文中,价差的计算公式为:价差 = 第一个品种报价 - 第二个品种报价,在此基础上可引入加权系数,以反映品种间最小变动价位(tick)的价值差异。例如,如果品种1欧元兑美元的系数为1,品种2英镑兑美元的系数0.8,这反映了第二个品种tick价值更高的特点。

    权重允许存在小幅偏差,尤其在金银等品种上,可直接使用1:1配比。该方法有助于识别并利用价差走势中的正向季节性机会。

    市场并非完全无序。许多资产会因经济周期、气候、节假日等因素呈现周期性季节性波动。如果某一资产在每年固定时段持续上涨或下跌,该规律可用于提升交易决策的合理性。

    SpreadMultiYearComparison指标可基于历史数据,可视化展示价差的季节性波动。它会分析两个资产(如欧元兑美元与英镑兑美元)多年的价格差值并以图表呈现,帮助识别重复规律并确定最佳入场点位。


    SpreadMultiYearComparison指标应用

    参数:Symbol1、Symbol2、MonthToShow、YearsToShow。

    下表为指标外部变量的名称与说明:           

    外部变量 描述
    Symbol1
    主交易品种(如黄金兑美元)
    Symbol2
    第二个品种(留空则仅分析Symbol1)
    MonthToShow
    分析月份(1至12)
    YearsToShow 统计年份数量(1至15)
    FillGaps 是否填充数据缺口(为true时用最近有效值替代缺失数据)

    核心功能:

    • CalculateAllStatistics() —— 计算月初至月末的价差变化,兼顾小数点位数以保证点数计算准确
    • DisplayFullStatistics() —— 显示各年度盈亏统计表,并给出趋势判断(强势趋势/横盘)
    • GetRecommendation() —— 分析盈利月份占比,输出价差品种走势方向报告

    指标季节性研究参数设置实用建议

    代码中外部变量均带有注释,逻辑直观,指标显示在副图窗口中。  

    //+------------------------------------------------------------------+
    //|                  SpreadMultiYearComparison.mq5                  
    //|                     Copyright 2025, Roman Shiredchenko
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2025"
    #property version   "7.1"
    #property strict
    #property indicator_separate_window
    #property indicator_buffers 18
    #property indicator_plots   17
    
    //--- Input parameters
    input string   Symbol1      = "EURUSD";  // First symbol (required)
    input string   Symbol2      = "";        // Second symbol (empty for single symbol analysis)
    input double   k_Symbol1    = 1.0;       // Weight coefficient for Symbol1
    input double   k_Symbol2    = 1.0;       // Weight coefficient for Symbol2
    input int      MonthToShow  = 6;         // Month to analyze (1-12)
    input int      YearsToShow  = 15;        // Number of years to analyze (1-15)
    input bool     FillGaps     = true;      // Fill gaps in data
    

    该价差计算指标的核心功能是在日线周期上,以点数为单位,针对第一个交易品种进行计算。

    //+------------------------------------------------------------------+
    //| Get spread/price value                                           |
    //+------------------------------------------------------------------+
    double GetSpreadValue(datetime dt)
    {
       //--- Get data for first symbol
       int shift1 = iBarShift(Symbol1, PERIOD_D1, dt, false);
       if(shift1 < 0) {
          Print("No data for ", Symbol1, " at ", TimeToString(dt));
          return EMPTY_VALUE;
       }
       double price1 = k_Symbol1 * iOpen(Symbol1, PERIOD_D1, shift1);
       
       //--- Return first symbol price if second symbol not specified
       if(Symbol2 == "") {
          return price1;
       }
       
       //--- Get data for second symbol
       int shift2 = iBarShift(Symbol2, PERIOD_D1, dt, false);
       if(shift2 < 0) {
          Print("No data for ", Symbol2, " at ", TimeToString(dt));
          return EMPTY_VALUE;
       }
       double price2 = k_Symbol2 * iOpen(Symbol2, PERIOD_D1, shift2);
       
       //--- Return price difference (spread)
       return price1 - price2;
    }

    MetaTrader 5实用建议

    基于季节性的交易品种,下表列出了月份、交易品种(价差)及交易方向:

     月份    品种      方向 
    6月   
    白银 
    下跌
    7月   
    WTI–布伦特原油价差 
    下跌
    6月    
    英镑兑美元 - 白银兑美元价差 
    下跌

    小贴士:

    • 核查历史数据(至少10至15年)。
    • 使用止损(季节性不代表100%盈利)。
    • 结合其他因素(天气、持仓报告COT等)。


    日线周期季节性交易:通用原则

    1. 设置分析工具

    如需了解品种在不同时段的表现,打开其中一个品种的图表,加载SpreadMultiYearComparison指标。输入要对比的两个品种代码,并选择需要分析的历史年份。

    2. 选择交易品种

    选择关联性强的品种对,如货币对、商品、指数或股票。价差交易并非单纯买卖单一资产,而是同时双向开仓:一多一空。这样有助于降低风险:如果一个品种走势不利,另一个可部分或完全弥补亏损。这种方式通常被称为“对冲”。

    如何寻找季节性机会:

    1. 寻找具有规律的月份
    观察价差在过去10至15年的表现,找出价差持续上涨或下跌的月份。

    2. 评估可靠性
    数据不应出现大幅跳空,且所需年份均有报价。统计走势越“平滑”,规律可靠性越高。

    3. 确定入场与出场时机
    采用日线周期操作。可配合其他指标增强信号,确认入/出场点位。

    4. 风险管理
    根据波动率设置止损。仓位应适中,避免账户过载。

    其他影响因素
    • 基本面因素:经济报告、新闻、天气。
    • 主力资金投机行为与市场情绪。
    • 政策法规变动:如新限制、税收政策等。

    务必确保:

    • 交易品种在所有所需年份均有报价(优选15年,最低10年);
    • 图表切换至日线周期;
    • 两个交易品种均在市场报价窗口中显示;
    • 加载指标后,右键点击 → 刷新,以完整加载数据。
    重要提醒:季节性规律并不保证盈利。市场始终在变化。历史规律重复出现仅提示值得关注,而非盲目迷信。持续分析与评估是生存并获利的关键。


    SpreadMultiYearComparison指标使用方法 

    该指标在价差第一个品种的图表上,可视化展示往年价差的平均走势(橄榄色曲线)和本年度走势(黄色曲线)。
    结果分为三类:强势趋势、中等趋势、横盘。

    第一步:加载指标

    • 指定Symbol1(如黄金兑美元)
    • 如需计算价差,指定Symbol2(如白银兑美元)
    • 选择MonthToShow(如12代表12月)
    • 设置YearsToShow(如15年)
    第二步:分析统计结果
    • 如果盈利年份占比大于等于75% → 强势趋势
    • 如果盈利年份占比在60%至75%之间 → 中等趋势(需额外过滤)
    • 如果盈利年份占比低于60% → 横盘走势(无明确趋势,价差品种报价在区间内震荡,需使用附加过滤器,例如包络线指标)
    第三步:基于季节性进行实战观察与报告的可行交易场景  
    • 强势趋势(75%以上):
      • 顺势入场
      • 止损设置为历年平均亏损幅度
      • 止盈设置为平均盈利幅度的两倍  
      • 达到平均盈利后,可按账户权益变化启用移动止损  
    • 横盘(低于60%)无方向性走势:  
      • 依据包络线指标的轨道边界进行高抛低吸  
      • 示例:上轨做空,下轨做多


    结论

    SpreadMultiYearComparison方法的优势:

    1. 降低风险:价差交易通过同时在两个品种上开仓,本质上实现了风险对冲。
    2. 提高盈利概率:季节性分析能帮助识别市场更大概率朝特定方向运行的时段。
    3. 优化交易决策:该指标以可视化形式呈现信息,辅助做出更理性、更有依据的交易决策。
    4. 灵活性强:可适配不同交易品种与交易风格。
    5. 对冲风险:如果一个品种走势不利,另一个品种可抵消亏损。例如:买入黄金、卖出白银 —— 即使黄金下跌,白银也可能上涨。由于两个品种报价相互对冲,价差的波动率通常低于单一品种,便于执行更严格的风险管理。
    6. 所有信号均可通过自定义过滤器进一步筛选,例如技术分析标记。也可结合包络线指标,在季节性方向上,做轨道边界的反弹交易。
    7. 我们可以将季节性交易与技术分析结合,在日线级别上,顺着季节性方向进行短期信号交易。

    因此,任何通过历史均值得出的预测,都应检验其实现概率。通常只有正向结果概率超过70%的信号,才具备可交易价值。

    乍看之下,符合条件的交易机会似乎很少,因为本文仅在日线周期(D1)上进行季节性分析。虽然部分潜在入场机会因此被剔除,但这一不足可通过分散化交易弥补 —— 在目标月份内,跟踪多组价差与多个品种的季节性机会。尤其在“农产品类”品种中,季节性特征表现明显。 

    季节性并非占卜,而是对规律的统计分析。SpreadMultiYearComparison是一款用于识别和评估具有统计显著性的季节性波动的工具。请将季节性分析当作“统计罗盘”,以提升决策精度、降低交易风险。

    在下一篇文章中,我将深入讲解更低周期上的季节性指数。我们会研究其更复杂的变体与实战应用案例,同时探讨如何将季节性分析与基本面、技术面结合,以提升交易效率。 

    本文由MetaQuotes Ltd译自俄文
    原文地址: https://www.mql5.com/ru/articles/15622

    附加的文件 |
    最近评论 | 前往讨论 (9)
    Roman Shiredchenko
    Roman Shiredchenko | 1 8月 2025 在 17:17

    下一次中期总结将于8月举行——届时我们可以采用更全面的形式进行……

    Roman Shiredchenko
    Roman Shiredchenko | 1 8月 2025 在 18:11
    最重要的是,我忘了发布7月份的NQ报告,周末会发出来!通过价差指标!
    Roman Shiredchenko
    Roman Shiredchenko | 2 8月 2025 在 00:16

    NAS100 7月盈利900点!


    最好在月底最后一天,趁着逆季节性走势的下跌行情尽早平仓——1000点利润将达到


    建议大家在此讨论接下来的月份以及进场和离场策略!

    欢迎来到季节性交易的世界!

    Roman Shiredchenko
    Roman Shiredchenko | 2 8月 2025 在 05:14

    根据文章中第一张图表!7月标普500指数,已获利!


    Roman Shiredchenko
    Roman Shiredchenko | 29 8月 2025 在 01:38

    8月份,AUDNZD的季节性走势表现良好!

    交易策略 交易策略
    各种交易策略的分类都是任意的,下面这种分类强调从交易的基本概念上分类。
    神经网络在交易中的应用:演员—导演—评论家框架 神经网络在交易中的应用:演员—导演—评论家框架
    我们诚邀您探索演员-导演-评论家(Actor-Director-Critic)框架,该框架结合了分层学习和多组件架构,用于创建自适应交易策略。在本文中,我们将详细探讨如何利用导演(Director)对演员(Actor)生成的动作进行分类,以有效优化交易决策,并提高模型在金融市场环境下的稳健性。
    新手在交易中的10个基本错误 新手在交易中的10个基本错误
    新手在交易中会犯的10个基本错误: 在市场刚开始时交易, 获利时不适当地仓促, 在损失的时候追加投资, 从最好的仓位开始平仓, 翻本心理, 最优越的仓位, 用永远买进的规则进行交易, 在第一天就平掉获利的仓位,当发出建一个相反的仓位警示时平仓, 犹豫。
    老鹰策略(ES) 老鹰策略(ES)
    老鹰策略是一种模拟老鹰两阶段捕猎策略的算法:通过曼特尼亚(Mantegna)方法实现的莱维(Levy)飞行进行全局搜索,与利用萤火虫算法进行的密集局部开发交替进行,这是一种在数学上合理的探索与开发平衡方法,也是一种将两种自然现象融合为单一计算方法的生物启发式概念。