
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Self Optimizing Expert Advisor With MQL5 And Python (Part V): Deep Markov Models
Developing a robot in Python and MQL5 (Part 1): Data preprocessing
We will look at the development cycle of a trading robot: data collection, processing, sample expansion, feature engineering, model selection and training, creating a trading system via Python, and monitoring trades.
Working in Python has its own advantages: speed in the field of machine learning, as well as the ability to select and generate features. Exporting models to ONNX requires exactly the same feature generation logic as in Python, which is not easy. That is why I have selected online trading via Python.
Developing a robot in Python and MQL5 (Part 2): Model selection, creation and training, Python custom tester
In the previous article, we talked a bit about machine learning, performed data augmentation, developed features for the future model and selected the best of them. Now it is time to move on and create a working machine learning model that will learn from our features and trade (hopefully successfully). To evaluate the model, we will write a custom Python tester that will help us evaluate the performance of the model and the beauty of the test graphs. For more beautiful test graphs and greater model stability, we will also develop a number of classic machine learning features along the way.
Our ultimate goal is to create a working and maximally profitable model for price forecasting and trading. All code will be in Python, with inclusions of the MQL5 library.
Data Science and ML (Part 31): Using CatBoost AI Models for Trading
CatBoost is an open-source software library with gradient-boosting algorithms on decision trees, it was designed specifically to address the challenges of handling categorical features and data in machine learning.
It was developed by Yandex and was made open-source in the year of 2017, read more.
Despite being introduced recently compared to machine learning techniques such as Linear regression or SVM's, CatBoost gained massive popularity among AI communities and rose to the top of the most used machine learning models on platforms like Kaggle.
What made CatBoost gain this much attention is its ability to automatically handle categorical features in the dataset, which can be challenging to many machine learning algorithms.
Data Science and ML (Part 31): Using CatBoost artificial intelligence models for trading
CatBoost is an open-source software library with gradient-based decision tree bousting algorithms that was developed specifically to solve problems related to categorical feature and data processing in machine learning.
It was developed by Yandex and was open sourced in 2017, read more.
Despite being introduced recently compared to machine learning methods such as linear regression or SVM, CatBoost has gained immense popularity among AI communities and has risen to the top of the most used machine learning models on platforms such as Kaggle.
The reason for this attention to CatBoost was its ability to automatically handle categorical features in a dataset that can be challenging for many machine learning algorithms.
So yeah, yandex is just a supermodel for business. Talked to developers, no one there could tolerate more than half a year. Just inexperienced juniors.
Feature Engineering With Python And MQL5 (Part I): Forecasting Moving Averages For Long-Range AI Models
Self Optimizing Expert Advisor With MQL5 And Python (Part VI): Taking Advantage of Deep Double Descent
Overfitting in machine learning can take on many different forms. Most commonly, it happens when an AI model learns too much of the noise in the data, and fails to make any useful generalizations. This leads to dismal performance when we assess the model on data it has not seen before. There are many techniques that have been developed to mitigate overfitting, but such methods can often prove challenging to implement, especially when you are just getting started on your journey. However, a recent paper, published by a group of diligent Harvard Alumni, suggests that on certain tasks, overfitting may be a problem of the past. This article will walk you through the research paper, and demonstrate how you can build world-class AI models, inline with the world's leading research.
Multiple Symbol Analysis With Python And MQL5 (Part II): Principal Components Analysis For Portfolio Optimization
For members of our community looking to sell Expert Advisors, this article will demonstrate how you can create a seamless experience for your end users. Our trading application will flexible and robust at the same time. I will show you how to create trading applications that will allow your clients to easily switch between high, medium and low-risk trading modes. While the PCA algorithm will take care of the heavy lifting for your end users in the background.
Feature Engineering With Python And MQL5 (Part II): Angle Of Price
Machine learning models are very sensitive instruments. In this series of articles, we will pay significantly more attention to how the transformations we apply to our data, affects our model's performance. Likewise, our models are also sensitive to how the relationship between the input and the target is conveyed. This means, we may need to create new features from the data we have at hand, in order for our model to effectively learn.
From Python to MQL5: A Journey into Quantum-Inspired Trading Systems
This article explores the application of quantum-inspired concepts in trading systems, bridging theoretical quantum computing with practical implementation in MQL5. We’ll introduce essential quantum principles and guide you from Python prototyping to MQL5 integration, with real-world performance data.
Hello, I found a bug: copy_rates_range returns the wrong data - it should return OHLC bar data, but it returns tick data. I didn't know where to report it.
I used the sample code from the reference book with other dates and instrument:
and the output I get:
MetaTrader5 package author: MetaQuotes Ltd.
MetaTrader5 package version: 5.0.4682
Выведем полученные данные как есть
(1704844800, 1.09291, 1.09291, 1.09262, 4607600487953426211, 6, 18, 0.)
(1704845100, 1.09284, 1.09285, 1.09237, 4607599271981526821, 19, 7, 0.)
(1704845400, 1.09263, 1.09284, 1.09263, 4607599587233500737, 15, 16, 0.)
(1704845700, 1.09257, 1.09288, 1.09257, 4607600487953426211, 8, 13, 0.)
(1704846000, 1.09283, 1.09287, 1.09283, 4607600532989422485, 64, 15, 0.)
(1704846300, 1.09285, 1.09286, 1.09265, 4607599992557467200, 17, 15, 0.)
(1704846600, 1.09273, 1.09286, 1.09273, 4607600623061415032, 23, 19, 0.)
(1704846900, 1.09286, 1.09288, 1.09283, 4607600713133407580, 11, 17, 0.)
(1704847200, 1.09288, 1.09288, 1.09282, 4607600713133407580, 9, 13, 0.)
(1704847500, 1.09288, 1.09289, 1.09286, 4607600758169403853, 12, 11, 0.)
Выведем датафрейм с данными
time bid ask last volume time_msc flags volume_real
0 2024-01-10 00:00:00 1.09291 1.09291 1.09262 4607600487953426211 6 18 0.0
1 2024-01-10 00:05:00 1.09284 1.09285 1.09237 4607599271981526821 19 7 0.0
2 2024-01-10 00:10:00 1.09263 1.09284 1.09263 4607599587233500737 15 16 0.0
3 2024-01-10 00:15:00 1.09257 1.09288 1.09257 4607600487953426211 8 13 0.0
4 2024-01-10 00:20:00 1.09283 1.09287 1.09283 4607600532989422485 64 15 0.0
5 2024-01-10 00:25:00 1.09285 1.09286 1.09265 4607599992557467200 17 15 0.0
6 2024-01-10 00:30:00 1.09273 1.09286 1.09273 4607600623061415032 23 19 0.0
7 2024-01-10 00:35:00 1.09286 1.09288 1.09283 4607600713133407580 11 17 0.0
8 2024-01-10 00:40:00 1.09288 1.09288 1.09282 4607600713133407580 9 13 0.0
9 2024-01-10 00:45:00 1.09288 1.09289 1.09286 4607600758169403853 12 11 0.0
And should have received a type of data like this:
MetaTrader5 package author: MetaQuotes Software Corp.
MetaTrader5 package version: 5.0.29
Выведем полученные данные как есть
(1578614400, 109.513, 109.527, 109.505, 109.521, 43, 2, 0)
(1578614700, 109.521, 109.549, 109.518, 109.543, 215, 8, 0)
(1578615000, 109.543, 109.543, 109.466, 109.505, 98, 10, 0)
(1578615300, 109.504, 109.534, 109.502, 109.517, 155, 8, 0)
(1578615600, 109.517, 109.539, 109.513, 109.527, 71, 4, 0)
(1578615900, 109.526, 109.537, 109.484, 109.52, 106, 9, 0)
(1578616200, 109.52, 109.524, 109.508, 109.51, 205, 7, 0)
(1578616500, 109.51, 109.51, 109.491, 109.496, 44, 8, 0)
(1578616800, 109.496, 109.509, 109.487, 109.5, 85, 5, 0)
(1578617100, 109.5, 109.504, 109.487, 109.489, 82, 7, 0)
Выведем датафрейм с данными
time open high low close tick_volume spread real_volume
0 2020-01-10 00:00:00 109.513 109.527 109.505 109.521 43 2 0
1 2020-01-10 00:05:00 109.521 109.549 109.518 109.543 215 8 0
2 2020-01-10 00:10:00 109.543 109.543 109.466 109.505 98 10 0
3 2020-01-10 00:15:00 109.504 109.534 109.502 109.517 155 8 0
4 2020-01-10 00:20:00 109.517 109.539 109.513 109.527 71 4 0
5 2020-01-10 00:25:00 109.526 109.537 109.484 109.520 106 9 0
6 2020-01-10 00:30:00 109.520 109.524 109.508 109.510 205 7 0
7 2020-01-10 00:35:00 109.510 109.510 109.491 109.496 44 8 0
8 2020-01-10 00:40:00 109.496 109.509 109.487 109.500 85 5 0
9 2020-01-10 00:45:00 109.500 109.504 109.487 109.489 82 7 0
I downgraded the MetaTrader5 library to version 5.0.4200 and it worked fine:
MetaTrader5 package author: MetaQuotes Ltd.
MetaTrader5 package version: 5.0.4200
Выведем полученные данные как есть
(1704844800, 1.09291, 1.09291, 1.09262, 1.09283, 6, 18, 0)
(1704845100, 1.09284, 1.09285, 1.09237, 1.09256, 19, 7, 0)
(1704845400, 1.09263, 1.09284, 1.09263, 1.09263, 15, 16, 0)
(1704845700, 1.09257, 1.09288, 1.09257, 1.09283, 8, 13, 0)
(1704846000, 1.09283, 1.09287, 1.09283, 1.09284, 64, 15, 0)
(1704846300, 1.09285, 1.09286, 1.09265, 1.09272, 17, 15, 0)
(1704846600, 1.09273, 1.09286, 1.09273, 1.09286, 23, 19, 0)
(1704846900, 1.09286, 1.09288, 1.09283, 1.09288, 11, 17, 0)
(1704847200, 1.09288, 1.09288, 1.09282, 1.09288, 9, 13, 0)
(1704847500, 1.09288, 1.09289, 1.09286, 1.09289, 12, 11, 0)
Выведем датафрейм с данными
time open high low close tick_volume spread real_volume
0 2024-01-10 00:00:00 1.09291 1.09291 1.09262 1.09283 6 18 0
1 2024-01-10 00:05:00 1.09284 1.09285 1.09237 1.09256 19 7 0
2 2024-01-10 00:10:00 1.09263 1.09284 1.09263 1.09263 15 16 0
3 2024-01-10 00:15:00 1.09257 1.09288 1.09257 1.09283 8 13 0
4 2024-01-10 00:20:00 1.09283 1.09287 1.09283 1.09284 64 15 0
5 2024-01-10 00:25:00 1.09285 1.09286 1.09265 1.09272 17 15 0
6 2024-01-10 00:30:00 1.09273 1.09286 1.09273 1.09286 23 19 0
7 2024-01-10 00:35:00 1.09286 1.09288 1.09283 1.09288 11 17 0
8 2024-01-10 00:40:00 1.09288 1.09288 1.09282 1.09288 9 13 0
9 2024-01-10 00:45:00 1.09288 1.09289 1.09286 1.09289 12 11 0