Aide au codage - page 192

 

salut mladen,

j'ai essayé depuis longtemps d'incorporer, d'appliquer et de faire quelques codes à cet indicateur, il a des problèmes d'affichage, pas de rafraîchissement et de repeindre, mais je ne sais pas pourquoi il n'a pas, pourriez-vous me dire la raison ? mais il a aussi une grande faiblesse qu'il ne calcule le signal ou la valeur après la fermeture de la barre de bougie, lorsque la bougie est toujours en cours d'exécution, il ne sera pas changer les signaux ou la valeur, mais je viens d'utiliser exactement la même formule de calcul que les indicateurs d'essai CCI avant de vous envoyer avant, pourquoi a si différent résultat ? ce que le code à l'intérieur ont fait pour faire de telles différences ? Mais j'espère qu'il peut calculer comme le vôtre, peut calculer les valeurs et les signaux instantanément lorsque les bougies est toujours en cours d'exécution (pas seulement après la fermeture), sinon les signaux seront en retard d'au moins un chandelier. comment améliorer cet indicateur si je veux qu'il change instantanément les valeurs et les signaux, merci beaucoup pour l'aide.

 

Bonjour les codeurs,

bonjour mladen,

J'ai trouvé un indicateur sur mon disque dur qui affiche une alerte lorsqu'une ligne horizontale est touchée par le prix. Je l'ai modifié un peu et il fonctionne bien. Mais maintenant je voudrais ajouter quelque chose. Il arrive souvent qu'une ligne exacte ne soit pas touchée et que le prix se retourne quelques pips plus tôt. Maintenant, je pourrais dessiner plusieurs lignes supplémentaires dans le graphique ou j'essaie de modifier cet indicateur pour qu'il n'affiche pas seulement une alerte lorsque la ligne dans le graphique est touchée mais quelques pips plus haut ou plus bas. Donc l'indicateur devrait afficher une alerte quand les prix touchent la ligne dans le graphique +5 pips ou la ligne -5 pips.

Mon idée est de changer cette ligne :

if (High[0]>=line && line>=Low[0]) en quelque chose comme ceci :

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0]))

Évidemment, cela ne fonctionne pas... Je ne sais pas pourquoi... :-/

Un autre problème est que cela ne fonctionnerait que pour des prix de 1,XXXX. Je ne peux pas utiliser 0.0005 pour les paires de Yen ou les Index-CFDs.

Je serais heureux si quelqu'un pouvait le corriger.

Merci !

Voici le code :

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true ;

extern bool displayAlert=true ;

string Texte ;

#property indicator_chart_window

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//---- indicateurs

//----

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction personnalisée de désinitialisation des indicateurs |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisée |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return ;

static datetime Time0 ;

if (Time0 == Time[0]) return ; // Une alerte par barre.

for(int iObj = ObjectsTotal() - 1 ; iObj >= 0 ; iObj--)

{

string name = ObjectName(iObj) ;

si (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1) ;

}

else continue ; // Pas HLINE

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0] ;

Alert(Texte) ;

Time0 = Time[0] ; // Plus d'alertes.

if (Notification) SendNotification(Texte) ;

}

}

//----

retour(0) ;

}

//+------------------------------------------------------------------+

 
Marbo:
Bonjour les codeurs,

bonjour mladen,

J'ai trouvé un indicateur sur mon disque dur qui affiche une alerte lorsqu'une ligne horizontale est touchée par le prix. Je l'ai modifié un peu et il fonctionne bien. Mais maintenant je voudrais ajouter quelque chose. Il arrive souvent qu'une ligne exacte ne soit pas touchée et que le prix se retourne quelques pips plus tôt. Maintenant, je pourrais dessiner plusieurs lignes supplémentaires dans le graphique ou j'essaie de modifier cet indicateur pour qu'il n'affiche pas seulement une alerte lorsque la ligne dans le graphique est touchée mais quelques pips plus haut ou plus bas. Donc l'indicateur devrait afficher une alerte quand les prix touchent la ligne dans le graphique +5 pips ou la ligne -5 pips.

Mon idée est de changer cette ligne :

if (High[0]>=line && line>=Low[0]) en quelque chose comme ceci :

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0]))

Évidemment, cela ne fonctionne pas... Je ne sais pas pourquoi... :-/

Un autre problème est que cela ne fonctionnerait que pour des prix de 1,XXXX. Je ne peux pas utiliser 0.0005 pour les paires de Yen ou les Index-CFDs.

Je serais heureux si quelqu'un pouvait le corriger.

Merci !

Voici le code :

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 |

//+------------------------------------------------------------------+

extern bool Notification=true ;

extern bool displayAlert=true ;

string Texte ;

#property indicator_chart_window

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//---- indicateurs

//----

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction personnalisée de désinitialisation des indicateurs |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0) ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisée |

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return ;

static datetime Time0 ;

if (Time0 == Time[0]) return ; // Une alerte par barre.

for(int iObj = ObjectsTotal() - 1 ; iObj >= 0 ; iObj--)

{

string name = ObjectName(iObj) ;

si (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1) ;

}

else continue ; // Pas HLINE

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @ "+Close[0] ;

Alert(Texte) ;

Time0 = Time[0] ; // Plus d'alertes.

if (Notification) SendNotification(Texte) ;

}

}

//----

retour(0) ;

}

//+------------------------------------------------------------------+

Marbo

Vous pouvez faire quelque chose comme dans le fichier joint. La seule chose que vous devriez revoir est la signification exacte de la distance en pips d'une ligne (+ ou - en cas de haut ou de bas).

Dossiers :
 

Super ! Merci !

 
zilliq:
Bonjour Mrtool et Mladen,

L'un d'entre vous peut-il m'expliquer comment est construit l'indicateur TSV Bullish & Bearish ? Je n'ai pas trouvé d'informations à ce sujet ?

Merci

Zilliq

Zilliq il y a une version ici https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 avec le code source.

 
cwu:
Si j'entre 0, cela signifie-t-il qu'il n'y a pas de SL ou de TP ? Merci encore.

Cwu,

Oui, cela devrait.

 

Les gars

J'ai vérifié que le TSV Bullish & Bearish et le plus ancien que j'ai trouvé est de 2007. Si c'est la formule, alors ce n'est rien d'autre qu'un activateur Gann high low sous une forme un peu différente (l'essence - le calcul - est la même).

 

Merci à tous,

Je verrai ça ce week-end et je posterai le TSV Bearish/bullish que j'ai.

Je suis Vet en France et je travaille demain, donc je vérifierai dimanche

J'ai déjà codé un Gann high and low, notamment avec une version lisse, donc ça doit être simple

Bon week-end et merci pour tout

Zilliq

 

Mladen,

J'ai une autre question concernant l'indicateur d'alerte de ligne. Pour le moment, il fonctionne avec des lignes horizontales. J'ai également essayé d'implémenter des lignes de tendance en utilisant OBJ_TREND mais il y a un problème que je ne comprends pas. J'ai lu dans un autre forum il y a plusieurs mois que le point de départ et le point d'arrivée de la ligne de tendance doivent être déterminés. Pourriez-vous me donner des informations sur la manière de procéder ? Ou est-ce beaucoup plus difficile que je ne l'imagine ?

Cordialement,

Marbo

 
Marbo:
Mladen,

J'ai une autre question concernant l'indicateur d'alerte de ligne. Pour l'instant, il fonctionne avec des lignes horizontales. J'ai également essayé d'implémenter des lignes de tendance en utilisant OBJ_TREND mais il y a un problème que je ne comprends pas. J'ai lu dans un autre forum il y a plusieurs mois que le point de départ et le point d'arrivée de la ligne de tendance doivent être déterminés. Pourriez-vous me donner des informations sur la manière de procéder ? Ou est-ce beaucoup plus difficile que je ne l'imagine ?

Cordialement,

Marbo

Marbo

En fait, vous n'avez pas besoin de connaître le début et la fin. Vous pouvez récupérer les valeurs d'une manière différente (en utilisant la fonction ObjectGetValueByShift() qui retournera le prix 0 si elle cherche un prix en dehors de la ligne de tendance). Vous trouverez un exemple de la façon dont cela peut être fait dans ce post : https://www.mql5.com/en/forum/177603/page3

Raison: