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
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
In trading circles, the Engulfing Candlestick Pattern is generating considerable interest, particularly the hidden version. This pattern comes with an option to select either two or three bars break, opening up new strategic possibilities.

Consider a two bars break instance: Here, a bullish candle closes above the opening of a preceding bearish candle, all the while having at least one harami (a 'pregnant' candle) nested in the space between them. This forms a distinctive configuration, a strong indicator of deeper market shifts.

Meanwhile, the three bars break example expands on this. Here you have a bullish candle that again closes above its bearish predecessor's open. However, this time, you have the flexibility of having at least two intervening harami. This provides an enhanced dynamic, tapping into the shifting sentiment across an extended timeline.

Whether it's a two bar or ...

Read more...
πŸ‘1
In algorithmic trading and technical analysis, specific patterns emerge that allow for greater precision. These patterns, such as swing highs and swing lows, are vital to understand. A swing high is recognized when a peak has two preceding peaks that are increasing and two subsequent peaks that are decreasing. Conversely, a swing low is noted when a lower point has two previous lows that are decreasing, followed by two subsequent lows that are increasing.

Moreover, there is flexibility around color coding for these positions. Through the use of code adjustments, the buffer color pertaining to these highs and lows can be customized. Web colors can then be utilized to gain the desired visual representation. This blend of analytic understanding and visualization customization offers a robust tool in algorithmic trading strategy development.

Remember, the power of programming lies in ...

Read more...
πŸ™7
Artificial intelligence models significantly rely on quality datasets. In foreign exchange or stock data, modeling challenges arise from difficulty in data labeling and complex market information. An introduced method uses EA operation charts to fabricate datasets with trend markings and allows for intuitive data manipulation, customization, and expansion.

The first segment explains labeling data format by splitting data into trend groups. Trend-grouping in time series is suggested as a viable solution, further enhanced by adding another index column that indicates the trend development in the data. The method's unique feature reflects trend stage development degrees, such as wave stages in a trend.

Secondly, the posts detail how clients can manipulate charts and initialize files. By disabling CHART_AUTOSCROLL and CHART_SHIFT, charts can be managed according to manual operations. ...

Read more...
πŸ‘2
Understanding the writing of an indicator in MQL can seem like a daunting task. The essential parameters to start with are: AtrMultiplier and Period. The AtrMultiplier parameter adjusts the distance of the lines from the moving averages, according to the current Atr value. As for the Period, it involves the high and low moving average and Atr period.

The basic structure involves the creation of six lines - the uppermost line is calculated as 2*AtrMultiplier*Atr + HighMA, followed by the second line which is derived from AtrMultiplier*Atr + HighMA, and so forth. This process provides an attainable platform for even beginners to comprehend with ease.

Supporting educational measures such as the creation of an introductory video and various learning resources equip beginners with the necessary skills to understand this technical aspect. Remember, mastering the art of coding indicators...

Read more...
❀3πŸ‘1
Examining the topic of input parameters, particularly relating to AtrMultiplier and Period, it can be said that these play a critical role within coding and programming. The gist of it is the creation of six distinct lines. These lines are calculated using a formula that involves a multiple of the AtrMultiplier, the Atr value, and either the High or Low moving average.

As an example, calculating the upper line would involve doubling the AtrMultiplier, multiplying it by the Atr value and adding the result to the High Moving Average. Additional lines follow a similar logic, merely adjusting the multiplier and choice of moving average.

For programmers who are still green, a video tutorial has been created to expand on this task. This guide focuses on how to write an indicator in mql, which offers a new perspective on the application of input parameters within code. Over time, underst...

Read more...
πŸ‘2❀1
In the latest installment of the Replay System Market Simulation series, new features have been implemented to enhance user conveniency. Users can now choose if they want to see the process of trading bar formation or not, offering a tailored service for both visual learners and those who prefer a clean end-result.

The advancement of this technical task requires cautious handling with new variables introduced into the system with respective functionalities. These updates allow for improved uniformity among system elements and coping with obstacles and challenges in a more efficient manner.

Another crucial feature to note is the added user notifications when there's no more data in the system to simulate or continue the replay. This not only prevents confusion but reinforces clarity and transparency, thus elevating the user experience.

Finally, an additional 'Please Wait' warning...

Read more...
πŸ‘3
Delve into the world of design patterns to elevate your programming skills and enhance productivity. Reduce redundancy and embrace the concept of 'Don't Repeat Yourself' with these powerful tools. They offer targeted solutions for common problems faced in software development, promoting code reusability, clarity and efficiency.

Gain insights on the different types of design patterns based on their purpose - Creational, Structural and Behavioral, their definitions, uses, benefits and real-world applications. Each pattern type will be explained comprehensively, with special emphasis on creational patterns in which you will learn about Abstract Factory, Builder, Factory Method, Prototype and Singleton.

For those wishing to utilize these patterns in MQL5, a practical guide will be provided. It will detail simplified concepts, concrete examples and how they can be effectively implemented...

Read more...
πŸ™2❀1
Understanding the application of ONNX (Open Neural Network Exchange) and how it aligns with different machine learning models and frameworks is crucial for developers. The ONNX format does have its limitations. For instance, while it accepts various input data types, it always yields the tensor(float) type as output. Model conversion or use of different data types can lead to accuracy losses - the clang in the gear often falls on the converter. Though some models overcome these limitations, ensuring full portability of ONNX models and allowing double precision work without accuracy loss.

Scikit-learn, a popular library for machine learning in Python, offers numerous algorithms and a user-friendly interface. This article attempts to understand the use of Scikit-learn's regression models, their parameters' computation with double precision for the test data set, and their conversion to...

Read more...
πŸ‘3
Official documentation provides illustrative examples for all code and functions, offering a valuable resource for quick progress, whether that be for the beginner coder or the seasoned developer in need of a rudimentary template. In pursuit of a simplified, reusable version of the code, any comments or feedback from industry peers would be valued.

Several examples of optimized code for beginner programmers, modified from the MQL5 iFunctions, are on offer. A range of functions like ADX, Alligator, AMA - Adaptive Moving Average, ATR - Average True Range, Bands Bollinger, Ichimoku, MACDr, Momentum, Moving averages, RSI, and Stochastic have been simplified.

In addition, there are also advanced codes that demonstrate indicator calculations without the use of MQL5 iFunctions, namely AO - Awesome Oscillator and RSI for beginners. These examples serve to make coding more tangible and com...

Read more...
πŸ‘3