Vérification du stop minimum dans les EAs publiés sur la place de marché. - page 3

 
Ihor Herasko:

Je suis désolé, mais où dans votre code est-il question de la valeur de la variable StopLevel ? Dans le code que vous avez cité, il n'y a pas de changement de la valeur de cette variable. Il y a un changement des valeurs Stop et Profit. Par conséquent, si vous les augmentez une fois, vous ne pourrez pas ramener ces valeurs à leur valeur initiale. Ainsi, vous allez courir après des stops et des profits importants, alors que le niveau de stop a diminué depuis longtemps.

Je ne possède pas les informations sur de nombreux courtiers (des dizaines, des centaines). Avec les courtiers avec lesquels je dois traiter (car des clients y ont des comptes), je vois un chiffre de 2 spreads. Peut-être y a-t-il une valeur différente quelque part.

À mon avis, il s'agit là d'une approche fondamentalement erronée de l'information par un courtier. Il existe un mécanisme standard pour obtenir des restrictions sur les cigognes. Si nous recevons 0 sur demande, mais en réalité ce n'est pas zéro. Puis modifiez-la à chaque tic, en fonction de la valeur de l'écart, selon vos besoins. Mon courtier qui affiche correctement le niveau d'arrêt est le seul à avoir la bonne valeur.

J'ai fait une conclusion basée sur le nom de la fonction - OnInitLevels. Il est associé à une seule action.

Vous avez raison, nos fonctions ne sont pas similaires, mais le sens est le même,

Quand je change la variable interne, la variable externe reste la même et quand l'arrêt est plus grand ou plus petit - alors toutes les variables internes sont réarrangées, tout est OK.

Mais min stop = assign spread *2 Je vais essayer ce que le serveur MetakvotesDemo a à dire.

 
Vitalii Ananev:

J'ai fait ça

Le conseiller expert a la possibilité d'ajuster le stop de 3 façons. Définissez manuellement la taille du stop (StopLoss) ou mettez-la à zéro.

Si le StopLoss est égal à zéro, sa taille est calculée en fonction des conditions du marché, mais limitée par la variable StopLimit.

Et dans OnInit(), ces paramètres sont vérifiés pour s'assurer qu'ils sont corrects, car cela n'a aucun sens de mettre un stop en dessous de 10 points.

Oui, mais que se passe-t-il si l'arrêt = 8, comme dans le serveur MetacvotesDemo ?
 

J'ai fait ça.

int OnInitLevels(string symToWorkmodify)
  {
   int stoplevel;
   stoplevel=SymbolInfoInteger(symToWorkmodify,SYMBOL_TRADE_STOPS_LEVEL);
   double ask=SymbolInfoDouble(symToWorkmodify,SYMBOL_ASK);
   double bid=SymbolInfoDouble(symToWorkmodify,SYMBOL_BID);
   double point=SymbolInfoDouble(symToWorkmodify,SYMBOL_POINT);
   int SPREAD=(ask-bid)/point;
   if(stoplevel==0)stoplevel=SPREAD*2;
   if(lot<SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MIN);else
   if(lot>SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX))lots=SymbolInfoDouble(symToWorkmodify,SYMBOL_VOLUME_MAX);else lots=lot;
   if(StopLoss>0 && StopLoss<stoplevel)StopLosss=(int)stoplevel;else StopLosss=StopLoss;
   if(TakeProfit>0 && TakeProfit<stoplevel)TakeProfits=(int)stoplevel;else TakeProfits=TakeProfit;
   if(TrailingStop>0 && TrailingStop<stoplevel)TrallingStops=(int)stoplevel;else TrallingStops=TrailingStop;
   if(TakeProfitALL>0 && TakeProfitALL<stoplevel)TakeProfitsAver=(int)stoplevel;else TakeProfitsAver=(int)TakeProfitALL;
   if(TrailingStop>0 && TrailingStop<stoplevel)TrallingStops=(int)stoplevel;else TrallingStops=TrailingStop;

   return(0);
  }

Je vais attendre d'entendre ce que le modérateur a à dire.

 
Vitalii Ananev:

J'ai fait ça

Le conseiller expert a la possibilité d'ajuster le stop de 3 façons. Définissez manuellement la taille du stop (StopLoss) ou mettez-la à zéro.

Si le StopLoss est égal à zéro, sa taille est calculée en fonction des conditions du marché, mais limitée par la variable StopLimit.

Et dans OnInit(), ces paramètres sont vérifiés pour s'assurer qu'ils sont corrects, car cela n'a aucun sens de mettre un stop en dessous de 10 points.

Vous ne devriez pas suggérer cela, vos vérifications ne contiennent aucune référence aux conditions commerciales du compte, les chiffres proviennent du plafond.
 
Alexander Bereznyak:
Vous ne pouvez pas suggérer cela, vos contrôles n'ont aucune référence aux conditions de trading sur le compte, les chiffres proviennent du plafond...
Ils sont au plafond ici, je ne vais pas vous écrire tout le code de l'Expert Advisor ici. C'est à vous de décider si vous êtes d'accord ou non avec mon approche, je ne vais pas vous l'imposer.
 
Vladislav Andruschenko:
oui mais si stop = 8 par exemple comme le serveur MetakwotsDemo ?
Voulez-vous dire stop loss = 8 ? Dans l'exemple, j'ai fixé le stop loss minimum non basé sur les conditions de trading. Mais en fonction de l'opportunité et de la stratégie de trading mise en œuvre dans l'EA.
 
Vitalii Ananev:
Voulez-vous dire le niveau d'arrêt = 8 ? Dans l'exemple, j'ai fixé la taille minimale du stop loss sans tenir compte des conditions de trading. Mais pour des raisons d'opportunité et de stratégie de trading implémentée dans l'EA.

Oui, je comprends, la stratégie et ainsi de suite.

il ne s'agit pas de stratégie, etc.

Quand vous mettez un EA sur le marché, ils coupent votre stratégie pour la vérifier, donc ils mettent un stop pas 100 points comme pour une stratégie mais 1 !

il s'avère que c'est une erreur de 130, c'est ce que je demandais :-)

 
Vitalii Ananev:
Voulez-vous dire le niveau d'arrêt = 8 ? Dans l'exemple, j'ai fixé le stop loss minimum non basé sur les conditions de trading. Elle est basée sur l'opportunité et la stratégie de trading mise en œuvre dans l'EA.
Le caractère raisonnable peut, par inadvertance, entrer en conflit avec les conditions commerciales du compte.
 
Vladislav Andruschenko:

Oui, je comprends, la stratégie et ainsi de suite.

il ne s'agit pas de stratégie, etc.

Quand vous mettez un EA sur le marché, ils coupent votre stratégie pour la vérifier, donc ils mettent un stop non pas de 100 points comme pour une stratégie, mais de 1 !

il s'avère que c'est une erreur de 130, c'est ce que je demandais :-)

C'est ce dont je parlais. Si le niveau du stop est flottant, il faut soit le lier à un spread comme Alexander l'a suggéré, soit fixer des conditions limites en dessous desquelles vous ne pouvez pas fixer la taille du stop.
 
Vitalii Ananev:
C'est ce dont je parle. Si le niveau du stop est flottant, il faut soit le lier au spread comme l'a suggéré Alexander, soit fixer des conditions limites en dessous desquelles vous ne pouvez pas fixer la taille du stop loss.

J'ai vérifié l'écart*2 - voyons ce qu'ils disent.

Raison: