[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 950

 
Aidez-moi à ajouter des niveaux à l'indicateur pour faire un canal
Dossiers :
hp_1.mq4  3 kb
 
smogsam:

Bonjour à tous !

J'ai un problème : je n'arrive pas à comprendre l'indicateur Trend Magic. Je l'attache à mon conseiller expert, mais je ne parviens pas à obtenir les bonnes conditions de trading.

MA_1=iCustom(NULL,0, "TrendMagic",CCPeriod,ATRPeriod,0,0) ; // Bleu

MA_2=iCustom(NULL,0, "TrendMagic",CCPeriod,ATRPeriod,1,0) ; // Rouge

Je me suis déjà creusé les méninges.

L'ordre se ferme avec un retard ou s'ouvre avec un retard, mais tout fonctionne bien. Je ne le comprends pas du tout. Peut-être que l'indicateur ne fonctionne pas de la bonne manière. Quelle est la manière correcte d'écrire les conditions d'entrée-sortie pour le changement de couleur de la ligne indicatrice ?

Veuillez me conseiller sur la manière de procéder.


Le code est décompilé. Poste supprimé
 
smogsam:

Bonjour à tous !

J'ai un problème : je n'arrive pas à comprendre l'indicateur Trend Magic. Je l'attache à mon conseiller expert, mais je ne parviens pas à obtenir les bonnes conditions de négociation.

Je me suis déjà creusé les méninges.

J'ai une fermeture d'ordre retardée et une ouverture d'ordre retardée mais tout fonctionne bien. Je ne comprends pas ce que j'essaie de faire. Peut-être que l'indicateur ne fonctionne pas de la bonne manière. Comment écrire correctement les conditions d'entrée/sortie pour le changement de couleur de la ligne de l'indicateur ?

Veuillez me conseiller.

Le code est décompilé. Poste supprimé. Soumission d'une demande d'interdiction
 
smogsam:

Bonjour à tous !

J'ai un problème : je n'arrive pas à comprendre l'indicateur Trend Magic. Je l'attache à mon conseiller expert, mais je ne parviens pas à obtenir les bonnes conditions de trading.

Je me suis déjà creusé les méninges.

J'ai une fermeture d'ordre retardée et une ouverture d'ordre retardée mais tout fonctionne bien. Je ne comprends pas ce que j'essaie de faire. Peut-être que l'indicateur ne fonctionne pas de la bonne manière. Comment écrire correctement les conditions d'entrée/sortie pour le changement de couleur de la ligne de l'indicateur ?

S'il vous plaît, dites-moi.
Selon toutes les indications, il s'agit d'une dinde en hausse. Les signaux sur l'histoire sont très beaux. Je vous conseille de suivre cet indicateur en temps réel sur les minutes. Très probablement, en fonction du signal actuel, la courbe historique de cet indicateur sera redessinée.
 
Stepan241:
À toutes fins utiles, il s'agit d'un dindon de la farce. Les signaux sur l'histoire sont très beaux. Je vous conseille de suivre cet indicateur en temps réel sur les minutes. Très probablement, en fonction du signal actuel, la courbe historique de cet indicateur sera redessinée.

Je ne le pense pas. Il ne modifie pas le signal si c'est ce que vous voulez dire. Je ne sais même pas de quoi ça dépend. Le signal est correct, il est alors retardé d'une barre.


Puis-je comparer la couleur de la ligne au lieu des calculs de l'indicateur ? Comment se sortir de cette situation ? Je peux faire quelque chose pour arranger les choses ?

 
artmedia70:

Si j'ai bien compris, à partir de cette position particulière bloquée par un stop, avec un ticket particulier, vous devez ouvrir une fois du côté opposé si cette position est bloquée par un stop. N'est-ce pas ?

Ensuite, rappelez-vous le billet pour la pose que vous avez déjà ouverte dans la direction opposée et vérifiez le billet avec les autres chèques que j'ai rédigés. Si la pose opposée a déjà été ouverte depuis la position avec ce ticket, ne l'ouvrez plus.


C'est exactement ce que j'ai décrit avec cette logique, avec un ticket, donc avec un ticket, je ne comprends pas comment mieux l'implémenter en code. A part un tableau, rien ne me vient à l'esprit. Merci à ceux qui répondent.
 

Bonjour.

Pouvez-vous me dire comment faire pour qu'un EA change de lot en fonction du résultat d'une transaction précédente ?

Par exemple, si la transaction précédente a été perdante, la prochaine le sera avec lot=A, et si elle a été profitable, alors lot=lot+B, où A et B sont des constantes, quelque chose comme ça.

Peut-être que cela peut être fait avec une balance, mais je n'arrive pas à le faire moi-même :-(

ou peut-être qu'il y a une autre issue.....

 
chum:

Bonjour.

Pouvez-vous me dire comment faire pour qu'un EA change de lot en fonction du résultat d'une transaction précédente ?

Par exemple, si la transaction précédente a été perdante, la prochaine le sera avec lot=A, et si elle a été profitable, alors lot=lot+B, où A et B sont des constantes, quelque chose comme ça.

Peut-être que cela peut être fait avec une balance, mais je n'arrive pas à le faire moi-même :-(

ou peut-être qu'il y a une autre issue.....

À un moment donné, j'ai écrit une procédure qui renvoie le profit/la perte de la dernière transaction. C'est ici. Quelqu'un l'a déjà utilisé. Si nécessaire, ajoutez vous-même du MAGIC.

//Fonction Bénéfice de la dernière transaction------------------------------------------------------------------------------------------------------------------------
double _OldProfit()
{
for(int i=OrdersHistoryTotal()-1;i>=0;i--) //liste tous les ordres pour toutes les devises
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==true) //si un ordre est sélectionné avec succès
{
if (OrderSymbol() !=Symbol())continue ; // si l'ordre sélectionné n'est pas dans la même devise, continuer la recherche
{
double Ord_Profit=OrderProfit() ;
break ;
}
}
}
return(Ord_Profit) ;
}

 
Pouvez-vous me dire comment faire pour que le code EA soit exécuté non pas à chaque tick, mais à chaque nouvelle barre. Merci d'avance !
 
pr0fess0r64:
Pouvez-vous suggérer comment faire en sorte que le code EA soit exécuté non pas à chaque tick, mais à chaque nouvelle barre. Merci d'avance !

Il s'agit de la procédure standard décrite au début de START. Mise en œuvre par nombre de BAR


bool isNewBar=false ;

int ExpertBars ;

if (ExpertBars !=Bars) {ExpertBars=Bars ; isNewBar=true ; }

if (isNewBar)

{
le code de votre programme
}

Le sens doit être clair. Toutes sortes de modifications sont possibles.

Voici une autre mise en œuvre pour TIME

si (Time[0] == prevtime) return(0) ;
prevtime = Time[0] ;

Raison: