Efficient tick data storage and processing have been significantly enhanced through advanced compression methods. By compressing tick data up to 3.5 times more effectively than traditional .tcs files, storage requirements are substantially minimized. Key improvements include encoding price variations, often between -8 and 7 points, with just 4 bits, allowing Ask and Bid to be packed into a single byte.
For further optimization, a byte can denote the time difference, with values exceeding typical limits encoded across more bytes. Additional ZIP compression can reduce data size by up to 50%. Notably, compression to three bytes is possible when price shifts range from -129 to 128, incorporating two bytes for prices and one for time.
Data for BTCUSDT demonstrate average tick sizes reduced to 1.498 bytes post-compression. With zip reduction, substanti...
π Read | VPS | @mql5dev
#MQL5 #MT5 #Compression
For further optimization, a byte can denote the time difference, with values exceeding typical limits encoded across more bytes. Additional ZIP compression can reduce data size by up to 50%. Notably, compression to three bytes is possible when price shifts range from -129 to 128, incorporating two bytes for prices and one for time.
Data for BTCUSDT demonstrate average tick sizes reduced to 1.498 bytes post-compression. With zip reduction, substanti...
π Read | VPS | @mql5dev
#MQL5 #MT5 #Compression
β€40π4π3
Explore the application of Deep Neural Networks in MQL, enhancing algorithmic trading with a powerful, multilayered machine learning approach. Delve into the construction of artificial neurons, focusing on activation functions like Tan-h and Softmax for processing trading signals. Learn how these networks classify trading actions (BUY, SELL, HOLD) and adapt to high-dimensional, complex data in markets. This comprehensive guide breaks down a 3-4-5-3 network architecture and showcases practical implementation steps, including using the MetaTrader 5 Strategy Tester for training. Understand how deep learning can significantly improve predictive accuracy in trading, providing a competitive edge in foreign exchange markets.
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #DeepLearning
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #DeepLearning
β€61β‘2
Configuring keyboard shortcuts enhances efficiency in navigating timeframes across trading platforms. Assigning hotkeys 1-9 on the main keyboard (excluding the numpad) provides quick access to various timeframes: 1 for M1, 2 for M5, 3 for M15, 4 for M30, 5 for H1, 6 for H4, 7 for D1, 8 for W1, and 9 for MN. This setup streamlines workflow, allowing seamless timeframe switching without diverting focus from analysis tasks. Such customization facilitates rapid market assessment, fostering an uninterrupted review of chart data. Ensure these key bindings are set in the platform settings to optimize utility and prevent conflicts with other functions.
π Read | Signals | @mql5dev
#MQL5 #MT5 #Hotkeys
π Read | Signals | @mql5dev
#MQL5 #MT5 #Hotkeys
β€42π₯3
Efficient coding relies on several key practices. Planning is crucial. Before coding, outline your project's goals, necessary tools, and libraries. This establishes a clear direction and reduces confusion later.
Creating a collection of reusable code snippets can save time. Utilize Object-Oriented Programming to store commonly used functions in separate files for easy inclusion.
Establish a consistent coding routine to enhance productivity. Setting specific hours promotes regularity and discipline, fostering a productive environment.
Scheduling deep work sessions is vital. Allocate uninterrupted time for focused coding to solve complex problems effectively.
Develop simple, single-purpose functions. Avoid overly complicated operations in one function to minimize bugs and enhance readability.
Add meaningful comments to your code. This practice aids ...
π Read | Calendar | @mql5dev
#MQL5 #MT5 #coding
Creating a collection of reusable code snippets can save time. Utilize Object-Oriented Programming to store commonly used functions in separate files for easy inclusion.
Establish a consistent coding routine to enhance productivity. Setting specific hours promotes regularity and discipline, fostering a productive environment.
Scheduling deep work sessions is vital. Allocate uninterrupted time for focused coding to solve complex problems effectively.
Develop simple, single-purpose functions. Avoid overly complicated operations in one function to minimize bugs and enhance readability.
Add meaningful comments to your code. This practice aids ...
π Read | Calendar | @mql5dev
#MQL5 #MT5 #coding
β€76π6
An advanced financial screener offers the capability to identify assets experiencing significant price drawdowns. This tool scans all available symbols or filtered categories to locate instruments trading below recent peaks, aiding in the identification of undervalued assets. The screener features accurate drawdown calculations using closing prices and comes with a customizable lookback period, set to a default of 90 days. Users can adjust the drawdown threshold and apply asset category filters across stocks, forex, indices, and crypto. Batch data loading ensures efficient performance alongside real-time progress monitoring. This screener suits value investors seeking discounted assets, swing traders targeting oversold instruments, portfolio managers overseeing position drawdowns, and technical analysts seeking reversal patterns. Recent updates in ...
π Read | Calendar | @mql5dev
#MQL5 #MT5 #Trading
π Read | Calendar | @mql5dev
#MQL5 #MT5 #Trading
β€40π5π5π₯3π2
The article presents a systematic approach to improving a graphical object library through the establishment of an abstract graphical object class. Key steps involve defining the standard properties for terminal graphical objects and organizing them into a collection based on the CCanvas class. The focus is on creating an abstract class that serves as a template for inheriting specific properties of graphical objects, such as Arrow codes or Ray properties. This structure allows for precise management of each individual object type, ensuring streamlined access to specific properties and enhanced functionality. Future steps include the creation of descendant objects for comprehensive graphical object representation and handling within the library.
π Read | Calendar | @mql5dev
#MQL5 #MT5 #GraphObjects
π Read | Calendar | @mql5dev
#MQL5 #MT5 #GraphObjects
β€67π9π₯3
Grid Master EA Version 1.30 by Fox Wave is an automated system utilizing a bidirectional grid strategy. It generates pending orders both above and below current market prices, aiming to profit from market fluctuations. The system features bidirectional trading, using both stop and limit orders, and includes trailing stop and breakeven functions for managing positions. Designed for continuous 24/7 trading, it includes an optional time filter and real-time grid health monitoring for performance analysis. Risk management is strengthened through fixed lot sizing and volume validation, with detailed logging available for strategy optimization. The symmetrical grid of pending orders automatically refreshes as needed, supported by trailing stops and breakeven options. It's most effective in ranging markets and pairs like BTC/USD, ETH/USD, as well as forex pairs w...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #EA
π Read | Quotes | @mql5dev
#MQL5 #MT5 #EA
β€37π26π3π2π2β1
A recently developed library offers robust control for managing trading sessions. It initializes by calculating session times for all seven days, accommodating up to 10 daily sessions. This infrastructure supports assets like cryptocurrencies that trade on weekends. Within OnTick(), checks can efficiently terminate processing if a tick is outside the defined trading session.
This library emerged from a specific project need and has been refined for broader usability. It employs modern MQL5 functions to determine trading sessions, including weekends, ensuring swift execution with minimal checks during active sessions. This optimization focuses on maintaining speed, accessing session arrays only during transitions.
Users have the flexibility to manually define session times via input settings or directly in the code through the LoadFromInputs() feature. T...
π Read | Signals | @mql5dev
#MQL5 #MT5 #Trading
This library emerged from a specific project need and has been refined for broader usability. It employs modern MQL5 functions to determine trading sessions, including weekends, ensuring swift execution with minimal checks during active sessions. This optimization focuses on maintaining speed, accessing session arrays only during transitions.
Users have the flexibility to manually define session times via input settings or directly in the code through the LoadFromInputs() feature. T...
π Read | Signals | @mql5dev
#MQL5 #MT5 #Trading
β€27π₯8π2π2π2
Global variables play a crucial role in managing time shifts for brokers during different periods, such as daylight saving time changes. Instead of relying on support from brokers, which might offer insufficient explanations, we use a program to monitor how time changes impact price timing. Variables such as DST_USD and DST_EUR hold the time shifts for the USA and EU, updating as necessary.
When calculating broker offsets for summer, winter, and intermediate periods, the program also determines the next time changeover. This structure ensures efficient CPU usage by recalculating offsets only when needed.
Functions like nextDST and chckFriday automate the process, ensuring precise broker time calculations. This approach provides users with reliable time management, enhancing strategy testing and chart analysis. In conclusion, effective time calculation is v...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Offset
When calculating broker offsets for summer, winter, and intermediate periods, the program also determines the next time changeover. This structure ensures efficient CPU usage by recalculating offsets only when needed.
Functions like nextDST and chckFriday automate the process, ensuring precise broker time calculations. This approach provides users with reliable time management, enhancing strategy testing and chart analysis. In conclusion, effective time calculation is v...
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Offset
β€63π8π₯5π5β‘4
A straightforward strategy defines this Expert Advisor. It identifies the minimum and maximum prices over a user-specified number of bars. The EA triggers an immediate position when current Ask or Bid prices match these limits. It maintains a single position at any time, either long or short. Users configure it using just one parameter: "Number of bars to analyze the price movement". By adjusting this parameter, traders can customize how the EA reacts to market conditions, optimizing entry points based on historical price movement observed within the chosen bar count. This setup can suit those seeking simplicity and direct market interaction.
π Read | Signals | @mql5dev
#MQL5 #MT5 #EA
π Read | Signals | @mql5dev
#MQL5 #MT5 #EA
β€34π₯5π2
A mathematical approach to fractals reveals essential principles for model building. The article outlines developing an initial formula for fractals, suggesting that fractal-related values can be represented by a mathematical model applied in algorithmic trading systems. It describes symmetric and asymmetric corridors, highlighting the average step calculation for each. Symmetry simplifies to \(S=n^2\), while asymmetry involves distinct steps in each half of the corridor. A generalized formula for average steps considers probability deviations.
Further refinement of fractal calculations utilizes a prototype power function, allowing testing of mathematical assumptions. Techniques for evaluating function prototypes and verifying results are elaborated upon. Through this structured analysis, a deeper understanding of fractal geometry is achieved, aiding ...
π Read | VPS | @mql5dev
#MQL5 #MT5 #Algorithm
Further refinement of fractal calculations utilizes a prototype power function, allowing testing of mathematical assumptions. Techniques for evaluating function prototypes and verifying results are elaborated upon. Through this structured analysis, a deeper understanding of fractal geometry is achieved, aiding ...
π Read | VPS | @mql5dev
#MQL5 #MT5 #Algorithm
β€60π€5π5π4
MetaTrader 5 offers advanced capabilities for algorithmic trading, enhancing your ability to create and test Expert Advisors using MQL5. The platform's strategy tester facilitates comprehensive backtesting with historical data, ensuring accurate performance analysis. With access to fundamental and technical indicators, users can develop and optimize trading strategies to align with specific market conditions. Its multi-threaded environment supports simultaneous strategy analysis across various symbols, streamlining the optimization process. Additionally, MetaTrader 5 provides a robust ecosystem that includes VPS support for efficient 24/7 operations, ensuring continuous execution and monitoring. This integrated approach empowers traders to leverage automated trading efficiently.
π Read | Signals | @mql5dev
#MQL4 #MT4 #Strategy
π Read | Signals | @mql5dev
#MQL4 #MT4 #Strategy
β€39π2
An Expert Advisor was developed solely for testing a specific trading strategy mentioned by a forum member. The primary goal is strategy evaluation, not code quality assessment. The underlying algorithm operates as follows: Pending orders, Buy Stop and Sell Stop, are automatically placed at 15:00 Moscow time, 100 points from the current price. Each order comes with a Stop Loss set at 200 points, while TakeProfit is not employed. If an order is triggered, the other remains active until 16:00, when pending orders are cancelled if not executed. At 16:00, any open positions are closed, irrespective of their profit or loss status. This procedure ensures objectivity in testing the described strategy's profitability.
π Read | Docs | @mql5dev
#MQL5 #MT5 #EA
π Read | Docs | @mql5dev
#MQL5 #MT5 #EA
β€52
Time management is pivotal for algorithmic trading, yet daylight saving and time zone shifts pose significant challenges. Developers crafting MetaTrader 5 strategies cannot rely solely on broker-set time, especially in the strategy tester where function results may prove inconsistent. Key is understanding regional offsets β such as winter/summer time changes β and how brokers define server time. This article outlines efficient macros and functions enabling precise conversion to GMT and local times, even in testing scenarios. By managing these complexities, traders can optimize strategies like night scalping and London breakout, maintaining accuracy and performance across varying global markets.
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #Forex
π Read | NeuroBook | @mql5dev
#MQL5 #MT5 #Forex
β€58β11
A custom tester was developed to address limitations in standard strategy testing methodologies. The main issue identified was reliance on symbol-specific pip values rather than a uniform pip sum, which caused inconsistencies due to variable pip values across different symbols. Furthermore, the dependency on current swap points added variability, especially as brokers offer different swaps and these have fluctuated more recently.
This custom solution organizes testing by pre-filtering results through a set of defined rules. Rule1 modifies the maxDD function according to lot sizes, while rules2 and 3 evaluate trades within the AnalyzeTrades function pre-storage. The system offers an initial code base with customizable JavaScript functions stored in a separate file.
Testing configurations can be adjusted by incorporating OnTick() content from sample sc...
π Read | Signals | @mql5dev
#MQL4 #MT4 #EATrading
This custom solution organizes testing by pre-filtering results through a set of defined rules. Rule1 modifies the maxDD function according to lot sizes, while rules2 and 3 evaluate trades within the AnalyzeTrades function pre-storage. The system offers an initial code base with customizable JavaScript functions stored in a separate file.
Testing configurations can be adjusted by incorporating OnTick() content from sample sc...
π Read | Signals | @mql5dev
#MQL4 #MT4 #EATrading
β€48β5π4
Efficient input parameter management is crucial in software development, especially in trading system design. Working with input parameters traditionally involves repetitive code prone to errors. This library simplifies those routines by focusing on object-oriented programming (OOP) principles. In the context of a trading advisor, using OOP enhances code readability and integration into complex systems.
When handling input parameters, consider an OOP-alternative approach. It reduces code complexity by encapsulating repetitive tasks and ultimately limiting error probability. This reduction enables more focus on trade logic rather than technical overhead. The library enables storing and retrieving parameter sets as strings, facilitating quick adjustments and clear parameter set visualization.
Additionally, the modular nature of OOP allows hiding repetitive code in...
π Read | VPS | @mql5dev
#MQL5 #MT5 #OOP
When handling input parameters, consider an OOP-alternative approach. It reduces code complexity by encapsulating repetitive tasks and ultimately limiting error probability. This reduction enables more focus on trade logic rather than technical overhead. The library enables storing and retrieving parameter sets as strings, facilitating quick adjustments and clear parameter set visualization.
Additionally, the modular nature of OOP allows hiding repetitive code in...
π Read | VPS | @mql5dev
#MQL5 #MT5 #OOP
β€42β‘3
Discover how to enhance the functionality of your MetaTrader 5 library classes by integrating a sophisticated graphical object collection mechanism. This concept introduces unique object identifiers and a dynamic system for managing graphical objects, whether created programmatically or manually within the MetaTrader terminal. By refining existing structures and adding new properties, such as object affiliation, developers can track and manage graphical entities with precision. This structured approach not only manages the creation and removal of objects but also establishes a foundation for future expansions, thereby improving the efficiency and reliability of algorithmic trading strategies.
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Library
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Library
β€55π6
Concept Builov RSI Pro is a sophisticated automated trading system utilizing the Relative Strength Index (RSI) complemented by additional filters to enhance signal quality and reduce false entries. The strategy foundation includes a smoothed RSI with a configurable period and key levels set at 35 for oversold and 65 for overbought zones.
For buy signals, the RSI crossing above 35 signals potential entry, and sell signals are triggered when RSI crosses below 65. There are optional momentum confirmations for both. Protection systems include a spread filter that blocks trades when the spread exceeds a configurable maximum and a momentum filter requiring a minimum RSI direction change, enhancing signal quality.
Risk management features include a trailing stop to secure profits, fixed lot size, risk percentage settings, and configurable stop loss and take ...
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #Trading
For buy signals, the RSI crossing above 35 signals potential entry, and sell signals are triggered when RSI crosses below 65. There are optional momentum confirmations for both. Protection systems include a spread filter that blocks trades when the spread exceeds a configurable maximum and a momentum filter requiring a minimum RSI direction change, enhancing signal quality.
Risk management features include a trailing stop to secure profits, fixed lot size, risk percentage settings, and configurable stop loss and take ...
π Read | AlgoBook | @mql5dev
#MQL5 #MT5 #Trading
β€45π4β3
A newly developed indicator has been created based on specific requests. The design process considered user feedback, ensuring tailored functionality to meet specific needs. This new tool aids in enhancing analytical capabilities and can streamline various technical analysis processes effectively. It aims to provide more accurate insights and assist in better decision-making for users. Users will experience efficient interaction and improved workflow when adopting this indicator. This development illustrates the importance of addressing user-driven requirements within the technical and programming community.
π Read | Freelance | @mql5dev
#MQL5 #MT5 #Indicator
π Read | Freelance | @mql5dev
#MQL5 #MT5 #Indicator
β€40π3
Discover the potential of fractal functions in trading with our latest insights on MetaTrader 5. This comprehensive overview explores innovative constructions of universal fractals, offering simplified formulas to predict pricing processes. Three types of fractalsβsymmetrical, asymmetrical, and borderedβenable accelerated trade simulations to evaluate probability and profitability scenarios. The article delves into a robust MQL5 implementation that expertly calculates these fractals, returning a data container filled with all necessary variables. Practical applications include estimating step averages and testing trade outcomes. Ideal for developers and traders seeking advanced tools and techniques to enhance algorithmic strategies.
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Fractals
π Read | Quotes | @mql5dev
#MQL5 #MT5 #Fractals
β€63π9π2
Bollinger Bands are a useful tool for assessing price volatility through their phases of narrowing and widening. This indicator provides a straightforward visual representation of these patterns. By utilizing iBands data, it calculates colors to depict price movements effectively. Although this approach may seem unconventional, it efficiently highlights changes in volatility. Such insights can assist in identifying potential trading opportunities and understanding market dynamics. Implementing Bollinger Bands in technical analysis can offer a clearer perspective on market trends and price behavior, aiding in more informed decision-making processes.
π Read | Signals | @mql5dev
#MQL5 #MT5 #Indicator
π Read | Signals | @mql5dev
#MQL5 #MT5 #Indicator
β€50π€―6π3π1