Got a programming question? Ask the community! Visit the largest Forum for algorithmic traders, where developers like you share their expertise and discuss topics related to the creation of robots and indicators:
• Undocumented methods of working with MQL5
• Real-world examples of particular tasks
• Frequent errors and solutions
• Advanced specifics of the MetaTrader 5 platform operation
Join the discussion, share your knowledge and get new experiences.
Go to the thread "MQL5 features, subtleties and tricks"...
• Undocumented methods of working with MQL5
• Real-world examples of particular tasks
• Frequent errors and solutions
• Advanced specifics of the MetaTrader 5 platform operation
Join the discussion, share your knowledge and get new experiences.
Go to the thread "MQL5 features, subtleties and tricks"...
❤33👍28🏆9👌4⚡1🤔1
In the realm of architectural design, combining the strengths of graph convolution networks and Transformers can yield more effective results than using each technique in isolation. This synergy is exemplified in the recently published algorithm, Graph Transformer Generative Adversarial Model (GTGAN). GTGAN excels in generating realistic architectural layouts from input graphs by merging the advantages of message passing convolutional neural networks (Conv-MPN), a Graph Transformer encoder (GTE), and a generation head. This method successfully illustrates the generation of architecturally coherent house layouts by synthesizing local vertex information and global room relationships.
The GTGAN's innovative approach has demonstrated significant improvements over existing algorithms in both qualitative and quantitative evaluations, proving its capability to handle complex graphically co...
Read more...
The GTGAN's innovative approach has demonstrated significant improvements over existing algorithms in both qualitative and quantitative evaluations, proving its capability to handle complex graphically co...
Read more...
👍27❤16✍3👏3👌3⚡1🤔1
For developers interested in managing chart objects on MetaTrader 5, particularly when dealing with indicators that do not use buffers, manipulating these objects directly can be crucial. In scenarios where indicators operate solely with objects, modifying these can be quite challenging since iCustom inputs, which facilitate changes in buffer-utilizing indicators, provide no assistance here.
A practical example involves using the "PZ Multidiagonals MT5" indicator, available on the MT5 market. This indicator, primarily used for trend analysis, draws excessive trend lines automatically - an issue if a more streamlined visualization is desired. Before attempting any modifications, installation of the indicator is required.
The process starts with identifying the objects created by the indicator using a unique object prefix. By implementing the LogChartObjectNames() function, develope...
Read more...
A practical example involves using the "PZ Multidiagonals MT5" indicator, available on the MT5 market. This indicator, primarily used for trend analysis, draws excessive trend lines automatically - an issue if a more streamlined visualization is desired. Before attempting any modifications, installation of the indicator is required.
The process starts with identifying the objects created by the indicator using a unique object prefix. By implementing the LogChartObjectNames() function, develope...
Read more...
❤49👍42👌7👏3⚡1
In the realm of advanced trading platforms, understanding the structural and operational nuances of MQL5 libraries becomes imperative for developing robust trading tools. This post delves into the intricate process of importing and utilizing EX5 libraries within MQL5 code, which is essential for creating sophisticated Expert Advisors (EAs) and other trading scripts.
The procedure commences by applying the directive beneath the section in your MQL5 source code. This directive should include the specific path where the .EX5 library is stored, primarily in the default "MQL5/Libraries" or alongside the algorithm's source code. Once the path and file are accurately specified, the subsequent step involves detailing the exported function prototypes to ensure seamless integration within the user’s trading strategy.
Moreover, handling multiple EX5 libraries simultaneously follows a simila...
Read more...
The procedure commences by applying the directive beneath the section in your MQL5 source code. This directive should include the specific path where the .EX5 library is stored, primarily in the default "MQL5/Libraries" or alongside the algorithm's source code. Once the path and file are accurately specified, the subsequent step involves detailing the exported function prototypes to ensure seamless integration within the user’s trading strategy.
Moreover, handling multiple EX5 libraries simultaneously follows a simila...
Read more...
👍41❤11⚡4✍3👏3💯3🤔1
The Detrended Price Oscillator (DPO) provides traders with the ability to identify cycles in price movements, pinpointing the distance between peaks and troughs with greater precision. In this updated version of the DPO, a unique feature has been introduced: the oscillator is represented in blue with an accompanying smoothed histogram. This histogram aids in visualizing the length of the price cycles, simplifying cycle analysis for better strategic planning in trading activities. This innovation offers enhanced clarity and ease of analysis for traders looking to optimize their market timing based on cyclical patterns in price movements.
Read more...
Read more...
👍68❤34⚡9👏6✍4👌4🎉3
Algorithmic trading developers must adapt strategies as market conditions evolve, transitioning from mean-reverting strategies during stable times to trend-following strategies during directional shifts. A challenge arises when a single strategy is applied universally, which often fails to deliver consistent success. Instead, coding multiple strategies into a program allows for manual strategic selections tailored to current market behaviors.
To improve this methodology, developers can design systems that autonomously switch strategies based on quantitative assessments of market conditions. This adaptability can be achieved by implementing transition matrices used to measure market trends and behavior, guiding the strategy selection process.
The concept was pioneered by Andrey Markov, whose Markov Chains help model the randomness seen in market dynamics. By applying transition matri...
Read more...
To improve this methodology, developers can design systems that autonomously switch strategies based on quantitative assessments of market conditions. This adaptability can be achieved by implementing transition matrices used to measure market trends and behavior, guiding the strategy selection process.
The concept was pioneered by Andrey Markov, whose Markov Chains help model the randomness seen in market dynamics. By applying transition matri...
Read more...
👍31❤18🏆4👌3⚡1
The newly designed .mqh files facilitate the export and import of orders and trades between Expert Advisors (EAs), providing functionality for copying trades either within the same trading terminal or across terminals on the same computer. This system supports trading across different symbols, such as copying a spot market instrument's trades to corresponding futures.
For exporting, the `GRat_OrderExport.mqh` file must be included in your EA. Configuration options include setting Common to true for exporting to another terminal on the same machine, or false for the same terminal. The KeepSeconds parameter dictates the availability duration for exported trades, with a setting of 0 allowing indefinite availability. Implementation requires adding `ExportOrder()` where `OrderSend()` or `CTrade` methods execute orders.
For importing, integrate the `GRat_OrderImport.mqh` file into your EA...
Read more...
For exporting, the `GRat_OrderExport.mqh` file must be included in your EA. Configuration options include setting Common to true for exporting to another terminal on the same machine, or false for the same terminal. The KeepSeconds parameter dictates the availability duration for exported trades, with a setting of 0 allowing indefinite availability. Implementation requires adding `ExportOrder()` where `OrderSend()` or `CTrade` methods execute orders.
For importing, integrate the `GRat_OrderImport.mqh` file into your EA...
Read more...
👍56❤34⚡9🎉8🤣6
Transfer entropy is a powerful statistical measure used to determine the amount of information exchanged between time series and to analyze the direction of causal relationships. It is particularly valuable in discerning whether one variable can predict another. This approach leverages the concept of Granger causality, which is based on comparing prediction errors and enhancing model fit by including past values of a potentially causative variable in the regression model.
Significance tests such as p-values and z-scores are employed to ensure the robustness of transfer entropy calculations. These tests involve comparing results from original data with those from shuffled datasets to check if the observed causality is statistically significant or merely coincidental.
Programming-wise, an MQL5 implementation to measure transfer entropy has been described, titled `transfer_entropy.mqh`...
Read more...
Significance tests such as p-values and z-scores are employed to ensure the robustness of transfer entropy calculations. These tests involve comparing results from original data with those from shuffled datasets to check if the observed causality is statistically significant or merely coincidental.
Programming-wise, an MQL5 implementation to measure transfer entropy has been described, titled `transfer_entropy.mqh`...
Read more...
👍18❤10👌5👀2⚡1
This article discusses a trading bot that uses real-time sentiment analysis from social media to guide its trading decisions. Integrating MetaTrader 5 (MT5) with a Python-based sentiment analysis tool, the bot showcases a hybrid of quantitative finance and natural language processing. With client-server architecture, it utilizes socket communication to connect MT5's trading functionalities and Python's data parsing capabilities.
The bot analyzes Twitter sentiment concerning specific financial instruments and converts this data into actionable trading signals. This method not only taps into the synergy of diverse technologies in finance but also underscores the significance of alternative data in contemporary trading strategies. The in-depth analysis of the bot focuses on its functionality and code structure, processing social media data, and managing trade executions based on sentim...
Read more...
The bot analyzes Twitter sentiment concerning specific financial instruments and converts this data into actionable trading signals. This method not only taps into the synergy of diverse technologies in finance but also underscores the significance of alternative data in contemporary trading strategies. The in-depth analysis of the bot focuses on its functionality and code structure, processing social media data, and managing trade executions based on sentim...
Read more...
❤17👍17🏆6🔥3⚡1
This discussion revisits the topic of how learning rate formats impact Expert Advisor performance, focusing particularly on adaptive learning rates and the one-cycle learning rate. Adaptive learning rates like adaptive gradient, adaptive RMS, adaptive mean exponential, and adaptive delta are explored, each tailoring the learning rate based on the training gradients of specific parameters within the model, thereby optimizing performance by adjusting the learning input precisely.
Furthermore, the article delves into the benefits of using the Sigmoid activation within a specified range for the NZDUSD forex pair in the context of the 2023 daily timeframe. This selective use along with non-batch normalized inputs, although risky, aims to simplify the evaluation of learning rate effectiveness under controlled output conditions. The article recognizes inherent risks in non-normalized data, ...
Read more...
Furthermore, the article delves into the benefits of using the Sigmoid activation within a specified range for the NZDUSD forex pair in the context of the 2023 daily timeframe. This selective use along with non-batch normalized inputs, although risky, aims to simplify the evaluation of learning rate effectiveness under controlled output conditions. The article recognizes inherent risks in non-normalized data, ...
Read more...
👍20❤5👏4💯1
Developing an Expert Advisor (EA) requires a nuanced understanding of both algorithms and market indicators. This article highlights two primary methods for integrating indicators into an EA's algorithm. One approach is direct coding of indicator conditions, which enhances efficiency and speed in Strategy Tester operations without separate indicators. The second method involves programming the EA to respond to the indicator's buffer states, which require specific setup within MetaTrader 5 directories to ensure operational functionality.
Challenges arise when attempting to publish an EA based on a custom indicator, as the MQL5 community's validation system may not recognize the custom setup, confining testing and use to personal computers. Preparing an indicator involves organizing buffer sequences and understanding buffer operations, a critical step for seamless EA development. Each ...
Read more...
Challenges arise when attempting to publish an EA based on a custom indicator, as the MQL5 community's validation system may not recognize the custom setup, confining testing and use to personal computers. Preparing an indicator involves organizing buffer sequences and understanding buffer operations, a critical step for seamless EA development. Each ...
Read more...
👍26❤11⚡7✍3
In software development, creating and integrating multiple tools on a unified platform, such as MetaTrader 5, can lead to unexpected compatibility issues. When different programs, processes, or indicators, designed to operate independently, are combined, conflicts may arise, causing performance issues or functionalities to break. Professionals in the IT and programming sector must anticipate these conflicts and design components that can seamlessly integrate without conflict.
The development of a new Chart Trade indicator, distinct from a previous iteration discussed in earlier articles, illustrates this process. The new version avoids using legacy code and is designed to operate harmoniously with other components, specifically a mouse indicator developed earlier. This approach emphasizes creating components that can easily interact and function together, thus minimizing the potentia...
Read more...
The development of a new Chart Trade indicator, distinct from a previous iteration discussed in earlier articles, illustrates this process. The new version avoids using legacy code and is designed to operate harmoniously with other components, specifically a mouse indicator developed earlier. This approach emphasizes creating components that can easily interact and function together, thus minimizing the potentia...
Read more...
👍23❤11👏4⚡2✍2👀2
The Whale Optimization Algorithm (WOA), inspired by humpback whales' hunting strategies, applies biological behaviors to technical optimization. In algorithmic terms, "whales"—representing different solutions—navigate towards optimal results by mimicking whale hunting techniques such as "bubble netting" and "spiral penetration."
WOA initiates with a random whale population, selecting a leader based on the best objective function. This leader guides the group, with other whales updating their positions in two modes: exploration (search around the best solution) and exploitation (move towards the best solution). This balance allows the algorithm to efficiently search and optimize solutions space.
Despite its innovative approach, WOA has limitations like potential for local optimum entrapment and slow convergence times. Adjustments like incorporating migration strategies have been prop...
Read more...
WOA initiates with a random whale population, selecting a leader based on the best objective function. This leader guides the group, with other whales updating their positions in two modes: exploration (search around the best solution) and exploitation (move towards the best solution). This balance allows the algorithm to efficiently search and optimize solutions space.
Despite its innovative approach, WOA has limitations like potential for local optimum entrapment and slow convergence times. Adjustments like incorporating migration strategies have been prop...
Read more...
👍23🏆8👌4❤3👏2⚡1
The Roofing Filter Indicator, developed by John Ehlers, is utilized in trading to identify short-term trends. When this indicator surpasses its signal line, it suggests a short-term uptrend is initiating, whereas a crossover below indicates a potential downtrend. Traders may consider buying when the indicator's line turns green and selling when it shifts to red, aiding in strategic decision-making to optimize trading performances. This method provides a systematic approach to catch trend shifts promptly, benefiting those engaged in active trading environments.
Read more...
Read more...
❤38👍19⚡4👏4👌2🔥1
Linux offers a robust ecosystem for software development, preferred especially by those proficient in command line interfaces. Its package management system simplifies application installation, making the operating system transparent and mutable, allowing deep customization of its subsystems. Linux’s design includes ready-to-use essential development tools, creating a flexible and efficient environment favored in software engineering. This platform is versatile, spanning from personal desktops to sophisticated cloud services provided by major platforms like AWS and Google Cloud.
Developers targeting Windows users can utilize Linux to develop and deliver consistent, platform-agnostic applications. For instance, MetaTrader 5 developers often employ the MQL5 programming language and rely on the MT5 IDE for compiling. However, when developing custom solutions like shared libraries (DLLs)...
Read more...
Developers targeting Windows users can utilize Linux to develop and deliver consistent, platform-agnostic applications. For instance, MetaTrader 5 developers often employ the MQL5 programming language and rely on the MT5 IDE for compiling. However, when developing custom solutions like shared libraries (DLLs)...
Read more...
❤23👍10✍5👀4⚡3🎉2
This technical indicator is designed to assist in trend and channel identification using the BSI Indicator as a base evaluation tool. It begins by assessing the overall market trend with the BSI, followed by drawing either trend lines or channels based on specific conditions. The configuration includes an orange dashed line to indicate either a high trend line or channel, while a blue dashed line represents a low trend line or channel. Key visual cues include a red mark to denote a high reversal bar and a blue mark for a low reversal bar. Additional features include a pink line, which outlines the tango line indicating the entry level, and a magenta line that depicts the moving average of the tango line. For clarity on BSI values, a red dotted line is used. This type of indicator is crucial for technical analysis, providing clear visual aids to guide trading decisions.
Read more...
Read more...
👍55❤36👌5🎉2⚡1👏1😁1
MetaTrader 5 now supports a new program type called services, enabling users to create custom price feeds by implementing real-time price delivery from external systems. This feature allows for continuous data synchronization similar to that on brokers' trade servers, without needing to be chart-dependent.
Services run in their own thread, with executed threads correlating to the number of services. Unlike scripts and Expert Advisors (EAs), services can operate continuously without interrupting the functioning of other MQL5 programs, thanks to their independent execution flow. Additionally, services differ in their inability to use certain functions such as ExpertRemove() or any related to timers and custom indicators, aligning with their design to handle single Start events and ongoing tasks without user intervention.
Specifically, services can be extremely useful for background op...
Read more...
Services run in their own thread, with executed threads correlating to the number of services. Unlike scripts and Expert Advisors (EAs), services can operate continuously without interrupting the functioning of other MQL5 programs, thanks to their independent execution flow. Additionally, services differ in their inability to use certain functions such as ExpertRemove() or any related to timers and custom indicators, aligning with their design to handle single Start events and ongoing tasks without user intervention.
Specifically, services can be extremely useful for background op...
Read more...
👍35❤17👏6⚡3🏆3✍1👨💻1
This function serves as a foundational script for retrieving the day's trading history in a trading platform environment. It's designed to allow users to enhance its functionality, such as by incorporating additional data types like trading volume. Modifications can also be made to examine different time periods by adjusting the starting variable in the code.
By default, the output, specifically the Daily Profit figure, is displayed in the Experts Panel. This function is crafted to be straightforward, promoting comprehensibility and ease of adaptation for further customization and extension by users who wish to tailor the function to meet specific trading needs or integrate more complex trading metrics.
Read more...
By default, the output, specifically the Daily Profit figure, is displayed in the Experts Panel. This function is crafted to be straightforward, promoting comprehensibility and ease of adaptation for further customization and extension by users who wish to tailor the function to meet specific trading needs or integrate more complex trading metrics.
Read more...
👍65❤29🏆5🔥4👏4👌4🤔1
In the realm of computer vision, the estimation of optical flow is essential for various applications including autonomous driving and object tracking. Traditionally, this problem has been approached largely through convolutional neural networks which, while effective to an extent, often fall short in handling scenarios involving large displacements or occlusions due to their limited receptive fields.
A promising method, CCMR (Coarse-to-Fine Context-Guided Motion Reasoning), represents a significant advancement in optical flow estimation. By integrating context-based motion aggregation with high-resolution multi-scale approaches, CCMR allows for more precise detection of flow fields, particularly in areas obstructed from view. This method employs transformers and other attention mechanisms, overcoming the constraints of traditional CNNs by leveraging global context at each stage of p...
Read more...
A promising method, CCMR (Coarse-to-Fine Context-Guided Motion Reasoning), represents a significant advancement in optical flow estimation. By integrating context-based motion aggregation with high-resolution multi-scale approaches, CCMR allows for more precise detection of flow fields, particularly in areas obstructed from view. This method employs transformers and other attention mechanisms, overcoming the constraints of traditional CNNs by leveraging global context at each stage of p...
Read more...
❤23👍16👏5🏆4⚡1
The Swing High/Low Identifier is a beneficial tool for MT5 users, engineered to accentuate key swing points on trading charts. This indicator enhances traders' ability to rapidly detect critical price levels and patterns, integral for executing strategic trading decisions. It marks swing highs with red arrows above the candles and swing lows with blue arrows beneath them, based on a user-defined range of bars.
This tool offers several strategic applications including:
1. *Trend Reversal Identification*: Helps in pinpointing potential resistance and support levels, aiding traders in forecasting the start of downtrends and uptrends.
2. *Support and Resistance Analysis*: The indicator's markings can be used to draw horizontal lines or channels to identify crucial support and resistance zones.
3. *Price Action Trading*: Traders can integrate the indicator with other price action methods...
Read more...
This tool offers several strategic applications including:
1. *Trend Reversal Identification*: Helps in pinpointing potential resistance and support levels, aiding traders in forecasting the start of downtrends and uptrends.
2. *Support and Resistance Analysis*: The indicator's markings can be used to draw horizontal lines or channels to identify crucial support and resistance zones.
3. *Price Action Trading*: Traders can integrate the indicator with other price action methods...
Read more...
💯31❤17👍17⚡8👏4🎉2
In technical analysis, the significance of candlestick patterns is enhanced when the candle's body constitutes at least 50% of the total range. This attribute indicates stronger market conviction in the price movement represented by the candle. An indicator can be employed to identify and color-code these candles, distinguishing them visually on charts. Candles not meeting this criterion retain the default color settings of the chart, allowing analysts to quickly assess market sentiment and potential price directions with greater clarity. This method aids in more precise and efficient chart analysis, supporting better-informed trading decisions.
Read more...
Read more...
👍40❤22👌6🤯4🏆4⚡1