MQL5 Algo Trading
393K subscribers
2.59K photos
2.59K links
The best publications of the largest community of algotraders.

Subscribe to stay up-to-date with modern technologies and trading programs development.
Download Telegram
In extending the CCI indicator's functionality, the use of an executable iCCI function call has now been included. This additional feature now provides a shift parameter to control the displacement in terms of user-defined bars.

This newly included code serves both a practical and pedagogic purpose, demonstrating how to incorporate a shift function into any buffer index-based indicator. By employing [i + shift], the index is effectively shifted forward within the buffer, enabling the user to access values ahead of the current bar i.

To put it in a visual context, this action essentially shifts the plot from right to left. The accompanying script "Test_CustomCCI" exemplifies how iCustom can be employed in conjunction with this updated indicator.

To optimally use these additional functions, it's recommended to compile both files in the Indicators/Examples folder, initiating with CC...

Read more...
πŸ‘1
Market Replay System Update:

The latest iteration of the market replay system introduces several improvements and changes to ensure functionality and stability. A critical concern had been the inability to seamlessly insert data into existing bar files for different trading timelines. This created unnecessary complexities and database management challenges.

The updated solution has new directives ensuring that necessary controls are compiled with the replay service to avoid unaccounted anomalies. Changes also include better system testing to confirm file suitability for replays and necessary fail-safes for user cancellations or unexpected interruptions.

Additionally, traders who prefer to operate in specific timeframes or full-screen modes will find the updated replay system particularly useful. It allows for customized settings for better convenience and usability. The replay serv...

Read more...
πŸ‘3
Introducing a streamlined approach to CSV file reading, with no prerequisites or type casting declarations required. The implementation of this simple class enables one to carry out CSV file reading tasks efficiently. Here is a concise illustration of its application. This approach significantly cuts down on coding time, while promoting code readability and maintainability. Utilize this simple class to achieve faster development cycles and increase productivity. Top developers assure its practicality.

Keep in mind that reducing unnecessary code helps prevent potential bugs and errors. This is not just a tool, but a practical step towards more robust and cleaner codes. The use of this class should be considered by anyone seeking seamless file reading operations. Enhancements in speed and efficiency are noteworthy. Adopt this minimalistic coding approach today for an improved coding e...

Read more...
πŸ‘1
The discussion at hand concerns attempts to optimize certain aspects of a relational model previously devised for the purpose of creating an Expert Advisor. Noted drawbacks included the low learning rate resultant of complex architecture as well as an undesirably high memory footprint due to an increase in memory consumption throughout the model's training time. One proposed solution to these challenges is the application of Sparse Attention, a technique which seeks to rein in computational complexity throughout the stages of an algorithm.

Potential pitfalls of this method include the risk of oversight or underestimation concerning essential sequence elements, which may result in vital information being lost. Attempts to optimize specific instances of a sequence can also prove problematic in cases where instances are mistakenly identified as insignificant and disregarded. This metho...

Read more...
❀1πŸ‘1
Gaining an edge in chart analysis is the key to more successful strategy execution. Many seasoned developers recommend utilizing intuitive indicators for better results - one such indicator illustrates the ratio of movement sizes within a bar to the current bar size.

The application of this method can provide an efficient validation of signals. Through consistent usage and observation, there's a potential for developers to extrapolate advantageous insights from their data.

To better understand and implement this method, consider examining specific instances where such an indicator has been employed successfully. Critical exploration of these examples can bolster understanding and encourage innovative use of this valuable tool, instigating a deeper appreciation for its efficiency.

Overall, consider integrating this indicator into routine operations whenever applicable. It could a...

Read more...
πŸ‘4
View the latest detailed introduction to the world of programming wizard MQL5. This particular piece focuses on the concept of dendrograms, a crucial part of Agglomerative Hierarchical Classification (AHC). AHC is a method employed to assimilate different aspects of a dataset, grouping them systematically until the dataset can be viewed as a uniform entity. One of its chief outputs is a dendrogram. The discussion here zeroes in on how these clusters of data can be effectively used in predicting and forecasting price bar range apart from managing monetary aspects.

Absorbing price range forecasts depends largely on the trader’s overall strategy and approach. For instance, it might not take center stage when minimal leverage is used, or when trade positions are held over longer durations. Nevertheless, price bar range becomes integral for intra-day traders or individuals whose exposure...

Read more...
πŸ‘1
Unraveling the mystery of Goal-conditioned Reinforcement Learning (GCRL) in the context of maximizing total rewards. Examining the advantages of training an agent to select strategies and achieve distinct subtasks within certain scenarios uniquely. GCRL enables agents to reach different goals based on the current state of the environment. It's a nuanced extension of typical skill training methods but uses distinct approaches for agent training.

