Aide au codage - page 509

 
tfi_markets:
Salut Pro-Coders,

J'obtiens l'avertissement : "vérifiez la précédence de l'opérateur pour une erreur éventuelle ; utilisez les parenthèses pour clarifier la précédence".

if ((STC115)||(STC185)&&(Ask>emaFilter && ADXmain>25))

{

OpenBuy();

}

Il semble que l'instruction ..AND (Ask>emaFilter) soit également ignorée par MT4.

Quelqu'un pourrait-il me conseiller ?

Merci d'avance !

Vous devriez probablement l'écrire comme ceci :

if((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25) )

Mais cela dépend principalement de ce que vous voulez tester exactement. L'avertissement vient du fait qu'avant la précédence de && (et) et || (ou) était différente - ils l'ont inversé et maintenant toutes ces comparaisons logiques doivent être vérifiées.

 
mladen:
Vous devriez probablement l'écrire comme ceci :

si (((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25) )

Mais cela dépend principalement de ce que vous voulez exactement tester. L'avertissement vient du fait qu'avant la précédence de && (et) et || (ou) était différente - ils l'ont inversé et maintenant toutes ces comparaisons logiques doivent être vérifiées.

Salut Mladen,

merci beaucoup pour votre suggestion. Je vais l'essayer ! Vous êtes toujours très utile !

En termes simples, les trois parenthèses doivent devenir vraies avant que l'EA n'ouvre une transaction.

Je suppose que votre code fournira cette fonctionnalité.

Cordialement,

T.

 

Codeurs,

Quelqu'un pourrait-il m'aider avec ce qui suit ?

J'utilise un script de vagues Elliot pour étiqueter manuellement les vagues. Le script place 8 objets différents sur le graphique (i,ii,iii,iv,v,a,b,c).

Tout fonctionne bien, mais la suppression des objets demande beaucoup de travail. En effet, je dois cliquer sur chaque objet (i, ii, iii, iv, v, a, b, c) pour les supprimer. Je voudrais ajouter quelque chose au code qui me permette de mettre en évidence tous les objets (i,ii,iii,iv,v,a,b,c) avec un seul clic sur les objets. J'ai déjà cherché mais je n'ai pas trouvé la fonction dont j'ai besoin.

(Je ne cherche pas un script qui supprime tous les objets du graphique).

Merci d'avance

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

//+------------------------------------------------------------------+
 
xtractalpha:
Codeurs,

Quelqu'un pourrait-il m'aider avec ce qui suit ?

J'utilise un script de vagues Elliot pour étiqueter manuellement les vagues. Le script place 8 objets différents sur le graphique (i,ii,iii,iv,v,a,b,c).

Tout fonctionne bien, mais la suppression des objets demande beaucoup de travail. En effet, je dois cliquer sur chaque objet (i, ii, iii, iv, v, a, b, c) pour les supprimer. Je voudrais ajouter quelque chose au code qui me permette de mettre en évidence tous les objets (i,ii,iii,iv,v,a,b,c) avec un seul clic sur les objets. J'ai déjà cherché mais je n'ai pas trouvé la fonction dont j'ai besoin.

(Je ne cherche pas un script qui supprime tous les objets du graphique).

Merci d'avance

//+------------------------------------------------------------------+//| wave labels ff.mq4 |

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

#property version "1.00"

#property strict

#include

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

//| Script program start function |

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

extern string Text1 = "(i)"; // Enter Text to place on screen

extern string Text2 = "(ii)"; // Enter Text to place on screen

extern string Text3 = "(iii)"; // Enter Text to place on screen

extern string Text4 = "(iv)"; // Enter Text to place on screen

extern string Text5 = "(v)"; // Enter Text to place on screen

extern string Text6 = "(a)"; // Enter Text to place on screen

extern string Text7 = "(b)"; // Enter Text to place on screen

extern string Text8 = "(c)"; // Enter Text to place on screen

extern string Text_font="Arial Bold"; // font of text

extern int Text_fontsize = 14; // size of text

extern color Text_color = Red; // color of text

int TextBarsAhead2 = 7; // # bars to space 2nd letter from first

int TextBarsAhead3 = 14; // # bars to space 3rd letter from first

int TextBarsAhead4 = 21; // # bars to space 4th letter from first

int TextBarsAhead5 = 28; // # bars to space 5th letter from first

int TextBarsAhead6 = 35; // # bars to space 6th letter from first

int TextBarsAhead7 = 42; // # bars to space 7th letter from first

int TextBarsAhead8 = 49; // # bars to space 8th letter from first

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

//+-----------------------------SCRIPT CODE--------------------------+

int OnStart(){

double price = WindowPriceOnDropped(); // find the price point where dropped

datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped

datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)

datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;

datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;

datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;

datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;

datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;

datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;

datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;

string gap=" "; // spacing between text characters

string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line

TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter

TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter

TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter

TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter

TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter

TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter

TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter

TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter

return(0);

}

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

void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)

{

if(StringLen(LabelText)>1){

ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);

ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);

}

}

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

xtractalpha

Dans la procédure deinit() ajoutez la partie nettoyage.

Dans votre cas, ce serait ObjectDelete(objectName) pour chaque objet que votre code a créé.

 

Bonjour Mladen

Pourriez-vous m'aider à résoudre les erreurs de compilation dans le fichier ci-dessous ?

Dossiers :
 
candyman752:
Bonjour Mladen Pourriez-vous m'aider à résoudre les erreurs de compilation dans le fichier ci-dessous ?

Regardez-le maintenant : genie_stoch_rsittt_1.mq4

Dossiers :
 

Cher Mladen

Merci pour cet excellent logiciel

Est-il possible d'avoir une version histogramme ? ??

 
SLAVOLJUB:
Cher Mladen

Thanx pour ce grand indy

Est-il possible version histogramme ???

Il est possible d'acheter alors les deux lignes de signal doivent être complètement ignorées et coupées.

 
mladen:
Il est possible d'acheter alors les deux lignes de signal doivent être complètement ignorées et coupées.

No problem.... j'ai seulement besoin de cette ligne rouge-verte

(ligne rouge-verte comme histogramme)

Merci d'avance

 

Bonjour Mladen,

J'ai ajouté un code pour le trailing stop à l'EA. Je reçois deux erreurs de compilation. Les instructions pour ajouter le code étaient :

Comment l'utiliser ?

Très simple. Placez le code ci-dessous dans n'importe quelle partie de votre programme Expert Advisor et appelez la fonctiontrail2(#ticket) dans la fonction Start().ticket = est votre ticket d'ordre, il peut s'agir d'un ordre d'achat ou de vente. Mais il doit s'agir d'un ordre réel et non d'un ordre en attente.

Par exemple

{...(votre code)

ticket=ordersend(...)

...

}

..

trail2(ticket)

ou trail2(ticket, 300, 40, 250, 100)

..

Dossiers :
wip.mq4  8 kb
Raison: