Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 54

 
Vitaly Muzichenko:
Vous avez déjà un certain prix à partir duquel vous devriez seulement chaluter en utilisant l'analogue d'un chalut simple mais un chalut simple est basé sur le prix d 'ouverture de la position = OrderOpenPrice() et ici il est basé sur le prix moyen calculé et modifie toutes les positions d'un niveau.

Oui, je l'ai.

Je regarde le code que j'ai posté précédemment et cela me donne une image comme celle-ci dans le testeur

C'est une fonction que je veux réduire la taille de ces auges, car il y a un drain sur l'une d'elles.

comme un exemple précédent -

J'ai maintenant les mains pleines de shorts sur la croissance du dollar-yen et je veux juste y ajouter la fonction d'assurance (si les pertes atteignent un pourcentage du solde - fermer tout).
Dossiers :
TesterGraph.gif  19 kb
 
vitek2010:

Je ne parlais pas de ticks, je parlais de la nécessité de fixer les lectures minimales et maximales du tampon de l'indicateur calculé sur un plus petit timeframe, dans l'écart d'un plus grand timeframe Je vais essayer de le montrer sur la capture d'écran Dans ce cas, le plus grand timeframe est pris, et le plus petit H1 (mais c'est la fenêtre de différents timeframes) :

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]

Je vais considérer la semaine 05.12 (croix rouge) ce graphique à barres par l'indicateur montré ci-dessus montre clairement que le mouvement total de la paire à la fin de la semaine était descendant de 95 points, mais il ne montre pas combien de points étaient descendants ou ascendants pendant la semaine.

Et ici sur cet écran vous pouvez voir la dynamique de cet indicateur sur le graphique H1 pendant cette semaine :

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]

L'indicateur avait une valeur minimale de 400, puis est monté à 700 et a clôturé à 160 (la différence de chiffres sur les deux écrans n'est pas importante).

j'ai besoin de toutes ces valeurs dans un indicateur dans une barre de l'histogramme et le minimum, le maximum et la clôture (dans ce cas sur la mèche). idéalement sur le timeframe actuel de celui que vous spécifiez dans les paramètres du timeframe.

je l'ai fait sur mt4 insta avec la copie de mcl5

Dans le code que vous avez montré ci-dessus, la référence est au TF actuel, alors de quoi parlons-nous ? Si vous accédez à la M5 depuis W1, écrivez-le de cette façon.

Si vous travaillez avec l'intervalle de temps actuel, alors le prix de clôture est flottant sur la barre zéro, et sur le reste - un seul prix de clôture, pas plusieurs, comment puis-je construire un histogramme sur une valeur ?

Les images sont insérées à l'aide du bouton approprié en haut de la fenêtre d'édition du message, il y a beaucoup de boutons utiles, je vous recommande d'apprendre.

 
trader781:

Oui, je l'ai.

Je regarde le code que j'ai posté précédemment et cela me donne une image comme celle-ci dans le testeur

c'est la fonction que je veux pour réduire la taille de ces auges, parce qu'il y a éventuellement un drain sur l'une d'elles.

comme un exemple précédent -

J'ai ouvert des positions courtes sur la hausse du yen et du dollar et je veux juste l'assurer (si les pertes atteignent le pourcentage du solde - tout fermer).
Je voudrais utiliser la fonction "bump" (si les pertes atteignent un pourcentage du solde). Et les termes du CT à affiner, si l'effondrement - alors les intrants ne sont pas là et pas là.
 
Vitalie Postolache:
Vous devez "taper" moins souvent ou abandonner la martingale. Et affiner les termes du TS, si vous perdez - alors les apports ne sont pas là et pas là.

Merci pour les conseils, mais je veux juste que le code fonctionne comme je le veux, ce n'est pas une question de rentabilité/profitabilité. Je veux juste voir à quoi ressemblent ces fonctions.

Eh bien, je suis tombé sur une expression dans le code précédent(_BuyLot>_SellLot ?)Bid:Ask)

Comment dois-je l'interpréter ?

 
trader781:

Merci pour les conseils, mais je veux juste que le code fonctionne comme je le veux, ce n'est pas une question de rentabilité/profitabilité. Je veux juste voir à quoi ressemblent ces fonctions.

Eh bien, je suis tombé sur une expression dans le code précédent(_BuyLot>_SellLot ?)Bid:Ask)

Comment dois-je l'interpréter ?

Lire ici https://docs.mql4.com/ru/basis/operators/ternary
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
  • docs.mql4.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
 
trader781:

Merci pour les conseils, mais je veux juste que le code fonctionne comme je le veux, ce n'est pas une question de rentabilité/profitabilité. Je veux juste voir à quoi ressemblent ces fonctions.

Eh bien, je suis tombé sur une expression dans le code précédent(_BuyLot>_SellLot ?)Bid:Ask)

Comment dois-je l'interpréter ?

C'est comme ça dans la transcription. L'entrée précédente est plus courte et semble souvent plus jolie dans le code, mais le sens de l'exécution du code ne change pas

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}
 
Vitaly Muzichenko:

C'est comme ça dans la transcription. L'entrée précédente est plus courte et a très souvent un aspect plus agréable dans le code, mais elle ne change pas le sens de l'exécution du code.

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}

où xxx =_BuyLot

sinon

xxx =_SellLot

n'est-ce pas ?


Alexey Viktorov:
Lire ici https://docs.mql4.com/ru/basis/operators/ternary
J'ai un morceau de code banal écrit dans un langage simple, et pourtant vous pouvez difficilement comprendre ce qu'il dit de mon point de vue. C'est un simple algorithme écrit par un générateur.
 
trader781:

où xxx =_BuyLot

sinon

xxx =_SellLot

n'est-ce pas ?

Non, ça ne l'est pas.

if(_BuyLot-_SellLot != 0) {
  if(_BuyLot > _SellLot) {
   AllAwerage= NormalizeDouble(Bid-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  } else {
   AllAwerage= NormalizeDouble(Ask-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  }
} else {
  AllAwerage=0;
}

Mais c'est beaucoup de lignes de code.

 
trader781:

où xxx =_BuyLot

sinon

xxx =_SellLot

n'est-ce pas ?


J'ai un morceau de code banal écrit dans un langage simple, et pourtant vous pouvez difficilement comprendre ce qui y est écrit de mon point de vue. Un algorithme simple écrit par un générateur.

Faux. L'opérateur trap attribue une valeur à une variable, et non à l'expression comparée.

double price=(_BuyLot>_SellLot ?)Bid:Ask) ;

Et il est grand temps que nous comprenions les algorithmes, qu'ils soient générés ou écrits à la main. Bien que parfois il soit plus facile d'écrire à la main que de comprendre ce que quelqu'un a vissé là.

 
Vitalie Postolache:


Et les algorithmes devraient déjà être démantelés, qu'ils soient générés ou écrits à la main.

Eh bien, je n'utilise pas encore les classes, les tableaux, les macros et les importations des bibliothèques Windows. Tout cela au bon moment.