[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 689

 
chief2000:

Je me demandais par où commencer pour calculer le risque d'une nouvelle transaction, si le critère principal est le risque le plus faible ? -

AccountFreeMargin(), AccountEquity(), AccountBalance() ... ?

- AccountBalance() - ne prend pas en compte les transactions ouvertes.

- AccountEquity() - c'est ce que nous voyons sur le graphique de la balance ? - Dans ce cas, nous compterons sur l'argent qui ne nous appartient pas encore.

- AccountFreeMargin() - peut-on l'utiliser ? (J'accepte que je puisse mal comprendre ce que c'est)

- AccountEquity() - il s'agit de nos fonds... Regardez le graphique que fait le testeur. Il y a deux lignes ici - l'une (bleue) représente le solde et l'autre (verte) les fonds.

Le solde est notre bénéfice hypothétique, possible, qui doit encore être réalisé, il est si... rien... une approximation de ce qui pourrait résulter de l'accord...

Les fonds sont ce que nous avons déjà et ce que nous risquons. Et si notre ordre est devenu déficitaire, cela apparaît immédiatement sur la courbe des capitaux propres (le graphique des moyens réels ).

C'est pourquoi AccountBalance() est, selon vos termes, "...". ce que nous voyons sur le graphique d'équilibre... ... l'argent qui ne nous appartient pas encore..."

L'argent qui nous appartient est l'équité.

Lorsque vous fermez une position en moins, la courbe d'équilibre tombe sur la courbe d'équité. Bien que, jusqu'à ce que nous ayons fermé la position, le solde ne reflète pas cela et montre l'état possible du compte, créant l'apparence de stabilité et de prospérité... :) Pendant ce temps, la courbe des actions reflète l'état réel de notre compte et de nos fonds.

S'il n'y a qu'une seule position ouverte sur le marché, nous ne pouvons pas voir la courbe des actions. Dès que nous ouvrons une autre position et la fermons en laissant la seconde ouverte, nous voyons immédiatement la courbe d'équité car la position réelle du compte diffère de la position possible. Ou fermez une seule position partiellement bénéficiaire et la courbe d'équité deviendra immédiatement plus élevée que la courbe d'équilibre. Si vous le fermez complètement, vous verrez que les deux courbes convergent au même point.

 
Mes amis, s'il vous plaît, aidez-nous. J'essaie de créer une fonction qui recherche les extrema sur le graphique de n'importe quel indicateur. Le fait est que pour certaines de mes stratégies, j'ai besoin de trouver les divergences dans différents indicateurs et graphiques de prix, dans différentes TF. C'est-à-dire que je suis confus par l'implémentation d'un algorithme pour l'identification des extrema, la comparaison des extrema qui leur correspondent dans le graphique des prix et, de plus, avec la possibilité de les rechercher non seulement dans le graphique d'un indicateur particulier, mais dans n'importe quel indicateur spécifié dans la fonction, ou au moins écrit dans le code.

Aussi... J'ai remarqué une caractéristique intéressante d'Ind. A/D. Si nous traçons des lignes de tendance sur ce graphique (à nouveau, en passant par ses extrémités), alors si le graphique A/D croise ces lignes, nous pouvons nous attendre à un renversement ou à une correction de la tendance principale du graphique des prix. Je n'arrive pas à trouver comment l'implémenter dans le code. Je joins même une photo :

Si cela ne vous dérange pas, veuillez me conseiller au moins l'algorithme pour y parvenir.

Je n'arrive pas à trouver une structure ordonnée et une séquence d'opérations...

Ne laissez pas mon collègue ici se tarir... :)

 
artmedia70:

- AccountEquity() est notre moyen... Regardez le graphique que fait le testeur. Il y a deux lignes ici - l'une (bleue) représente le solde et l'autre (verte) les fonds.

Le solde est notre bénéfice hypothétique, possible, qui doit encore être réalisé, il est si... rien... une approximation de ce qui pourrait résulter de l'accord...

Les fonds sont ce que nous avons déjà et ce que nous risquons. Et si notre ordre est devenu déficitaire, cela apparaît immédiatement sur la courbe des capitaux propres (le graphique des moyens réels ).

