Comment coder ? - page 7

 

D'après ce que je comprends, la meilleure façon de procéder est de regarder la barre précédente, comme vous l'avez dit. Il se peut que vous soyez en retard et que vous ne le soyez pas. Voici ce que je veux dire :

La fonction Start() traite chaque tick. MT4, de par sa conception, ne traite que le temps après un tick. Cela signifie qu'une nouvelle barre n'apparaît pas sur votre graphique avant le premier tick de cette nouvelle barre. Ainsi, lorsque vous approchez de la fin d'une barre, si votre alerte se déclenche après chaque tick (de la manière la plus ennuyeuse), vous recevrez une alerte sur le dernier tick de la barre. Si vous vous reportez à la barre précédente pour votre alerte (la méthode non ennuyeuse), vous recevrez une alerte sur le premier tick de la nouvelle barre.

Ainsi, pendant les heures où le marché est très actif, le premier tick de la nouvelle barre peut avoir lieu immédiatement après la clôture de la barre précédente (en fonction de l'heure). Pendant les heures creuses du marché, il peut s'écouler 20 à 30 secondes avant qu'un nouveau tick n'arrive, et MT 4 ne vous montrera pas la nouvelle barre tant que vous n'aurez pas obtenu ce premier tick.

J'espère que c'est clair.

Keris

 

Besoin d'aide pour coder "La technique d'entrée Volatility Stop".

Le Volatility Stop calcule la volatilité en utilisant la fourchette moyenne de la barre de prix. Il est calculé en multipliant la fourchette moyenne par une constante. La valeur est ajoutée à la clôture la plus basse lorsqu'elle est courte, et soustraite du sommet le plus haut lorsqu'elle est longue :

Fourchette = (Fourchette x (N - 1) + Haut - Bas / N)

Short = Clôture la plus basse + Plage x C

Long = Clôture la plus haute - Plage x C

Il est préférable d'utiliser le Volatility Stop dans les marchés à forte tendance. C'est une excellente technique d'entrée et, dans la plupart des cas, elle sera supérieure aux ruptures de lignes de tendance valides ou aux ruptures de canaux. Le stop inversé permet également de quantifier le risque lié à la volatilité. Les constantes doivent être maintenues entre 2,5 et 4,0.

Je n'ai pas d'expérience personnelle avec cet indicateur, mais je l'ai lu dans le livre "Fibonacci Ratios with Pattern Recognition".

Je serais très heureux si quelqu'un pouvait coder cet indicateur.

Dossiers :
v.s..bmp  962 kb
 

Igorad, merci beaucoup, le Volty Channel Stop était exactement ce que je cherchais.

 

Veuillez m'aider avec ce code...

J'essaie d'apprendre le mécanisme de l'indicateur LSMA_in_color, que j'ai trouvé ailleurs sur ce forum. Le code suivant définit la couleur des segments de ligne de l'indicateur en fonction des valeurs dans wt[] :

//========== COLOR CODING ===========================================

ExtMapBuffer3[shift] = wt[shift]; //yellow

ExtMapBuffer2[shift] = wt[shift]; //blue

ExtMapBuffer1[shift] = wt[shift]; //red

if (wt[shift+1] > wt[shift])

{

ExtMapBuffer2[shift] = EMPTY_VALUE; //turn blue off

Print ("red ",wt[shift+1]," ",wt[shift]);

}

else if (wt[shift+1] < wt[shift])

{

ExtMapBuffer1[shift] = EMPTY_VALUE; //turn red off

Print ("blue ",wt[shift+1]," ",wt[shift]);

}

else

{

ExtMapBuffer1[shift]=EMPTY_VALUE; //turn red off;

ExtMapBuffer2[shift]=EMPTY_VALUE; //turn blue off;

Print ("yellow ",wt[shift+1]," ",wt[shift]);

}

J'ai ajouté les fonctions Print() pour pouvoir voir quelles sont les valeurs réelles dans les trois conditions de couleur - rouge, jaune et bleu. Il semble que la condition jaune ne se produise que lorsque wt[shift] == wt[shift+1], mais pour une raison quelconque, lorsque j'exécute cette fonction, le journal montre qu'elle n'entre jamais dans la condition jaune. Chaque entrée de journal écrite est soit rouge, soit bleue. Sur le graphique, il y a clairement des conditions jaunes qui se produisent - chaque fois qu'il passe du rouge au bleu ou du bleu au rouge, il passe au jaune entre les deux... Pourquoi n'imprime-t-il pas les conditions jaunes dans le journal ?

De plus, en regardant le journal, je vois des cas où wt[shift] est identique à wt[shift+1], mais il s'imprime comme une condition rouge. Comment cela peut-il se produire alors que la condition rouge exige que wt[shift+1] > wt[shift] ?

Toute aide serait appréciée

 

Oui, n'hésitez pas à m'aider. .....

 

Je suis un vrai noob en code mais on dirait que le jaune est toujours allumé et que le rouge ou le bleu est mis par dessus ou le remplace simplement sauf si c'est pair, auquel cas rien n'est dessiné par dessus le jaune. Pour ce qui est du fait qu'il soit toujours rouge quand ils sont pairs, je ne sais pas.

 

code pour vérifier si la dernière transaction [fermée] était un gain ou une perte...

Existe-t-il une méthode dans mql4 pour vérifier si la dernière transaction s'est soldée par un gain ou une perte, après sa clôture ?

J'essaie OrderSelect() et OrderProfit() avec HistoryTotal() en utilisant un tableau, mais OrderProfit semble se référer à l'ordre ouvert, ce qui ne me donne pas les résultats que je souhaite.

En moyenne, mon système a 5 gains consécutifs, pour 1 perte. Ce que je veux faire, c'est qu'après une transaction perdante, je veux augmenter le nombre de lots utilisés car il y a de fortes chances que la transaction suivante soit gagnante.

Je dois donc vérifier le résultat de la dernière transaction fermée avant de modifier le nombre de lots.

Toute aide serait appréciée...

 
fxdk:
Existe-t-il une méthode dans mql4 pour vérifier si la dernière transaction s'est soldée par un bénéfice ou une perte, après sa clôture ?

J'essaie OrderSelect() et OrderProfit() avec HistoryTotal() en utilisant un tableau... mais l'OrderProfit semble se référer à l'ordre ouvert, donc il ne me donne pas les résultats que je veux.

En moyenne, mon système a 5 gains consécutifs, pour 1 perte. Ce que je veux faire, c'est qu'après une transaction perdante, je veux augmenter le nombre de lots utilisés car il y a de fortes chances que la transaction suivante soit gagnante.

Je dois donc vérifier le résultat de la dernière transaction fermée avant de modifier le nombre de lots.

Toute aide serait appréciée...

fxdk,

pour vérifier le bénéfice du dernier ordre clôturé, utilisez ce code :

int total = HistoryTotal() ;

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY) ;

Alert(OrderProfit()) ; //Ceci est le profit ou la perte du dernier ordre clôturé

 
codersguru:
fxdk,

pour vérifier le profit de la dernière commande fermée, utilisez ce code :

int total = HistoryTotal() ;

OrderSelect(total-1,SELECT_BY_POS,MODE_HISTORY) ;

Alert(OrderProfit()) ; //C'est le bénéfice ou la perte du dernier ordre clôturé.

Je pense que ce n'est pas toujours vrai. J'ai eu une discussion avec Slawa à ce sujet, et il semble que HISTORY, comme TRADE, ne sont pas toujours triés par date, et dépendent de la colonne de tri que vous utilisez dans l'onglet du terminal. Il est donc plus sûr de scanner tous ( !) les historiques et de comparer les dates de clôture ; puis de se souvenir de la dernière afin de ne pas avoir à scanner tout le tableau la prochaine fois.

Raison: