Discussion of article "Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal"
Impressionant article.
Thanks. I love this new mql5 forum, and it seems becoming a kind of science.
Your article is great, and is something i was looking for years, thanks for helping me indirectly.
I also should warn that there is an(logically insignificant) error in the include file CSampleStrategy,
//+------------------------------------------------------------------+ //| The StrategyPerformance function of effectiveness of strategy | //+------------------------------------------------------------------+ double CSampleStrategy::StrategyPerformance() { //returns the effectiveness of strategy /in this case it's the difference between the amount
the last raw have only one slash on the comment and this generate about 13 errors when compiling the mq5 expert.
This is a very great article, that combined with many other articles knowledge in the last months of mql5 can make a very interesting
experimentations on high-grade experts advisors.
I was wondering about the possibility to improve this article-strategy, in example by adding files possibility
to the code, to store and recall extra results.. The fantasy would not stop.
Thanks again.
PS: it also produce to me an "internal error #55"
that don't let the ex5 being created. Some helps.. ?
I also should warn that there is an(logically insignificant) error in the include file CSampleStrategy,
the last raw have only one slash on the comment and this generate about 13 errors when compiling the mq5 expert.
Thanks for the corrected version.
I think a thing: even if this article is very interesting, the idea is very great, the code is very clean and with many advantages,
and even if this is an example EA, the whole EA as published is Strategy Tester unfriendly.
I mean the fact that with the downloaded version is not possible to set input parameters from the terminal.
Since include files cannot have input parameters variables, how the way to "inputize" the many variables of the many include files
of this EA?
Is it a bother to translate the documentation to English? I always appreciate some good docs. Great article, thanks for your awesome contribution.
Is it a bother to translate the documentation to English? I always appreciate some good docs. Great article, thanks for your awesome contribution.
To work with input parameters (variables), it's easy with just declaring them before class declaration, and
following the the class (includes) calling path.
Is it a bother to translate the documentation to English? I always appreciate some good docs. Great article, thanks for your awesome contribution.
This is probably the most thought provoking article I have read on programmatic/robotic trading for a very, very, long time. A big thank you!
Acting on this new enthusiasm, I have adapted Eugene's work a little. [Apologies - at least I too will share ideas ;-) ]
I adapted an existing EA (not Object Oriented yet, unfortunately) for:
1. Multiple time scales: M1, M3, M5, M10, M20, M30, H1
2. Multiple Fast MA's: 3,5,7,9,11
3. Multiple Slow MA's: 17,27,37,47 etc 97,107, 117 etc
Attached to an M1 tick, on a foreach(period)-foreach(fast)-foreach(slow) loop. Each tick works out if it needs to check for a 'virtual' trade, and 'executes' if need be, keeping a logical/virtual P/L balance.
Results are very suprising, and very positive ...
Optimisation is now in the areas of removing short time periods (e.g. M1, M3) [as higher time periods eventually 'win'], and also in determining how often to clear down the 'running P/L' counter to allow for detection of 'rapidly improving' parameter sets.
I have also to interface my favourite trading EA into this work (to add ADX/RSI/MACD/RVI checks etc), so that it always uses optimal, winning fast/slow MA pairs, and also has good market, money, position and trade management logic.
Thanks again,
T.
Quantum,
obviously if i want add more buy and sell conditions (or pairs/combos of buy and sell conditions), apart from the still gifted
if(buy_condition_1 && buy_condition_2) new_state=SIGNAL_OPEN_LONG; if(sell_condition_1 && sell_condition_2) new_state=SIGNAL_OPEN_SHORT;
in example in CStrategyMA.mqh,
to trigger other opportunities for
new_state=SIGNAL_CLOSE_SHORT;
// and
new_state=SIGNAL_CLOSE_LONG;
it have not logical sense to add those combos in the file CStrategyMA.mqh, but for every new conditions or pairs/combos
of conditions, it should be dedicated another include/class file,
that's right?
I rapidly mean, in example, if i want add those conditions:
// Buy condition 3: MA new bool buy_condition_3=(m_values[0+5]>m_values[1+7]) && (m_values[1+5]>m_values[2+7]); // Buy condition 4: previous OPEN price is higher than MA bool buy_condition_4=(p_open>m_values[1]); // Sell condition 3: MA new bool sell_condition_3=(m_values[0+5]<m_values[1+7]) && (m_values[1+5]<m_values[2+7]); // Buy condition 4: previous OPEN price is lower than MA bool sell_condition_4=(p_open<m_values[1]);
and
if(buy_condition_3 && buy_condition_4) new_state=SIGNAL_OPEN_LONG; if(sell_condition_3 && sell_condition_4) new_state=SIGNAL_OPEN_SHORT; if((GetSignalState()==SIGNAL_OPEN_SHORT) && (buy_condition_3 || buy_condition_4)) new_state=SIGNAL_CLOSE_SHORT; if((GetSignalState()==SIGNAL_OPEN_LONG) && (sell_condition_3 || sell_condition_4)) new_state=SIGNAL_CLOSE_LONG;
it can be added in sub-classes within CStrategyMA.mqh, without affecting the core system of the
adaptive system, in other words with continuing correctly this include file CStrategyMA.mqh interact with CAdaptiveStrategy.mqh
and CSampleStrategy.mqh, also taking consideration of the new conditions (3 and 4 of the example) in the logical core
of the EA idea?
Or for the condition 3 and 4, i should rewrite and add, for example, a file CStrategyMA3and4.mqh ???
It is possible to add those conditions within the same CStrategyMA.mqh and working all correctly?
Maybe i've the reply by myself and i'm bit stupid, but also want ask your opinion(s)..
Thanks
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
New article Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal is published:
This article suggests a variant of an adaptive system that consists of many strategies, each of which performs its own "virtual" trade operations. Real trading is performed in accordance with the signals of a most profitable strategy at the moment. Thanks to using of the object-oriented approach, classes for working with data and trade classes of the Standard library, the architecture of the system appeared to be simple and scalable; now you can easily create and analyze the adaptive systems that include hundreds of trade strategies.
Author: MetaQuotes