C'est pourquoi AccountBalance() est, selon vos termes, "...". ce que nous voyons sur le graphique d'équilibre... ... l'argent qui ne nous appartient pas encore..."

Les fonds qui nous appartiennent sont des fonds propres.

Lorsque vous fermez une position en moins, la courbe d'équilibre tombe sur la courbe d'équité. Bien que, jusqu'à ce que nous ayons fermé la position, le solde ne reflète pas cela et montre l'état possible du compte, créant l'apparence de stabilité et de prospérité... :) Pendant ce temps, la courbe des capitaux propres reflète l'état réel de notre compte et de nos fonds.

S'il n'y a toujours qu'une seule position ouverte sur le marché, nous ne pouvons pas voir la courbe des actions. Une fois que nous ouvrons une autre position et que nous la fermons en laissant la seconde ouverte, nous verrons immédiatement la courbe d'équité car la position réelle du compte sera différente de la position possible. Ou fermez une seule position partiellement bénéficiaire et la courbe d'équité deviendra immédiatement plus élevée que la courbe d'équilibre. Si vous le fermez complètement, vous verrez que les deux courbes convergent au même point.

Ce que je veux dire, c'est que nous voyons la ligne Actions = Fonds (verte) sur le graphique de la balance.

.

Je ne suis pas d'accord avec l'affirmation selon laquelle l'équité est ce que nous avons déjà. Si j'ai ouvert un trade avec Take Profit = 300 pips, le prix a passé en +200 pips et ceci est montré par la ligne Equity. Supposons qu'à ce stade, je souhaite ouvrir une nouvelle transaction et effectuer un calcul de risque (une option -> de l'Equity). Si, après cela, le prix s'inverse et passe à zéro ou moins, le risque pris sur l'équité sera plus élevé que le risque pris sur le solde - et ne sera pas correct du tout, car le profit sur une transaction non fermée est un profit virtuel.

Le deuxième cas - si le bénéfice sur la première transaction est passé dans le rouge et qu'une nouvelle transaction doit être ouverte, le risque pris par Balance (qui ne voit pas la transaction non rentable actuelle=non fermée) serait surestimé.

La conclusion est de considérer la valeur la plus basse des deux. J'aimerais ici obtenir des informations sur AccountFreeMargin() - ce qu'elle est et si elle résout le problème ou si elle n'est pas pertinente du tout.

 

Peut-on reconfigurer MT4 de façon à ce que les prélèvements soient calculés en fonction du solde et non de l'équité ?

(Je pense que c'était autrefois le cas, quelle est la version et où puis-je l'obtenir ?)

 
chief2000:

Je voulais dire que nous voyons la ligne Fonds propres = Fonds (vert) sur le graphique du bilan.

.

Je ne suis pas d'accord avec l'affirmation selon laquelle l'équité est ce que nous avons déjà. Si j'ai ouvert un trade avec Take Profit = 300 pips, le prix a passé en +200 pips et ceci est montré par la ligne Equity. Supposons qu'à ce stade, je souhaite ouvrir une nouvelle transaction et effectuer un calcul de risque (une option -> de l'Equity). Si, après cela, le prix s'inverse et passe à zéro ou moins, le risque pris sur l'équité sera plus élevé que le risque pris sur le solde - et ne sera pas correct du tout, car le profit sur une transaction non fermée est un profit virtuel.

Le deuxième cas - si le bénéfice sur la première transaction est passé dans le rouge et qu'une nouvelle transaction doit être ouverte, le risque pris par Balance (qui ne voit pas la transaction non rentable actuelle=non fermée) serait surestimé.

La conclusion est de considérer la valeur la plus basse des deux. C'est ici que j'aimerais obtenir des informations sur AccountFreeMargin() - ce qu'elle est et si elle résout le problème ou si elle n'est pas pertinente du tout.

OK, mais si on s'éloigne de l'équilibre, que se passera-t-il ? Le solde montre un état des lieux complètement irréaliste de notre compte... ?

Essayons une expérience... J'ai intentionnellement tout désactivé dans mon Expert Advisor, ne laissant que des positions ouvertes en fonction du marché et de la tendance, supprimant les stop-loss et vérifiant la fin de la tendance. Nous ouvrirons toutes les positions possibles pour suivre le marché et les fermerons partiellement lorsque le marché bouge, et celles qui ont été ouvertes sur le bas ou sur le haut seront suspendues et mangeront de la marge. Examinons les courbes d'équilibre et d'équité... OK ? (Notez la colonne Fonds libres (equity) dans le coin supérieur gauche de la fenêtre de l'indicateur)

Alors...


J'ai ouvert la première position et me suis déplacé de 12pp dans le profit ; pas de solde, les fonds montrent déjà une augmentation...


Une position a été partiellement fermée, l'autre est sur le marché. Le solde indique les fonds provenant d'une clôture partielle, les capitaux propres sont supérieurs au solde car le prix actuel continue d'augmenter.

Si nous fermons toutes les positions maintenant, le solde est égal à l'équité...


Ici, nous pouvons déjà voir que la dernière clôture partielle était à un meilleur prix que la précédente. Par conséquent, les fonds propres ont commencé à diminuer, se rapprochant de l'équilibre.


Et maintenant nous regardons l'équilibre et l'équité...


... Eh bien, après une semaine de ce marathon...


 
Selon vous, quelle est la position réelle du compte : le solde, qui augmente constamment, ou les fonds... ?
 
artmedia70:
1. J'essaie de créer une fonction qui recherche les extrema dans n'importe quel indicateur graphique.

..

2. Si nous y traçons des lignes de tendance (à nouveau, en passant par ses extrémités), alors si le graphique A/D croise ces lignes, nous devons nous attendre à un renversement ou à une correction de la tendance principale du graphique des prix. Je ne trouve pas comment l'implémenter dans le code.

1. Il n'y a aucun problème pour identifier les extrema - il suffit d'alimenter l'indicateur à l'entrée d'une certaine ZZ au lieu du prix. Bien entendu, il faut savoir que la procédure d'identification des extrema est fondamentalement ambiguë. Je me souviens avoir montré une photo sous cette forme il y a quelque temps. Oh, je l'ai trouvé :)



2. Je ne vais pas inventer une image, mais cela fait plusieurs années que je veux le faire et je n'y arrive toujours pas : une ligne est définie par deux coefficients, notés A et B. Vous créez deux tableaux, A[] et B[], et un compteur de lignes, i. Lorsque vous créez une nouvelle ligne, saisissez A et B dans A[i] et B[i] et incrémentez le nombre de lignes. Si le nombre de lignes dépasse la taille des tableaux, vous l'augmentez ou le remettez à zéro (c'est-à-dire que vous commencez à jeter les anciennes lignes dans l'ordre de leur création). Le reste est simple, vous calculez la position actuelle de chaque point de la ligne dans les tableaux A[] et B[] dans la boucle et vérifiez l'intersection avec la ligne indicatrice.

Au fait, vous devriez payer un échantillon du futur indicateur comme frais :)

 
Pour conclure, je vous donnerai un exemple de clôture de telles transactions en augmentant l'équité d'un nombre de pourcentages spécifié. Je l'ai augmenté de 5%.

Graphique, après 16 jours. Vous pouvez clairement voir comment la ligne de solde tombe sur la ligne d'équité lorsque toutes les positions sont fermées et qu'elle augmente de 5%.


C'est ce qu'on appelle le profit total de toutes les positions.

 
artmedia70:
Sur la base de ce qui précède, pouvez-vous me dire ce qui montre la position réelle du compte - le solde, en constante augmentation, ou les fonds ?

Vous avez confirmé ce que j'ai déjà écrit, mais vous vous en tenez à l'un des extrêmes.

Pour ne pas trop m'écarter du sujet principal, je suis plus intéressé par la question concernant AccountFreeMargin() - ce qu'elle est et si elle résout le problème que j'ai décrit ci-dessus.

 
chief2000:

Vous avez confirmé ce que j'ai déjà écrit, mais vous vous en tenez à l'un des extrêmes.

Pour ne pas trop m'écarter du sujet principal, je suis plus intéressé par la question concernant AccountFreeMargin() - ce qu'elle est et si elle résout le problème que j'ai décrit ci-dessus.

double AccountFreeMargin( )
Renvoie la valeur de la marge libre autorisée pour ouvrir des positions sur le compte courant.
Exemple :
Print("Marge libre du compte = ",AccountFreeMargin()) ;