MQL5 Algo Trading
490K subscribers
3.1K photos
3.1K 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
Explore the seamless implementation of machine learning algorithms in Python, utilizing a simple perceptron and moving towards complex networks like TensorFlow and Keras. Discover how Python packages can be integrated with MQL5 to expand capabilities in data analysis and model creation.

Understand the fundamentals of perceptrons, gradient descent, and multilayer perceptron networks. Follow step-by-step guidance to set up a Python environment in MetaEditor for executing scripts directly from MetaTrader 5.

Learn to construct a basic network manually, then advance to comprehensive modeling with TensorFlow and Keras. Witness the model's progression through network launch, feedforward, backpropagation, and training phases.

In the practical tutorial, implement data collection via MetaTrader 5, visualize data, and forecast with a univariate regression using Keras. ...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Python
❀63πŸ‘18⚑5✍4πŸ‘Œ2😈1
The Range Vector Fibo Logic Indicator is an advanced tool for traders using the "One Candle" and "Daily Breakout" strategies, commonly utilized by institutional traders. Its primary function is to automate key analytical processes such as projecting breakout levels, stop loss zones, and Fibonacci profit targets based on the previous day's volatility.

The tool is particularly beneficial for trading the Daily High/Low Breakout strategy by identifying precise entry points and target levels. Black lines indicate breakout triggers, signaling potential entries when a candle closes beyond these levels. Stop loss levels, depicted by red dotted lines, are set at a 0.9 Fibonacci retracement, warning of setup invalidation if reached. The blue solid lines, representing take profit zones, extend to the 1.25 Fibonacci expansion, marking the day's volatility limit.
...

πŸ‘‰ Read | VPS | @mql5dev

#MQL5 #MT5 #Indicator
❀53πŸ‘Œ3⚑2✍2πŸŽ‰2
A nonlinear smoothing algorithm of the HiLo type has been implemented in this indicator, focusing on processing the extrema of the initial time series, setting it apart from traditional approaches. The indicator offers a streamlined configuration with a single parameter, iPeriod, which defines its period. This simplicity allows for easy integration into existing trading systems while providing robust analytical capabilities. Designed for efficient performance, it adapts specifically to time series fluctuations, enhancing the precision of market trend analysis. Ideal for developers seeking advanced, yet straightforward, technical indicators.

πŸ‘‰ Read | Calendar | @mql5dev

#MQL5 #MT5 #Indicator
❀36πŸ‘Œ4⚑3
The Expert Advisor (EA) in question operates by exclusively executing buy positions, without utilizing stop-loss (SL) or take-profit (TP) levels. The configuration options include general settings such as commentary, trade initiation, and trade termination, along with notifications when a trade is closed. Risk and money management settings cover aspects like lot size, the maximum number of open positions per symbol, and the daily deal cap for each symbol.

A test was conducted using the standard settings on an account balance of $10,000 with 100:1 leverage. The trading was specifically applied to the US30 symbol. This setup focuses on maintaining a structured and controlled trading environment while adhering to preset conditions and limits.

πŸ‘‰ Read | AlgoBook | @mql5dev

#MQL5 #MT5 #EA
❀37πŸ†4πŸ‘Œ3
The recent work on MQL5's table functionality focuses on enhancing user control and data manipulation. Key updates include refining existing library classes to adjust column widths, set data types, and enable sorting by columns. This approach aligns with the MVC paradigm, allowing seamless interaction between the Model, View, and Controller components.

Enhancements in class files enhance sorting by implementing macro substitutions for index-based sorting and refining the Compare() method in CTableRow. Additionally, new methods facilitate working with table columns, including setting display flags and sorting data by column and direction.

Refinements in base and graphical element classes address tooltip functionality, handling cursor coordinates, preventing errors linked to object deletion, and ensuring better management of UI element visibility relative to t...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #MVC
❀77⚑5πŸ‘Œ5πŸ†5😁1
The integration of various well-known indicators can provide valuable insights for novice traders. By combining different indicators, such as moving averages, relative strength index (RSI), and Bollinger Bands, traders can develop a more comprehensive understanding of market trends and potential entry and exit points.

Moving averages help identify the direction of the trend over time, indicating potential buy or sell signals. RSI is used to assess market momentum, signaling potential overbought or oversold conditions. Bollinger Bands offer a perspective on market volatility and potential price reversals.

Utilizing these indicators together can assist in reducing risks and enhancing decision-making. However, it is essential for traders to thoroughly understand how each indicator works individually before integrating them into their strategies. Combi...

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Indicator
❀51πŸ†3✍1πŸŽ‰1πŸ‘€1
Freelance work in the MQL5 space offers a unique avenue for developers looking to monetize their programming skills. Important lessons shared by experienced freelancers include not overcommitting to unfamiliar tasks and conducting thorough research on job requirements. It's crucial to maintain professionalism by avoiding overwhelming clients with technical jargon, ensuring clear and concise communication instead.

Prioritize clean and organized code from the outset to avoid future complications. Flexibility and a problem-solving mindset are essential, but it's also important to remain cautious with customers who might overreach or misunderstand certain aspects of development. Emphasizing quality work and honest client interactions can lead to long-term success in this field.

πŸ‘‰ Read | Freelance | @mql5dev

#MQL5 #MT5 #Freelance
❀66πŸ†10⚑4🀑3πŸ‘2
The described function is integral to automating trade execution, carefully calculating entry and exit levels based on user-defined parameters and symbol data. It constructs a detailed trade request using MqlTradeRequest, specifying key details including the symbol, volume, order type, and more. The OrderSend function is crucial here, as it processes the trade request and returns a result indicating success or failure.

The SetTypeFillingBySymbol function plays an important role in determining how orders are executed. It adapts to the symbol's specified fulfilment policy, choosing between Fill or Cancel, Immediate or Cancel, or Return. This flexibility is key for accommodating various trading strategies and market conditions.

Additionally, the GetMinTradeLevel function ensures trades respect each instrument's minimum trading requirements, factoring i...

πŸ‘‰ Read | Forum | @mql5dev

#MQL5 #MT5 #Trading
❀45πŸ”₯4✍1
The article expands the DoEasy library for MetaTrader 5 by enhancing support for graphical objects. It introduces new library classes for shapes, arrows, and other graphical elements, allowing them to be added to collections. The update also corrects a spelling error across library files and refines how graphical objects' properties are handled, particularly with anchor points. The article outlines improved methods for identifying and managing newly added graphical objects by storing them in a structured list, enhancing memory management, and preventing leaks. Developers can now efficiently track, sort, and integrate graphical objects within the trading terminal, providing enhanced chart management capabilities.

πŸ‘‰ Read | Docs | @mql5dev

#MQL5 #MT5 #Algorithm
❀60😁4⚑2πŸ†1
Enhancing efficiency by cycling through Market Watch symbols with hotkeys can streamline workflow in trading environments. Utilize the Comma and Period keys for navigating to the previous and next symbols, respectively. To change the default hotkey assignments, identify the desired keycode using online resources like keycode.info. Upon accessing the site, note the keycode number for your preferred keys. Replace the existing keycodes (case 188 for Comma and case 190 for Period) with the new ones in your settings. This setup allows for quick adjustments and improved navigation through market lists, optimizing the trading experience.

πŸ‘‰ Read | AlgoBook | @mql5dev

#MQL5 #MT5 #script
❀38⚑3πŸ†3πŸ‘2πŸ‘€2
Concept development for improving library classes and defining descendant objects for graphical representation is underway. The focus is on expanding the abstract graphical object class by incorporating specific characteristics for objects in lines, channels, Gann, Fibo, and Elliott groups. This approach ensures that each descendant class highlights its unique properties while aligning with the overall structure of the abstract class.

Enhancements include adding a grouping property to the object class and improving time frame visibility functionality. This allows for more granular control over object properties, facilitating better management and manipulation within the library. Concrete examples involve the creation of classes for specific graphical object types, each with dedicated methods for handling associated properties.

These improvements aim to...

πŸ‘‰ Read | AlgoBook | @mql5dev

#MQL5 #MT5 #Algorithm
❀58πŸ‘Œ6πŸ‘€5⚑1
The library initially designed for MQL5 has been adapted to function with MQL4. Users interested in this modified version can assess it by renaming the test script’s suffix to mq4. The adjustment process involved contributions from @fxsaber, particularly in enhancing processing efficiency. Files such as JsonTypes.mqh, JsonUtils.mqh, and JsonDomBuilder.mqh underwent modifications to bolster parsing speed. These updates aim to optimize performance while maintaining compatibility across different versions of the MetaTrader platform. Further details on the original can be accessed through the provided link to ensure thorough understanding and application.

πŸ‘‰ Read | Signals | @mql5dev

#MQL5 #MT5 #script
❀32πŸ‘7
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
❀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
❀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
❀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
❀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
❀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
❀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
❀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
❀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
❀63πŸ‘8πŸ”₯5πŸ‘Œ5⚑4