GCRL introduces specific subtasks and related rewards. Rewards for achieving a subtask need a balanced approach; they shouldn’t outweigh possible operational profits or losses but should reflect the task at hand. The informative vector describing the task for GCRL needs to clearly indicate the subtask for the agent to achieve at a certain point in time.

The advantages and downsides of both the skill training and GCRL approaches can be seen, l...

Read more...
πŸ‘1πŸ‘€1
Sharing an update in the world of coding. Upon reevaluation and constructive inputs, the code to incorporate the Keltner channel into graphs is now available.

This code has been streamlined for newcomers, maintaining a focus on simplicity paired with robust development principles. Its straightforward structure is accompanied by helpful comments crafted for easy comprehension.

Furthermore, a slew of other resources are available on the Mql5 iFunctions platform, courtesy of William210. These include beginner-friendly codes for indicators such as ADX, Alligator, AMA - Adaptive Moving Average, ATR - Average True Range, Bollinger Bands, Ichimoku, MACDr, Momentum, Moving average, Rsi, and Stochastic.

For those keen to expand their understanding, a couple of more advanced codes are available too. These demonstrate computations of the indicators without resorting to the Mql5 iFunction. T...

Read more...
πŸ‘1
Enhancing the performance of a trading strategy requires incorporating a robust money management algorithm. Previous models have limited the Agent's actions to simply determine trading direction- i.e., buying, selling, holding/waiting, closing all positions. However, these models didn't take into account capital and risk management functions.

A more effective solution is to implement algorithms for Agent training in a continuous action space. The Deep Deterministic Policy Gradient (DDPG) algorithm predicts the optimal action based on the current state (Actor) and evaluates this action (Critic). This provides a more flexible and accurate management of transaction parameters.

The Actor predicts the optimal action, while the Critic evaluates the action’s worth. Actor training in DDPG occurs by calculating the gradient of the Critic value function concerning the Actor's actions, and ...

Read more...
πŸ‘2
Understanding MQTT 5.0 Properties can be a challenge. These dynamic attributes, part of the 'extensibility mechanisms', can change within the framework of the MQTT Application Message. The proper management of these properties is crucial for performance and conformance with the OASIS Standard. This includes everything from Connection Properties like Maximum QoS and Session Expiry Interval to Publishing Properties such as Topic Alias and Correlation Data. Library developers and end-users alike may find these insights helpful. In this editorial, the concepts have been thoroughly elaborated from a user’s standpoint as well as a library developer's perspective. The OASIS Standard's terminology has been clarified, particularly in the distinction between the Application Message Properties and 'user message' properties. The role of properties in configuring interactions between Client and Se...

Read more...
πŸ‘1
The Donchian Canal has been revisited with simplicity as the main focus. It's significant to understand that the simplicity of code relates directly to resource consumption; more complexity leads to more resource usage. This pared down version of the Donchian Canal should benefit all traders who want to have this indicator on their charts.

Similarly, developers seeking a straightforward code to customize according to their needs might find this useful. Please consider lending support by improving the search engine optimization for this code. If there are practices that could add value, feel free to add such suggestions in this thread.

Several other codes have also been developed on the Mql5 iFunctions for beginners. They include ADX, Alligator, Adaptive Moving Average (AMA), Average True Range (ATR), Bollinger Bands, Ichimoku, MACDr, Momentum, Moving Average, Rsi, and Stochastic.

Read more...
πŸ‘13
The article discusses the Deep Deterministic Policy Gradient (DDPG) designed for training models in a continuous action space, emphasizing on its ability to predict future price shifts while performing capital and risk management duties. Addressing the common problem of overvaluing the Q-function, the article highlights the role that the quality of the Critic's training plays in guiding Agent behaviour and decision-making.

The article then outlines approaches to reducing overvaluation, focusing on the Twin Delayed Deep Deterministic policy gradient (TD3) algorithm - an advancement on the DDPG that enhances model training. With the help of practical examples, the authors demonstrate how the introduction of a second Critic and soft updating of target models leads to a robust learning process with less variance.

The article concludes by focusing on how the TD3 algorithm is applied usin...

Read more...
❀2πŸ‘2
SwingBot Expert Advisor (EA) uses a unique approach for managing take profits of open positions. Instead of the traditional method of closing orders based on pips from the purchase price, this EA primarily focuses on the current profit. Such an approach can provide more control over trades, avoiding potential issues with broker's slippage that may limit profits.

Assessing the total number of active orders with the same magic number initiates this process. The magic number acts as an identifier attached to an order by an EA or a trader. The code initializes a variable - total_orders to zero, and then enumerates all open orders, incrementing the total_orders variable in case of a successful selection.

Following the total orders' calculation, the code initializes three variables: ProfittoMinimo, Profit, and StopLoss. ProfittoMinimo activates the take profit level (expressed in the ac...

