Discussion of article "The checks a trading robot must pass before publication in the Market" - page 27

 
Aleh Sasonka #:

This check is not enough when using pending orders!

There is no guarantee to pass the check:

test on EURUSD,H1 2023.04.28 17:00:38 Tester: not enough money to buy 0.60 EURUSD at 1.10395 sl: 0.00000 tp: 0.00000 [2023.04.28 17:00] 2023.04.28 17:00:38 Tester: PrevBalance: 10272.11, PrevPL: -4308.04, PrevEquity 5964.07, PrevMargin: 6271.62, NewMargin: 6293, FreeMargin: -328.50 2023.04.28 17:00:38 Tester: pending order is deleted [no enough money] strategy tester report 360 total trades

We will have to check the margin on every tick.... And what do we achieve by this? Additional load on the server?

Well, before setting all orders, do an OrderCheck for real buy/sell on the volume of all orders, as if the orders were immediately executed. Let's write off the error due to price changes for the potential time before triggering, because in any case we need to leave some reserve in the margin.
 
Good morning everyone, the test tells me that there are no operations.
 
Andrea Capuani #Good morning everyone, the test tells me that there are no operations.

There are no trading operations

This error is specific for expert advisers only. The rule is: expert advisers must trade. If your robot should be used only on a specific symbol timeframe, then here is what MetaQuotes say: "Products can not apply restrictions. All limitations should be marked as recommendations in the product description." If your robot does not trade by design (a helper tool, for example), choose approriate category ("Utilities") in the product properties.

 
Vinicius Pereira De Oliveira # :

My expert places limit orders at the beginning of the day.... the problem is that on some days, of course, the limit orders may not be filled and therefore if the range for the test is too narrow or executed on a day where the orders do not go to the market it does not execute operations.... how do I solve it?

 
Andrea Capuani # My expert places limit orders at the beginning of the day.... the problem is that on some days, of course, the limit orders may not be filled and therefore if the interval for the test is too narrow or run on a day when the orders don't go to the market, it doesn't execute the trades.... how can I solve this?
It's not clear to me: is your EA able to trade on any symbol and timeframe or does it have limitations? Regarding the automatic validation interval, I don't think that's the problem, as there are several days of testing.
 
Andrea Capuani #:
As mentioned above, the testing date range is long enough for the EA to open at least one trade at some point.

In any case, if your EA does not open any trades during that period, that alone is enough reason to fail the validation. In other words, your EA must open at least one trade, no matter what, in order to pass the test.

 
Maybe I don't understand something, please tell me. Here I got to put my product on the market, an advisor. This is the first time I do it. EA has been constantly tweaking, it works like clockwork. There are no problems with the code. In the tester MT4 flies, brings profit. In the description clearly gave a manual that the EA works on one particular TF and specified other all the minimum requirements. However, everything unnecessary blocked on the input side. To my surprise, the moderation autotest tested it on anything but what my EA is designed for. And naturally sent it back with errors. This is not a workaround, is this the norm here?
 
Pavel Matseichyk #:
Maybe I don't understand something, please tell me. Here I got to put my product on the market, an advisor. This is the first time I do it. EA has been constantly tweaking, it works like clockwork. There are no problems with the code. In the tester MT4 flies, brings profit. In the description clearly gave a manual that the EA works on one particular TF and specified other all the minimum requirements. However, everything unnecessary blocked on the input side. To my surprise, the moderation autotest tested it on anything but what my EA is designed for. And naturally sent it back with errors. It's not a workaround, is that the norm here?
That's right, that's the norm.
Your EA should trade on any currency pairs, metals and other financial instruments, on any TF, under any conditions. And also during testing the Expert Advisor should not clog the log with error messages, one message is enough.
During validation, the Expert Advisor is put in different conditions, under some conditions there should be trading, and under others there should be no trading.

 

Please clarify the following custom symbol - running in the Tester on a custom symbol.

  • Embedding different sets (sets of input parameter values) or trading logic in the code, depending on the name of the trading server.
  • Failure to optimise (sinput or not put in input) the input parameters of the algorithm responsible for trading signals of the Expert Advisor.
  •  

    fxsaber

    custom symbol - running in the Tester on a custom symbol.

  • Embedded in the code different sets (sets of input parameter values) or trading logic, depending on the name of the trading server.
  • Failure to optimise (sinput or not put in input) the input parameters of the algorithm responsible for trading signals of the Expert Advisor.
  • While there are no answers from MQ, I will assume my own answers to the questions.

    Banning a custom symbol could potentially be seen as an unacceptable restriction.

    Imho, it is not forbidden to embed presets, but I would do it in a standard way, without automatic binding to the server name - let the user have a choice - a kind of recommendation, but not mandatory.

    With the current overpopulation of AI and MO, when the model is sewn into the EA, the presence of hidden parameters (in the number of thousands or millions!) is everywhere. And it is impossible to check such a thing. In principle, most EAs have some variables that for one reason or another are not placed in the interface (for debugging, experimental modes, etc.) and can be controlled in alternative ways. I don't see any violations in this.