Checking the minimum stop in EAs published in the marketplace. - page 9

 
Artyom Trishkin:
Sadly, the mere presence of a bug, even handled further, is already a red rag to the marketplace moderators. And even the explanation of further logic, that the EA handles server responses, sometimes comes across the same answer: "there should be no errors". And never mind that they are further processed and are part of the EA's 'communication' with the server.

Market products are not checked by programmers or testers.

You just have to accept it as a fact and add some dumb checks to the code to pass a formal moderator check.

 
Andrey Khatimlianskii:

You just have to accept it as fact and add some dumb checks to the code to pass the formal moderator check.

and get in trouble later on in a real account
 
Andrey Khatimlianskii:

Market products are not checked by programmers or testers.

You just have to accept it as a fact and add some dumb checks to the code to pass the formal moderator's check.

I've encountered EAs in the Market that fail in the tester after one day of testing with division by zero error. And this shit passes tests on the market. This proves that in fact checks start and end with at least start of the EA.

I personally despise the authors of this kind of crap, though. I will never post such shit.

 
Alexey Volchanskiy:

I've come across EAs on the market that crash in the tester after a day of testing with a division error of zero. And this shit gets tested on the market. This proves that in fact checks start and end with at least start of the EA.

I personally despise the authors of this kind of crap, though. I will never post shit like that.

The code you posted here:

   double ask=SymbolInfoDouble(symToWorkmodify,SYMBOL_ASK);
   double bid=SymbolInfoDouble(symToWorkmodify,SYMBOL_BID);
   double point=SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT);
   int spread=(ask-bid)/point;

Also not suitable for market, because they say that there are Forex brokers with zero spread, so we get zero. Well, zero multiplied by X gives zero, in this case "2 * spread = stopLevel = 0".

to avoid this kind of mistake:

stopLevel=MathMax(2.0*spread,1.0);
 
Vladislav Andruschenko:

Yes, this is only for the market - but there is no universality for any broker

the way it works is you have to make a min stop at 3 spreads in order to be accepted in the market,

The only difference is that the market accepts them - you have to make a min stop and 3 spreads, but in fact this is wrong - if a broker min stop = 1 spread - then the user will not be able to put less than 3 spreads.

Baffle.

Market is testing EAs with default parameters. This is from correspondence with market managers.

Accordingly, it is possible to enter an external variable, even of double type, by which to multiply the spread size and set the default value to 3.

 
Alexey Viktorov:

Market is testing EAs with default parameters. This is from correspondence with Market's managers.

Accordingly, it is possible to introduce an external variable, even of double type, on which to multiply the spread size and put the default value of 3.

No. Market is testing with different parameters, including the default ones, such as stoploss and takeprofit = 1.

here is the latest work in freelance :-)

When testing the Expert Advisor I received error messages. It is necessary to test the Expert Advisor in different modes: unsuitable for trading symbol lack of funds in the account lack of history symbols with 4 and 5 decimal places different tick simulation modes Also check for correctness of values of all parameters in trading functions.

I.e. it is immediately obvious that the person does not know the programming language and is trying to sell the product in the marketplace.

 
It would be better to provide for limits below/above which the product configuration cannot be changed in the code. Although it is impossible to predict how the user will configure the product in advance. I had a case. At first the user who bought my product wrote a suggestion to add some functions to the indicator. I did. Then he started to tell me that the indicator did not work properly. I checked it several times in the tester and was sitting in the monitor for a few hours watching the indicator wrong. Then I found out through correspondence and leading questions that this user is using an indicator that is looking for an "inside bar" pattern on a one-minute time frame on the chart! Those who know how this pattern works would not even think of trading the "inside bar" pattern on a one-minute time frame.
 
What prevents you from running the strategy tester yourself instead of guessing "will it or won't it". In the strategy tester, select optimization and complete enumeration of the input parameters. After testing, all that remains is to check the log.
 
Vladislav Andruschenko:

here's a look at freelance's latest work :-)

Is that a quote from correspondence with the marketplace moderator? And where is the reference to error 130?
 
Karputov Vladimir:
What prevents you from running the strategy tester instead of guessing "will it or won't it"? In the strategy tester, select optimization and complete enumeration of the input parameters. After testing, you only need to check the log.

it's not that simple really, some situations are unrealistic to check in the tester. i've come across this. for example, the councilor K...... - could not be accepted.

The idea there was to open a pending position after a position triggering - a simple pendulum algorithm, but no it was not accepted,

due to the error of insufficient funds.

The order was opened by pendulum, but it was not taken into account and I had to open position after it was opened, so I had to buy a lot more.

I have a feeling that this is not a standard situation.