Read more...
πŸ‘4
Continuing the exploration into algorithms for problem-solving using reinforcement learning in a continuous action space, this piece shines the spotlight on Soft Actor-Critic (SAC). Presented almost simultaneously with TD3, SAC shares similarities with TD3 but also has notable differences, like its main goal to maximize the expected reward given the maximum entropy of the policy.

Behold, the SAC algorithm: both off-policy algorithms, SAC and TD3, exploit DDPG methods and they both use 2 Critics. However, unlike the other two methods, SAC employs a stochastic Actor policy, which enables the algorithm to explore various strategies and find optimal solutions, bearing in mind the maximum variety of actor actions.

When it comes to the stochasticity of the environment, it is understood that in S state when performing the A action, an R reward within [ R min, R max] is obtained with a Psa ...

Read more...
πŸ‘1
In the realm of programming and technical analysis, the entry and exit rules lay the foundation for any successful trading strategy. On the one hand, long positions are entered based on the parameters of the Golden Cross strategy - three distinct conditions must be satisfied. Firstly, the value of the previous moving average should surpass the shorter-term moving average. Secondly, the value of the moving average two periods back ought to be lower than that of the shorter-term moving average. Lastly, the value of the moving average two periods prior must be lower than the previous short-term moving average. When these conditions align, it signals a Golden Cross and a long position is initiated.

On the other end of the spectrum are short positions, initiated based on the Dead Cross model. This scenario unfolds when the value of the previous moving average falls below the shorter-term...

Read more...
πŸ‘1
Elastic net regression, a blend of ridge and lasso techniques, provides a potent solution to overfitting in linear models. This approach proves particularly pertinent in trading strategy development, where noise is often mistaken for patterns during training.

The process of Elastic net regression leverages the coordinate descent method of optimization, enabling a more efficient process. This method aligns with both lasso, which helps reduce training bias by repressing redundant predictors, and ridge regression, which minimizes coefficients to generalize the model. Two hyperparameters, alpha and lambda, govern the penalty term nature in the elastic net regression.

Alpha controls the type of regularization, whereby an alpha of zero reduces the penalty term to the l2-norm, and an alpha of 1 creates an l1-norm penalty function. A specified alpha between these two values allows for the...

Read more...
πŸ‘2
Presenting an efficient advisor that's based on the RSI indicator for identifying ideal market entry and exit points. It examines the previous `BarsForCondition` candles to assess the prevailing market situation.

The approach towards entry and exit is direct: Positions are initiated by employing signals from the RSI indicator - Purchasing, when RSI hits the lowest value over the set `BarsForCondition` bars and selling when RSI obtains the highest value over the defined `BarsForCondition` bars.

The exit strategy is simple as well - Positions are shut on attaining TakeProfit or StopLoss levels, which are defined in points by `TakeProfit` and `StopLoss` parameters, ensuring a balance between risk and profit.

The advisor also incorporates a timed signal filter, permitting trades only within the given `StartTime` and `EndTime` interval. It wisely refrains from trading during periods m...

Read more...
πŸ‘1
One often encounters an array of issues when dealing with orders and operations like opening positions, placing stop-loss and profit-taking parameters, and modifying orders in any trading system, particularly through the MetaTrader5 platform. Consequently, gaining an in-depth understanding of effective handling techniques for order operations in mql5 is paramount for smooth system creation.

This brief coverage will include orders, positions, and deals terms, OrderSend(), its application as well as utilization and application of CTrade class for methodical learning. The intention hereby is to provide simple, illustrative examples for developing a fool-proof trading system using two distinctive methods pertaining to working with order, deal, and position operations.

All applications should be thoroughly tested for their profitability and suitability before being put to use.

Rememb...

Read more...
πŸ‘2
Recently, there has been a widespread bug encountered within various indicators where the plot may unexpectedly drop horizontally or the buffer fails to update on the chart. A considerable solution to this issue has been uncovered.

The crux of the solution lies in refreshing the chart, an action that effectively renews the chart in the background at user-predefined refresh intervals. By default, the refresh period is set to 1. This implies that the chart's automatic refresh occurs every minute, thus remediating any sudden plot drops or buffer updating issues.

This iterative process of chart refreshing exhibits a promising fix for the prevalent bug, offering a smooth charting experience and unparalleled accuracy in indicator readings.

Read more...
❀2πŸ‘1
This article examines the application of Category theory in trading algorithms, specifically those managing trailing stops, entry signals, and position sizing. The MQL5 Wizard in the Integrated Development Environment (IDE) assists in the assembly of shared source code to formulate a testable system. The focus resides on the utilization of naturality squares, an extension of natural transformations into a commutable diagram, for induction. This process's benefits will be shown through forex pairs linked by arbitrage, with the objective of classifying price change data for one pair to develop an entry signal algorithm.

Category theory emphasizes commutation, verifying classification. By inducing naturality squares, we can streamline design and save on computational resources. This approach also shows promise for more broad application in risk management and portfolio optimization. Fu...

Read more...
πŸ‘1