[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 18

 
artmedia70:

Une question similaire a déjà été posée et répondue ici (je ne me souviens plus qui y a répondu). Pour que vous n'ayez pas à le chercher, le voici :

-----------------------------------------
Comment calculer, sur la base des fonds disponibles et du lot, de combien de points (en points) le prix peut être négatif ? ???
Formule de liaison : Lot=Money/(Staples*Tick)
Argent - gagné/perdu
Stoplos - pips du courtier
Tick - MarketInfo( MODE_TICKVALUE)
A partir de là, tordez comme vous le souhaitez :
Stopplus=Money/(Lot*Tick)
Argent=Lot*Stopplus*Tick
-----------------------------------------
Maintenant, sur la base des formules ci-dessus, faites ce que vous voulez...




Merci. Je vais réfléchir. Des options supplémentaires seraient les bienvenues
 
vovan-gogan:

Merci. Je vais réfléchir. Des options supplémentaires seraient les bienvenues

1. Le risque par transaction était de 10 % du dépôt,

2. Que les 10 pour cent se situent à l'intérieur de la distance de la SL

3) Ces 10% doivent être augmentés de 50% après chaque transaction perdante.

Par exemple, le dépôt est de 10 000 USD, le risque pour une transaction avec un certain SL connu doit être de 1 000 USD. Si la transaction est déficitaire, alors la prochaine transaction doit risquer 1500, la suivante 2000, etc. Et dès la première transaction rentable, le risque revient immédiatement au niveau initial du dépôt : 10 %. Comment le mettre en œuvre dans le programme ?

Nous connaissons les trois composantes des trois dont vous avez besoin. Maintenant, il suffit de faire les calculs et de vérifier l'admissibilité.

1. Connaissons-nous la caution ? Vous pouvez calculer le risque en argent : Depo/100*Pourcentage de risque. Le Tick est pris ici : Tick = MarketInfo(Symbol(), MODE_TICKVALUE) ; Le Stop Loss nous est connu.

2) Lot pour ouvrir une position = Risque en argent / (Stop Loss en pips * Tick)

3. si vous voulez augmenter le risque, recalculez le risque en argent (troisième point ci-dessus) par le pourcentage de risque augmenté...

 
DDFedor:

1. Nous savons que les exemples se trouvent dans le codebase.

2. Nous savons que l'extension des fichiers de bibliothèque est mqh.

3. Combinez, faites une recherche sur le moteur de recherche.

4. Nous obtenons le premier résultat. https://www.mql5.com/ru/code/10344 - Je n'ai pas regardé dans l'archive, mais il y a probablement un fichier de bibliothèques et un fichier de démarrage là aussi.

L'extension de tous les programmes MQL4 est probablement "*.mq4".

"*.mqh" est une extension du fichier d'en-tête de la bibliothèque, similaire au C++. Tout cela n'a pas d'importance, cependant. "*.mqh" compile aussi bien.

 
Bonsoir. Pouvez-vous me dire si un nombre de type int est initialement 0 ?
 

Pouvez-vous me conseiller à un moment donné d'activer le stop loss dans mon EA, qui est situé au milieu entre le prix actuel et le prix d'ouverture.

middleSL=OrderOpenPrice()+(Close[0]-OrderOpenPrice())/MIDDLESL;
Quand le prix monte, il tire vers le haut, mais jamais vers le bas.

J'ai vu que close[0] qui se termine sur un nombre pair et Close[0]-1*Point(odd), dans la formule, produisent le même middleSL, et incluent la même commande à OrderModify, que dois-je faire dans le code pour éviter que cela se produise, merci.

P.S. MIDDLESL est une variable, maintenant il est 2, mais avec l'aide de l'optimiseur, va trouver une valeur plus favorable

 
nadya:
Bonsoir. Pouvez-vous me dire si un nombre de type int est initialement 0 ?

Oui, lorsque vous définissez une variable comme un nombre entier, elle a initialement la valeur 0.
 
Merci, Denis !
 
nadya:
Bonsoir. Pouvez-vous me dire si un nombre de type int est initialement égal à 0 ?

Une hypothèse étrange et une réponse tout aussi étrange.

En général, c'est toujours le cas, mais il y a des moments dommageables où les variables ne sont pas remises à zéro.

anecdote à cet effet :

Un programmeur rentre chez lui triste et les choses ne vont pas bien au travail. Il a décidé de prendre un verre dans un bar sur le chemin. Il est assis là, tout triste, buvant, pensant au code qui ne fonctionne pas. Une prostituée locale s'assoit avec lui. Essaie d'entamer une conversation. Il est bouche bée. Puis il lui demande :
- Quel est votre nom ?
- Celui qui veut vous appeler, vous appelle comme il veut.
Le programmeur (se tapote le front) :
- C'est vrai ! La valeur par défaut doit être donnée ! !!
Et j'ai couru chez moi pour finir le code.

Moralité - toujours initialiser les variables avec une valeur !

 
LazarevDenis:

Pouvez-vous me conseiller à un moment donné d'activer le stop loss dans mon EA, qui est situé au milieu entre le prix actuel et le prix d'ouverture.

Quand le prix monte, il tire vers le haut, mais jamais vers le bas.

J'ai vu que close[0] qui se termine sur un nombre pair et Close[0]-1*Point(odd), dans la formule, produisent le même middleSL, et incluent la même commande à OrderModify, que dois-je faire dans le code pour éviter que cela se produise, merci.

P.S. MIDDLESL est une variable, maintenant il est 2, mais avec l'aide de l'optimiseur, va trouver une valeur plus favorable

Lorsque le middleSL est envoyé au stoploss, il est normalisé, c'est-à-dire qu'il est arrondi à un certain signe, lorsqu'il est divisé par 2, cela se produit, c'est inévitable.
 
sergeev:

Une hypothèse étrange et une réponse tout aussi étrange.

En général, c'est toujours le cas, mais il y a des moments dommageables où les variables ne sont pas remises à zéro.

Une anecdote à ce sujet :

Le programmeur rentre chez lui triste, quelque chose ne va pas au travail. En chemin, il a décidé de prendre un verre dans un bar. Il est assis là, tout triste, buvant, pensant au code qui ne fonctionne pas. Une prostituée locale s'assoit avec lui. Essaie d'entamer une conversation. Il essaie de gagner du temps. Puis lui demande :
- Quel est ton nom ?
- Celui qui veut vous appeler, vous appelle comme il veut.
Programmeur (se tapant sur le front) :
- C'est ça ! La valeur par défaut doit être donnée ! !!
Et j'ai couru chez moi pour finir le code.

Moralité - toujours initialiser les variables avec une valeur !

et si je l'écris comme une variable globale, dois-je y assigner la valeur directement ?