GW News Filter

GW News Filter

Filter trading around high-impact news. Avoid entries/exits during risky time windows using MetaTrader’s Calendar API or your own CSV files.

Works in live, demo and Strategy Tester · Source: API or CSV · Per-currency files · Entry/Exit flags · Diagnostics (0–4)


Features

Works in real accounts, demo, and Strategy Tester

Choose between:

  • 0 = Auto (API for live/demo, CSV for Strategy Tester)
  • 1 = API (MetaTrader’s built-in calendar)
  • 2 = CSV (per-currency files, e.g. EUR.csv, USD.csv, ALL.csv)


Configure:

  • Minimum importance (Low, Moderate, High)
  • Window seconds before/after news
  • Include global “ALL” events
  • Separate flags for filtering entries and filtering exits
  • Lightweight wrapper class for easy integration
  • Diagnostic logging (levels 0–4) for testing and debugging



Installation

  1. Copy MQL5/Libraries/GWNewsFilterLib.ex5
  2. Copy MQL5/Include/Greaterwaves/GWNewsFilterLib.mqh
  3. Include in your EA/indicator:
    #include <Greaterwaves/GWNewsFilterLib.mqh>
    


Quick Start

Create the filter once (e.g. in OnInit). If testing with CSV, set the folder with SetCsvLocation() .

int OnInit()
{
   if(!g.Create(_Symbol,
                InpFilterEntry, InpFilterExit,
                InpMinImp, InpIncludeAll,
                InpBefore, InpAfter,
                InpDiagLevel, InpSource))
   {
      Print("GWNF: failed to create instance (Did you copy GWNewsFilterLib.ex5 into MQL5/Libraries/ ?)");
      return(INIT_FAILED);
   }

   // If using CSV (or running in Tester), set the CSV location
   if(InpSource==1 || (int)MQLInfoInteger(MQL_TESTER)!=0)
   {
      if(!g.SetCsvLocation(InpCsvBaseRel, InpCsvUseCommon))
         Print("GWNF: SetCsvLocation() failed.");
   }

   return(INIT_SUCCEEDED);
}


Then rebuild the window once per bar and act on it:

void OnTick()
{
   datetime bar = (datetime)iTime(_Symbol, _Period, 0);
   if(bar == g_last) return;
   g_last = bar;

   if(!g.RebuildWindow())
   {
      Print("GWNF: RebuildWindow() returned false.");
      return;
   }

   const int active = g.GetFilteringEventsCount();

   if(active > 0)
   {
      // Filter is active → skip entries / manage exits
   }
   else
   {
      // Filter is inactive → outside events window
   }
}


CSV Preparation Guide 

Each row in the CSV must contain the following 16 columns, in this exact order:

  1. VALUE_ID → Unique numeric ID for the value (use any integer, e.g. `10001`)
  2. EVENT_ID → Unique numeric ID for the event (e.g. `20001`)
  3. TIME → Event time in `YYYY.MM.DD HH:MM:SS` format
  4. PERIOD → Period string (may be left blank if not used)
  5. REVISION → Integer revision number (usually `0`)
  6. ACTUAL → Actual reported value (leave empty if unknown)
  7. PREVIOUS → Previous reported value (leave empty if unknown)
  8. REVISED_PREV → Revised previous value (leave empty if unknown)
  9. FORECAST → Forecasted value (leave empty if unknown)
  10. IMPACT_TYPE → Integer (0=none, 1=positive, 2=negative, 3=neutral). Can be `0` if not needed.
  11. CURRENCY → Currency code (`USD`, `EUR`, `JPY`, … or `ALL`)
  12. COUNTRY_CODE → Country code (`US`, `EU`, `GB`, …)
  13. COUNTRY_ID → Numeric ID (can be `0` if not relevant)
  14. IMPORTANCE → `LOW`, `MODERATE`, or `HIGH`
  15. EVENT_CODE → Short machine-friendly identifier (`cpi`, `gdp`, `trade-balance`)
  16. NAME → Human-friendly event name


    Example rows:

    10001;20001;2025.08.28 12:30:00;;0;3.4;3.2;;3.5;0;USD;US;0;HIGH;cpi;Consumer Price Index (YoY)
    10002;20002;2025.08.28 14:00:00;;0;1.8;2.0;;2.1;0;USD;US;0;MODERATE;housing;Housing Starts
    10003;20003;2025.08.28 15:00:00;;0;;; ;0.9;0;EUR;EU;0;HIGH;confidence;Consumer Confidence Index


    Explanation:

    • The first event is a high-impact USD CPI release.

    • The second event is moderate impact housing data.

    • The third is a high-impact EUR confidence index.


    File Naming and Placement

    Place one CSV file per currency (e.g. USD.csv , EUR.csv ) inside a folder.

    The folder can be located in:

    • Common\Files\NEWS\ (shared by all terminals), or
    • MQL5\Files\NEWS\ (local to one terminal).

    You configure the folder via:

    g.SetCsvLocation("NEWS", true);  // "true" = use Common\Files


    Diagnostics

    • 0 = silent
    • 1 = critical errors only
    • 2 = init + when filter is active
    • 3 = adds “outside news” logs
    • 4 = full detail (lists all events)


    Important Notes

    • Even if you don’t need all values (like VALUE_ID or COUNTRY_ID), you must keep the column order and delimiters.
    • Empty fields are allowed — just keep the ; separator.
    • The parser expects semicolon ; separators, consistent with MetaTrader CSV.
    • Event importance must be one of: LOW, MODERATE, HIGH.


    Wrapper Header (copy this into MQL5/Include/Greaterwaves/GWNewsFilterLib.mqh)

    //+------------------------------------------------------------------+ 
    //|                                           GWNewsFilterLib.mqh    |
    //|                 Public wrapper for GWNewsFilterLib.ex5 binary    |
    //|                   (c) GreaterWaves - José Martínez Hernández     |
    //+------------------------------------------------------------------+
    //
    // HOW TO USE
    // 1) Copy this file to:  MQL5/Include/Greaterwaves/GWNewsFilterLib.mqh
    // 2) Copy the binary to: MQL5/Libraries/GWNewsFilterLib.ex5
    // 3) In your EA/Indicator:
    //      #include <Greaterwaves/GWNewsFilterLib.mqh>
    //
    // Example:
    //
    //   GWNewsFilter nf;
    //   if(nf.Create(_Symbol, true, false,
    //                2,      // minImportance (0=None,1=Low,2=Moderate,3=High)
    //                true,   // includeGlobalAll
    //                900,900,// secondsBefore/After
    //                3,      // diagnosticLevel (0-4)
    //                0))     // forcedSource (0=Auto,1=CSV,2=API)
    //   {
    //      nf.SetCsvLocation("NEWS", true);   // Optional custom CSV path
    //      nf.RebuildWindow();
    //      if(nf.IsFilteringNow(true,false))
    //         Print("Filter active on entry");
    //      nf.UpdateChartCommentMinimal();
    //   }
    //
    
    // ===============================================================
    // IMPORTS from binary library
    // ===============================================================
    #import "GWNewsFilterLib.ex5"
       int  GWFilter_Create(string symbol,
                           bool filterEntry,
                           bool filterExit,
                           int  minImportance,
                           bool includeGlobalAll,
                           int  secondsBefore,
                           int  secondsAfter,
                           int  diagnosticLevel,
                           int  forcedSource);
    
       bool GWFilter_Destroy(int handle);
       bool GWFilter_RebuildWindow(int handle);
       bool GWFilter_IsBlockingNow(int handle, bool forEntry, bool forExit);
       int  GWFilter_GetBlockingEventsCount(int handle);
       int  GWFilter_TotalInWindow(int handle);
    
       bool GWFilter_GetWindowEventAt(int handle, int index,
                                  long &value_id, long &event_id, datetime &time,
                                  string &currency, string &country_code,
                                  string &event_code, string &name, int &importance);
    
       bool GWFilter_SetDiagnosticLevel(int handle, int level);
       bool GWFilter_SetForcedSource  (int handle, int forcedSource);
       bool GWFilter_SetBlockFlags    (int handle, bool filterEntry, bool filterExit);
    
       bool GWFilter_BuildBlockingComment(int handle, string &out_comment);
       bool GWFilter_UpdateChartCommentMinimal(int handle);
    
       bool GWFilter_SetCsvLocation(int handle, string baseRel, bool useCommon);
    #import
    
    // ===============================================================
    // Object-oriented wrapper for easier usage in EAs/Indicators
    // ===============================================================
    class GWNewsFilter
    {
    private:
       int m_h; // internal handle to binary object
    
    public:
       GWNewsFilter(): m_h(0) {}
    
       // Create instance with settings
       bool Create(string symbol,
                   bool filterEntry, bool filterExit,
                   int   minImportance   = 2,
                   bool  includeGlobalAll= true,
                   int   secondsBefore   = 900,
                   int   secondsAfter    = 900,
                   int   diagnosticLevel = 2,
                   int   forcedSource    = 0)
       {
          m_h = GWFilter_Create(symbol, filterEntry, filterExit, minImportance,
                            includeGlobalAll, secondsBefore, secondsAfter,
                            diagnosticLevel, forcedSource);
          return (m_h > 0);
       }
    
       // Destroy instance
       bool Destroy() { if(m_h<=0) return false; bool ok=GWFilter_Destroy(m_h); m_h=0; return ok; }
    
       // Refresh window of upcoming events
       bool RebuildWindow() { return (m_h>0 ? GWFilter_RebuildWindow(m_h) : false); }
    
       // Check if filter is active now (entry/exit)
       bool IsFilteringNow(bool forEntry, bool forExit) { return (m_h>0 ? GWFilter_IsBlockingNow(m_h, forEntry, forExit) : false); }
    
       // Number of filtering events currently active
       int  GetFilteringEventsCount(){ return (m_h>0 ? GWFilter_GetBlockingEventsCount(m_h) : -1); }
    
       // Total number of events in the current window
       int  TotalInWindow()          { return (m_h>0 ? GWFilter_TotalInWindow(m_h) : -1); }
    
       // Get details of an event at index
       bool GetWindowEventAt(int index,
                             long &value_id, long &event_id, datetime &time,
                             string &currency, string &country_code,
                             string &event_code, string &name, int &importance)
       {
          return (m_h>0 ? GWFilter_GetWindowEventAt(m_h, index, value_id, event_id, time,
                                                currency, country_code, event_code, name, importance)
                        : false);
       }
    
       // Change diagnostic log level
       bool SetDiagnosticLevel(int level){ return (m_h>0 ? GWFilter_SetDiagnosticLevel(m_h, level) : false); }
    
       // Force data source (Auto, CSV, API)
       bool SetForcedSource  (int forced){ return (m_h>0 ? GWFilter_SetForcedSource  (m_h, forced) : false); }
    
       // Enable/disable filtering for entry/exit
       bool SetFilterFlags    (bool fe, bool fx){ return (m_h>0 ? GWFilter_SetBlockFlags(m_h, fe, fx) : false); }
    
       // Build a minimal comment string when filter is active
       bool BuildFilteringComment(string &out_comment){ out_comment=""; return (m_h>0 ? GWFilter_BuildBlockingComment(m_h, out_comment) : false); }
    
       // Update chart comment automatically (only when active)
       bool UpdateChartCommentMinimal(){ return (m_h>0 ? GWFilter_UpdateChartCommentMinimal(m_h) : false); }
    
       // Set CSV folder location
       bool SetCsvLocation(const string baseRel, const bool useCommon=true)
       {
          return (m_h>0 ? GWFilter_SetCsvLocation(m_h, baseRel, useCommon) : false);
       }
    
       // Return internal handle
       int  Handle() const { return m_h; }
    };
    


    EA Example with minimal usage

    // Minimal demo usage
    #include <Greaterwaves/GWNewsFilterLib.mqh>
    
    GWNewsFilter g;
    
    int OnInit()
    {
       g.Create(_Symbol, true, false, 2, true, 900, 900, 2, 0);
       g.SetCsvLocation("NEWS", true); // if using CSV
       return INIT_SUCCEEDED;
    }
    
    void OnTick()
    {
       if(g.RebuildWindow())
       {
          if(g.GetFilteringEventsCount()>0)
             Print("Filter active - skip trading");
       }
    }
    





    Video GW News Filter
    Recommended products
    This simple logging library is designed to provide clear and contextual log output with minimal hassle. It exposes five  methods: LogError Message (message) LogWarn Message (message) LogInfo Message (message) LogDebug Message (message) LogTrace Message (message) Each method prints the provided message to the console only if the severity level meets or exceeds the current threshold set by a global variable logLevel. This means you control the verbosity of your application's logs by adjusting logL
    FREE
    Ajuste BRA50
    Claudio Rodrigues Alexandre
    4.4 (5)
    Este script marca no gráfico do ativo BRA50 da active trades o ponto de ajuste do contrato futuro do Mini Índice Brasileiro (WIN), ***ATENÇÃO***  para este script funcionar é necessário autorizar a URL da BMF Bovespa no Meta Trader. passo a passo: MetaTrader 5 -> Ferramentas -> Opções -> Expert Adivisors * Marque a opção "Relacione no quadro abaixo as URL que deseja permitir a função WebRequest" e no quadro abaixo adicione a URL: https://www2.bmf.com.br/ este indicador usa a seguinte página par
    FREE
    Static Text display
    Muhammad Saad Khan
    Static Text display is a lightweight and user-friendly Expert Advisor (EA) for MetaTrader 5, designed to inspire and educate traders by displaying motivational trading tips directly on your chart. With a sleek, centered black background and white text in a monospaced font, this EA delivers concise, actionable advice in rotating chunks to keep you focused on disciplined trading. Perfect for beginners and seasoned traders alike, it promotes key principles like risk management, patience, and strate
    FREE
    Ajuste MINDOL
    Claudio Rodrigues Alexandre
    5 (1)
    Este script marca no gráfico do ativo MINDOL da activ trades o ponto de ajuste do contrato futuro do Mini Dolar (WDO), ***ATENÇÃO***  para este script funcionar é necessário autorizar a URL da BMF Bovespa no Meta Trader. passo a passo: MetaTrader 5 -> Ferramentas -> Opções -> Expert Adivisors * Marque a opção "Relacione no quadro abaixo as URL que deseja permitir a função WebRequest" e no quadro abaixo adicione a URL: https://www2.bmf.com.br/ este indicador usa a seguinte página para buscar o a
    FREE
    K Trade Lib5
    Kaijun Wang
    2 (1)
    MT4/5通用交易库(  一份代码通用4和5 ) #import "K Trade Lib5.ex5"    //简单开单    long OrderOpen( int type, double volume, int magic, string symbol= "" , string comment= "" , double opprice= 0 , double sl= 0 , double tp= 0 , int expiration= 0 , bool slsetmode= false , bool tpsetmode= false );    //复杂开单    void SetMagic( int magic, int magic_plus= 0 ); void SetLotsAddMode(int mode=0,double lotsadd=0);    long OrderOpenAdvance( int mode, int type, double volume, int step, int magic, string symbol= "" , string comm
    FREE
    This lightweight utility library provides essential functions for MQL5 developers to streamline and simplify expert advisor (EA) and indicator development. Whether you’re building trading algorithms or managing chart resources dynamically, this library offers clean and reusable building blocks to enhance your code quality and reduce repetition. Key Features Price Access Functions ASK(string symbol) – Get the current Ask price. BID(string symbol) – Get the current Bid price. Account Information
    FREE
    Renko trend
    Andrey Goida
    1 (1)
    Fully automatic trading system that trades Renko bars and trend indicators. Renko bars are drawn in the indicator window below the chart. The signal to sell or buy is the intersection of renko and indicator signal. The default settings for the euro / dollar pair, t he EA has shown the best results for the pair   GBPJPY   and   GOLD .  The timeframe for trading is m1. There is a time filter. The EA has an autolot system. Our telegram channel After installing the EA, download the installation set
    FREE
    The MetaCOT 2 CFTC ToolBox Demo is a special version of the fully functional MetaCOT 2 CFTC ToolBox MT5 library. The demo version has no restrictions, however, unlike the fully functional version, it outputs data with a delay. The library provides access to the CFTC (U.S. Commodity Futures Trading Commission) reports straight from the MetaTrader terminal. The library includes all indicators that are based on these reports. With this library you do not need to purchase each MetaCOT indicator sepa
    FREE
    Molo kumalo
    James Ngunyi Githemo
    Trading Forex with our platform offers several key advantages and features: Real-time Data : Stay updated with live market data to make informed decisions. User-Friendly Interface : Easy-to-navigate design for both beginners and experienced traders. Advanced Charting Tools : Visualize trends with interactive charts and technical indicators. Risk Management : Set stop-loss and take-profit levels to manage your risk. Multiple Currency Pairs : Access a wide range of forex pairs to diversify your tr
    This script is simply used to convert candlesticks into excel. This is beneficial to use when intergrating CHATGPT, CLAUDE AND ALL THE AIs. Better to use this than a screenshot like other do! Thank me later!! Just attach to the chat and you will find the converted excel in: C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\E3E3B02889D32F38295D39BF94B6AD4A\MQL5\Files
    Introducing the 'Global Forex Session Highlighter' , a powerful tool designed to enhance your trading strategy by providing a visual representation of the Three major Forex trading sessions: Tokyo, London, and New York. This indicator is designed to help traders understand the dynamics of the global Forex market by highlighting the trading sessions directly on your MT5 chart. It provides a clear view of when each session starts and ends, allowing you to strategize your trades around the most act
    Delete Only Pending Orders
    Muhammad Usman Siddique
    The UZFX - Delete Only Pending Orders script for MetaTrader 5 (MT5) is a simple yet effective tool that automatically removes all pending orders (Buy Limit, Sell Limit, Buy Stop, Sell Stop) from the trading account. This script is ideal for traders who want to clear their pending orders instantly without affecting active market positions. Check out my all other MT4/MT5 indicators and EAs >>   HERE Features: Deletes all pending orders (Buy Limit, Sell Limit, Buy Stop, Sell Stop). Does not affec
    FREE
    NATS (Niguru Automatic Trailing Stop) will help you achieve more profits, by setting the trailing stop automatically. Pair this NATS application with EA, or can also be used as a complement to manual trading. A trailing stop is a powerful tool in trading that combines risk management and profit optimization.  A trailing stop is a type of market order that sets a stop-loss at a percentage below the market price of an asset, rather than a fixed number. It dynamically adjusts as the asset’s pric
    FREE
    The Risk to Reward Ratio Manager tool is a comprehensive trading visual orders tool and position size (lot) calculator that provides an intuitive panel for efficient and informed decision-making. It is versatile, working seamlessly with various symbols, including currency pairs, indices, metals, commodities, and cryptocurrencies. Risk to Reward Ratio Manager Tool streamlines the trading process by offering visual tools, automated calculations, and customization options, providing traders with a
    *****The main trading is XAUUSD. If testing, it is recommended to adjust to XAUUSD. Other trading targets cannot guarantee profitability********* If you need to test, please leave a message (I will reply as soon as I see it). In order to protect the work results, specific parameters need to be entered. The default parameters of the system cannot achieve the effect shown in the screenshot pullback! If you need to test, please leave a message (I will reply as soon as I see it). In order to prot
    This   Trading Statistics Indicator   gives you an overview of your trade statistics for a selected period. You can set different periodsand filter for Symbols and magics to analyse your trading success. You can also create charts for Balance/Equity, MFE and MAE Periods: Total Time Today Yesterday This Week Last Week This Month Last Month This Year Last Year This Trading Statistics Indicator is still work in progress. In the next versions I will add telegram and email notifications and some more
    The   UZFX - Set Stop Loss to Breakeven Instantly   script for MetaTrader 5 (MT5) is a powerful tool that allows traders to quickly move the stop loss of all open positions to their entry price, securing risk-free trades. This script is particularly useful for managing active trades efficiently, ensuring that once a position moves favorably, the trader is protected from potential losses. Check out my all other MT4/MT5 indicators and EAs >>   HERE MSG me if you want to make your own profession
    FREE
    CloseAllOrders at once
    Lamont Simone Reynecke
    Simple program i created, to help close all your orders instantly when you are busy scalping the market or if you want to avoid news days but still have a lot of orders and pending orders open and can't close them in time.. with this script all you're problems will be solved. Simple drag and drop and the script automatically does it's thing, quick and easy  also a very good tool to use when scalping
    FREE
    This product has been on development for the past 3 years, It is the most advanced codebase for working with all kinds of Artificial intelligence and machine learning code in MQL5 programming language. It has been used to create many AI powered trading robots and indicators in MetaTrader 5. This is a premium version of the free and open source project on machine learning for MQL5, linked here:  https://github.com/MegaJoctan/MALE5 . The free version has fewer features, less documented, and poorly
    Trend Screener Pro MT5
    STE S.S.COMPANY
    4.87 (91)
    Unlock the Power of Trends Trading with the Trend Screener Indicator: Your Ultimate Trend Trading Solution powered by Fuzzy Logic and Multi-Currencies System! Elevate your trading game with the Trend Screener, the revolutionary trend indicator designed to transform your Metatrader into a powerful Trend Analyzer. This comprehensive tool leverages fuzzy logic and integrates over 13 premium features and three trading strategies, offering unmatched precision and versatility. LIMITED TIME OFFER : Tre
    This library allows you to automatically filter events by symbol. Additionally, it requires the use of "flags" to classify events based on their importance (high, low, etc.). Properties: Our library is simple and only requires the export of four functions to work properly. Requirements: The library uses OnTimer , so it is not compatible with programs that also use this event. If your bot utilizes OnTimer , this may interfere with the library’s functionality and prevent event filtering. We recomm
    FREE
    License Manager EA
    Timothy Chuma Ifiora
    License Panel Integration Guide This EA uses a license panel system to verify usage before running trading logic. File Placement Place LICENSE_SINGLE.mqh in the same folder as your EA .mq5 file. If using a subfolder, update the #include path in the EA file. ️ Integration Steps Include the License File #include "LICENSE_SINGLE.mqh" Initialization (OnInit) Call the license check when the EA starts: VerifyLicense(); Deinitialization (OnDeinit) Clean up license resources when EA is removed:
    Make csv for Deep learning data. This sript use on Strategy Tester. (If you like it, please buy it) Output file to [ C:\Users\<user name>\AppData\Roaming\MetaQuotes\Tester\***AppId***\Agent-*\MQL5\FIles\ ]  (sry, depending on the environment) ItemName description MaPeriod Base MovingAverage period. PredictPeriod ex) BarTime1h, PredictPeriod=30  -> predict price after 30 hours. InputRange  ex) InputRange=24  ->  Get price from 24 hours ago to the present. file example:  https://gist.github.com/
    Here   is   the   English translation   of   your   description   for   the EA   (Expert   Advisor): --- This   is a   time -based   automatic trading   EA . It allows   you   to   set the   exact   time   for trading , down   to   the   second , and   specify the   maximum number   of   orders . You   can choose   to   place   either   buy   or   sell   orders . It   is possible to   set take   profit and   stop   loss   points . Additionally , you can   specify   how   long after   placing  
    Trend Line Map Pro MT5
    STE S.S.COMPANY
    4.09 (11)
    Trend Line Map indicator is an addons for   Trend Screener Indicator . It's working as a scanner for all signals generated by Trend screener ( Trend Line Signals ) . It's a Trend Line Scanner based on Trend Screener Indicator.  If you don't have Trend Screener Pro Indicator,   the Trend Line Map Pro will not work.     LIMITED TIME OFFER : Trend Line Map Indicator is available for only 50 $ and lifetime. ( Original price 125$ ) By accessing to our MQL5 Blog,  you can find all our premium indicat
    PipFinite Razor Scalper MT5
    Karlo Wilson Vendiola
    2 (1)
    Pipfinite creates unique, high quality and affordable trading tools. Our tools may or may not work for you, so we strongly suggest to try the Demo Version for MT4 first. Please test the indicator prior to purchasing to determine if it works for you. We want your good reviews, so hurry up and test it for free...we hope you will find it useful. Combo Razor Scalper with Trend Laser Strategy: Scalp in the direction of the trend Watch Video: (Click Here) Features Scalping indicator using a confirme
    Exit Manager MT5
    Victor Christiaanse
    Enhance Your Trading with the Exit Manager Elevate your trading strategy with the Exit Manager, designed to ensure optimal closure of your trades at precisely the right moments. Once you've placed an order, our Exit Manager steps in and starts monitoring the order based on YOUR predetermined conditions, and can even trail your stop loss to mitigate risk. Key Features: Set & Forget Functionality With the Exit Manager, simply place your trade and let the tool do the rest. It continuously monitors
    Ota A2
    Sander Maehle Andresen
    OTA A2 - Advanced Terminal Optimizer OTA A2 is a trading terminal optimization tool designed to enhance MetaTrader performance during intensive trading operations. The optimizer addresses common performance issues that occur when running multiple strategies, conducting extensive backtests, or managing numerous charts simultaneously. Technical Approach The optimizer employs sophisticated memory management techniques through direct system integration. It uses advanced working set optimization, int
    OrderManager MT5
    Lukas Roth
    4.83 (24)
    Introducing the Order Manager : A Revolutionary Utility for MT5 Manage your trades like a pro with the all-new Order Manager utility for MetaTrader 5. Designed with simplicity and ease-of-use in mind, the Order Manager allows you to effortlessly define and visualize the risk associated with each trade, enabling you to make informed decisions and optimize your trading strategy. For more information about the OrderManager, please refear to the manual. [ Demo ]  [ Manual ]  [ MT4 Version ]  [ Teleg
    This Expert Advisor is designed to help you manage trading around high-impact news events, fetched from the Forex Factory economic calendar in XML format. It includes real-time monitoring of upcoming news and can automate trading operations before and after important economic releases. ------------------------------ 1. XML News Source ------------------------------ - The EA fetches news from: https://nfs.faireconomy.media/ff_calendar_thisweek.xml - The XML is saved locally as "ff_calendar_thi
    Buyers of this product also purchase
    This library will allow you to manage trades using any of your EA and its very easy to integrate on any EA which you can do yourself with the script code which is mentioned in description and also demo examples on video which shows the complete process. This product allows trading operations via API For chart : Renting Crypto Charting for OHLC data or Crypto Ticks with Order Book Depth is optional If your EA is HFT and operations on seconds chart, You may be interested in converting charts to se
    WalkForwardOptimizer MT5
    Stanislav Korotky
    3.78 (9)
    WalkForwardOptimizer library allows you to perform rolling and cluster walk-forward optimization of expert advisers (EA) in MetaTrader 5. To use the library include its header file WalkForwardOptimizer.mqh into your EA source code, add call provided functions as appropriate. Once the library is embedded into EA, you may start optimization according to the procedure described in the User guide . When it's finished, intermediate results are saved into a CSV file and some special global variables.
    If you're a trader looking to use Binance.com and Binance.us exchanges directly from your MetaTrader 5 terminal, you'll want to check out Binance Library MetaTrader 5. This powerful tool allows you to trade all asset classes on both exchanges, including Spot, USD-M   and COIN-M futures, and includes all the necessary functions for trading activity. Important: you need to have source code to properly implement the library. With Binance Library MetaTrader 5, you can easily add instruments from Bi
    Native Websocket
    Racheal Samson
    5 (6)
    An   easy to use, fast,  asynchronous   WebSocket library  for MQL5. It supports: ws://   and   wss://  (Secure "TLS" WebSocket) text   and   binary   data It handles: fragmented message  automatically (large data transfer) ping-pong   frames  automatically (keep-alive handshake) Benefits: No DLL required. No OpenSSL installation required. Up to 128 Web Socket Connections from a single program. Various Log Levels for error tracing Can be synchronized to MQL5 Virtual Hosting . Completely native t
    OpenAI Library MT5
    VitalDefender Inc.
    The following library is proposed as a means of being able to use the OpenAI API directly on the metatrader, in the simplest way possible. For more on the library's capabilities, read the following article: https://www.mql5.com/en/blogs/post/756098 The files needed to use the library can be found here: Manual IMPORTANT: To use the EA you must add the following URL to allow you to access the OpenAI API as shown in the attached images In order to use the library, you must include the following Hea
    MetaCOT 2 CFTC ToolBox MT5
    Vasiliy Sokolov
    3.67 (3)
    MetaCOT 2 CFTC ToolBox is a special library that provides access to CFTC (U.S. Commodity Futures Trading Commission) reports straight from the MetaTrader terminal. The library includes all indicators that are based on these reports. With this library you do not need to purchase each MetaCOT indicator separately. Instead, you can obtain a single set of all 34 indicators including additional indicators that are not available as separate versions. The library supports all types of reports, and prov
    This is a simplified and effective version of the library for walk forward analysis of trading experts. It collects data about the expert's trade during the optimization process in the MetaTrader tester and stores them in intermediate files in the "MQL5\Files" directory. Then it uses these files to automatically build a cluster walk forward report and rolling walk forward reports that refine it (all of them in one HTML file). Using the WalkForwardBuilder MT5 auxiliary script allows building othe
    The library is dedicated to help manage your trades, calculate lot, trailing, partial close and other functions. Lot Calculation Mode 0: Fixed Lot. Mode 1: Martingale Lot (1,3,5,8,13) you can use it in different way calculate when loss=1 ,when profit=0. Mode 2: Multiplier Lot (1,2,4,8,16) you can use it in different way calculate when loss=1 ,when profit=0. Mode 3: Plus Lot (1,2,3,4,5) you can use it in different way calculate when loss=1 ,when profit=0. Mode 4: SL/Risk Lot calculate based on s
    OrderBook History Library
    Stanislav Korotky
    3 (2)
    Order Book, known also as Market Book, market depth, Level 2, - is a dynamically updated table with current volumes of orders to buy and to sell specific financial instument at price levels near Bid and Ask. MetaTrader 5 provides the means for receiving market book from your broker, but in real time only, without access to its history. The library OrderBook History Library reads market book state in the past from archive files, created by OrderBook Recorder . The library can be embedded into you
    BitMEX Trading API
    Romeu Bertho
    5 (1)
    Cryptocurrency analysis has never been easier with Crypto Charts for MetaTrader 5. Now, trading on BitMEX has never been easier with BitMEX Trading API for MetaTrader 5. BitMEX Trading API library was built to be as easy to use as possible. Just include the library into your Expert Advisor or Script, call the corresponding methods and start trading! Features Trade on BitMEX and BitMEX Testnet. Build and automate your strategies. Concern more with the trading strategy logic and less with the co
    Teclado trader, é uma BIBLIOTECA que você pode chamar no OnChartEvent para abrir posição de compra/venda/zerar, os botões padrões são: V = venda C = compra Z = zerar posições a mercado S = zerar posições opostas e depois a mercado X = zerar posições opostas Além da função de teclado, é possível mostrar os estados do ExpertAdvisor usando o MagicId, com informação de: lucro mensal, semanal, diario, e posição aberta, para isto use o OnTick, ou qualquer outro evento (OnTimer / OnTrade / OnBookEven
    Goliath Mt5
    Nicolokondwani Biscaldi
    Goliath MT5 - scalper fully automated Expert Advisor for medium-volatile forex markets P roperties: The Library trades 10 currency pairs (USDCHF, EURCHF, EURGBP, AUDUSD, USDCAD, GBPUSD, EURUSD, NZDUSD, CADCHF, EURAUD, EURCAD, AUDJPY) The Library does not use martingale The Library sets a fixed stop loss and take profit for all orders The Library only trades a user input volume The Library can be installed on any currency pair and any timeframe Recommendations: Before using on a real account, t
    Binance Library
    Hadil Mutaqin SE
    5 (1)
    The library is used to develop automatic trading on Binance Spot Market from MT5 platform. Support all order types: Limit, Market, StopLimit and StopMarket Support Testnet mode Automatically display the chart on the screen Usage: 1. Open MQL5 demo account 2. Download Header   file and EA sample   https://drive.google.com/uc?export=download&id=1kjUX7Hyy02EiwTLgVi8qdaCNvNzazjln Copy Binance.mqh to folder \MQL5\Include Copy  BinanceEA-Sample.mq5 to folder \MQL5\Experts 3. Allow WebRequest from MT5
    Gold plucking machine   Gold plucking machine is an Expert Advisor designed specifically for trading gold. The operation is based on opening orders using the Fast and Slow lines indicator, thus the EA works according to the "Trend Follow" strategy, which means following the trend. Use grid strategy to place orders without stop loss operation, so please make sure the account has sufficient funds. magic number      -  is a special number that the EA assigns to its orders. Lot Multiplier        - 
    Gold plucking machine S   Gold plucking machine  S Gold plucking machine S   is an Expert Advisor designed specifically for trading gold. The operation is based on opening orders using the Fast and Slow lines indicator, thus the EA works according to the "Trend Follow" strategy, which means following the trend. Use grid strategy to place orders without stop loss operation, so please make sure the account has sufficient funds. magic number        -  is a special number that the EA assigns to its
    The library is used to develop automatic trading on Binance Futures Market from MT5 platform. Support Binance Futures USD-M and COIN-M Support Testnet mode Support all order types: Limit, Market, StopLimit, StopMarket, StopLoss and TakeProfit Automatically display the chart on the screen Usage: 1. Open MQL5 demo account 2. Download Header file and EA sample https://drive.google.com/uc?export=download&id=17fWrZFeMZoSvH9-2iv4WDJhcyxG2eW17 Copy BinanceFutures.mqh to folder \MQL5\Include Copy  Bina
    MT4/5通用交易库(  一份代码通用4和5 ) #ifdef __MQL5__      #define KOD_TICKET ulong      #define KOD_MAGIC   long #else        #define KOD_TICKET long      #define KOD_MAGIC   int #endif class ODLIST; #import "K Trade Lib Pro 5.ex5"       //祝有个美好开始,运行首行加入    void StartGood() ;    //简单开单    long OrderOpen( int type, double volume, int magic, string symbol= "" , string comment= "" , double opprice= 0 , double sl= 0 , double tp= 0 , int expiration= 0 , bool slsetmode= false , bool tpsetmode= false );    //复杂开单
    1. What is this The MT5 system comes with very few optimization results. Sometimes we need to study more results. This library allows you to output more results during backtest optimization. It also supports printing more strategy results in a single backtest. 2. Product Features The results of the optimized output are quite numerous. CustomMax can be customized. The output is in the Common folder. It is automatically named according to the name of the EA, and the name of the same EA will be au
    T5L Library is necessary to use the EAs from TSU Investimentos, IAtrader and others. It contains all the functions framework needed to Expert Advisors working properly.  ツ - The Expert Advisors from  TSU Investimentos does not work without this library,  the T5L library can have updates during the year - At this Library you will find several funcionalities like order sends, buy and sell, trigger entry points check, candlestick analyses, supply and demmand marking and lines, and much more. 
    AO Core
    Andrey Dik
    3 (2)
    AO Core is the core of the optimization algorithm, it is a library built on the author's HMA (hybrid metaheuristic algorithm) algorithm. Pay attention to the MT5 Optimization Booster product , which makes it very easy to manage the regular MT5 optimizer . An example of using AO Core is described in the article: https://www.mql5.com/ru/articles/14183 https://www.mql5.com/en/blogs/post/756510 This hybrid algorithm is based on a genetic algorithm and contains the best qualities and properties of p
    EA Toolkit
    Esteban Thevenon
    EA Toolkit is a library that allows any developer to quickly and easily program Advisor experts. It includes many functions and enumerations such as trailing stop, lot, stop loss management, market trading authorisations, price table updates, trading conditions and many more. Installation + Documentation : You will find all the information to install this library and the documentation of its functions on this GitHub : https://github.com/Venon282/Expert-Advisor-Toolkit WARNING : The installation
    This library is used for sorting key and value arrays, we often need to sort values. like in the python language sorted(key_value.items(), key = lambda kv:(kv[ 1 ], kv[ 0 ])) import function Example of usage scenarios 1. Grid EA orders are sorted according to the opening price void SortedByOpenPride()   {    long     OrderTicketBuffer[];    double   OpenPriceBuffer[];    for ( int i = PositionsTotal ()- 1 ; i>= 0 ; i--)      {        if (m_position.SelectByIndex(i))         {          Order
    GetFFEvents MT5 I tester capability
    Hans Alexander Nolawon Djurberg
    Want to get all events like Previous/Forecast/Actual values for each news to analyze/predict it? By this simple library you can do it easily,Just import/integrate the library into your system,then get all possible values for each news   Even In Strategy Tester   . Note: Please add the address " https://www.forexfactory.com/ " of news feed at your MT5 tab > Tools > Options > Expert Advisors > Check Allow web request for listed URL. Since the WebRequest() function can't be called from indicator ba
    A Simple Moving Average (SMA) is a statistical indicator used in time series analysis. This indicator represents the arithmetic mean of a sequence of values over a specific period of time. SMA is used to smooth short-term fluctuations in data, helping to highlight the overall trend or direction of changes. This aids analysts and traders in better understanding the general dynamics of the time series and identifying potential trends or changes in direction.  More information you can find in Wiki 
    Hello everyone! I am a professional MQL programmer , Making EAs, Indicators and Trading Tools for my clients all over the world. I build 3-7 programs every week but I seldomly sell any ready-made Robots. Because I am fastidious and good strategy is so few...  this EA is the only one so far I think its good enough to be published here.  As we all know, the Ichimoku indicator has become world popular for decades, but still, only few people knows the right way of using it, and if we check the clo
    Applying these methods, I managed to arrive at a nuanced conclusion that is crucial to understanding the importance of unique strategies in contemporary trading. Although the neural network advisor showed impressive efficiency in the initial stages, it proved to be highly unstable in the long run. Various factors such as market fluctuations, trend changes, external events, etc. cause its operation to be chaotic and eventually lead to instability. With these experiences, I accepted the challenge
    Introducing "TG Risk Service Manager" — your comprehensive toolkit for swift and precise risk management and lot size calculations in the dynamic world of trading. Designed to streamline development processes and enhance trading strategies, this indispensable library equips developers with essential tools for optimizing risk assessment and trade profitability. Metatrader4 Version |  All Products  |  Contact   Key Features: Efficient Lot Size Calculation : Harness the power of precise lot size c
    Introducing "TG Trade Service Manager" — your all-in-one solution for seamless trade management in both MQL4 and MQL5 environments. With a focus on speed, reliability, and convenience, this powerful library simplifies the complexities of trade execution and management, empowering developers with a single interface for enhanced efficiency. Metatrader4 Version   |   All Products   |   Contact   Key Features: Unified Interface : TG Trade Service Manager" provides a unified interface for   MQL4   an
    This trailing stop application will helping trader to set the trailing stop value for many open positions, that apply a grid or martingale strategy as a solution. So if you apply a grid or martingale strategy (either using an EA or trading manually), and you don't have an application to set a trailing stop, then this application is the solution. For EAs with a single shot strategy, just use the FREE trailing stop application which I have also shared on this forum.
    Relative Average Cost of Open Positions Indicator Description:   The “Relative Average Cost of Open Positions” indicator is a powerful tool designed for traders who engage in mean reversion strategies. It calculates the average entry price for both buy and sell positions, considering the total volume of open trades. Here are the key features and advantages of this indicator: Mean Reversion Trading: Mean reversion strategies aim to capitalize on price movements that revert to their historical ave
    Filter:
    No reviews
    Reply to review