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

 
Vladislav Andruschenko:

Je suis d'accord - ne donnez pas le contrôle, mais vous savez comment il est nécessaire, comme : je veux régler mon propre arrêt. faites un réglage.

Et à propos de la sortie du message - merci, je vais y réfléchir.

J'utilise les deux options dans tous les EAs. Si le stop loss est fixé à zéro dans les paramètres, je le calcule dans Expert Advisor ; s'il est fixé à plus de zéro, je vérifie l'exactitude et fixe le stop loss déjà fixé. Des exceptions peuvent être faites pour les Expert Advisors, où le stop loss n'est pas du tout utilisé.
 
Vitalii Ananev:
Je les utilise tous les deux dans tous les EAs. Si le stop loss est fixé à zéro dans les paramètres, je le calcule dans Expert Advisor ; s'il est supérieur à zéro, je vérifie qu'il est correct et je fixe à nouveau le stop loss. Des exceptions peuvent être faites pour les Expert Advisors, où le stop loss n'est pas du tout utilisé.

Oui, mais dans macret, cela ne fonctionne pas correctement si le serveur stopmin = 0.

Ce n'était pas le cas avant - j'avais ce contrôle.

Maintenant les modérateurs dans le Marché ont intentionnellement mis StopLoss 1 - avec MinStop = 0 et l'erreur 130 sort - produit non accepté dans le Marché.

 
Vladislav Andruschenko:

Oui, c'est seulement pour le marché - mais il n'y a pas d'universalité pour n'importe quel courtier.

la façon dont cela fonctionne est que vous devez faire un stop min à 3 spreads afin d'être accepté sur le marché,

La seule différence est que le marché les accepte - vous devez faire un stop min et 3 spreads, mais en fait c'est faux - si un stop min de courtier = 1 spread - alors l'utilisateur ne pourra pas mettre moins de 3 spreads.

Déflecteur.

Et quel est l'intérêt de mettre un arrêt aussi peu profond. Il sera emporté par le mouvement aléatoire du bruit.
 
Vitalii Ananev:
Quel est l'intérêt de mettre un arrêt aussi peu profond. Il sera emporté par le mouvement aléatoire du bruit.
Il ne s'agit pas de ce que les utilisateurs mettent, il est clair que le stoploss n'est pas de 1 point - il s'agit de vérifier sur le marché, ils ont spécifiquement mis stoploss = 1.
 
Vladislav Andruschenko:

Oui, mais dans macret, cela ne fonctionne pas correctement si le serveur stopmin = 0.

Ce n'était pas le cas avant - j'avais ce contrôle.

Maintenant, les modérateurs du marché ont mis à dessein le stoploom 1 - avec le minstop = 0 et l'erreur 130 apparaît - produit non accepté sur le marché. ...

Par contrôle de l'exactitude, je voulais dire ce que j'ai dit plus haut à propos de la première option. Définissez votre propre valeur de la distance d'arrêt minimum.
 
Vladislav Andruschenko:

Oui, c'est seulement pour le marché - mais il n'y a pas d'universalité pour n'importe quel courtier.

la façon dont cela fonctionne est que vous devez faire un stop min à 3 spreads afin d'être accepté sur le marché,

La seule différence est que le marché les accepte - vous devez faire un stop min et 3 spreads, mais en fait c'est faux - si un stop min de courtier = 1 spread - alors l'utilisateur ne peut pas mettre moins de 3 spreads.

Déflecteur.

vérifiez, si le niveleur de butée a donné un résultat non nul, utilisez-le, et s'il a donné un résultat nul, faites une offre d'achat.

 
Alexander Bereznyak:

vérifier, si stop-Level a retourné un résultat non nul, alors l'utiliser, et s'il a retourné zéro, alors Ask-Bid

mais pas toujours min stop = spread,

il est compréhensible de vérifier. :-) Je vérifie,

 
Vitalii Ananev:
Par vérification de l'exactitude, je voulais dire ce que j'ai dit plus haut à propos de la première option. Définissez votre propre valeur pour la distance d'arrêt minimale.
c'est pointer du doigt dans le ciel ou vérifier soigneusement les conditions commerciales de l'instrument, j'ai écrit plus haut comment
 
Vladislav Andruschenko:

Merci. Mais vous avez la même construction que moi,

Je suis désolé, mais je n'ai pas vu où dans votre code la valeur de la variable StopLevel est mentionnée ? Dans le code que vous avez cité, il n'y a pas de changement de la valeur d'une telle variable. Il y a un changement des valeurs Stop et Profit. Par conséquent, si vous les augmentez une fois, il sera impossible de ramener ces valeurs à leur valeur initiale. Ainsi, vous serez à la recherche de grands stops et de profits, alors que le niveau de stop a diminué depuis longtemps.

Seulement vous avez multiplié à min stop = 0 juste par spread*2, mais comme nous savons que chez beaucoup de courtiers min stop = 3 spreads, pourquoi avez-vous fait 2 ?

Je ne dispose pas d'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. Pour cette raison, je n'achète des comptes réels que chez les courtiers qui représentent correctement la valeur du niveau d'arrêt.

Je vérifie le stop min à chaque tick.

J'ai fait une conclusion basée sur le nom de la fonction - OnInitLevels. Il est associé à une seule action.
 
Vladislav Andruschenko:
Il ne s'agit pas de ce que les utilisateurs placent, il est clair que le stoploss n'est pas de 1 pip - le point est dans la vérification sur le marché, ils placent délibérément stoploss = 1.

J'ai fait ça

   if ((StopLimit<10 && StopLimit!=0)  || (StopLoss<10 && StopLoss!=0))
   {
      Alert("Error in parameters. Too small size of a parametr of 'Stop loss' or 'Stop Loss limit'");
      return(INIT_PARAMETERS_INCORRECT);
   }

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(), l'exactitude de ces paramètres est vérifiée, car cela n'a aucun sens de placer un stop inférieur à 10 points.

Raison: