Hilfe bei der Codierung - Seite 509

 
tfi_markets:
Hallo Pro-Coder,

Ich erhalte die Warnung: "Prüfen Sie den Vorrang von Operatoren auf mögliche Fehler; verwenden Sie Klammern, um den Vorrang zu verdeutlichen"

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

{

OpenBuy();

}

Es sieht so aus, als ob die ..AND (Ask>emaFilter) Anweisung auch von MT4 ignoriert wird.

Kann mir jemand einen Rat geben?

vielen Dank im Voraus!

Sie sollten es wahrscheinlich so schreiben:

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

Aber es hängt hauptsächlich davon ab, was genau Sie testen wollen. Die Warnung kommt daher, dass früher der Vorrang von && (und) und || (oder) anders war - sie haben ihn umgedreht und jetzt müssen alle diese logischen Vergleiche geprüft werden

 
mladen:
Sie sollten es wahrscheinlich so schreiben:

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

Aber es hängt hauptsächlich davon ab, was genau Sie testen wollen. Die Warnung kommt daher, dass früher der Vorrang von && (und) und || (oder) anders war - sie haben ihn umgedreht und jetzt müssen all diese logischen Vergleiche geprüft werden

Hallo Mladen,

vielen Dank für deinen Vorschlag. Ich werde es ausprobieren! Du bist immer sehr hilfreich!

In einfachen Worten gesprochen, sollten alle drei Klammern wahr werden, bevor der EA einen Handel eröffnet.

Ich nehme an, dass Ihr Code diese Funktionalität bietet.

Mit freundlichen Grüßen,

T.

 

Programmierer,

Könnte mir jemand bei folgendem Problem helfen?

Ich verwende ein Elliot-Wellen-Skript, um die Wellen manuell zu beschriften. Das Skript platziert 8 verschiedene Objekte auf dem Chart (i,ii,iii,iv,v,a,b,c).

Alles funktioniert gut, aber das Löschen der Objekte ist eine Menge Arbeit. Ich muss nämlich auf jedes Objekt (i, ii, iii, iv, v, a, b, c) klicken, um es zu löschen. Ich würde gerne etwas zum Code hinzufügen, das es mir ermöglicht, alle Objekte (i,ii,iii,iv,v,a,b,c) mit nur einem Klick auf die Objekte zu markieren. Ich habe schon gesucht, aber ich konnte die Funktion, die ich brauche, nicht finden.

(Ich bin nicht auf der Suche nach einem Skript, das alle Objekte im Diagramm löscht).

Vielen Dank im Voraus

//+------------------------------------------------------------------+//| 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:
Programmierer,

Könnte mir jemand bei folgendem Problem helfen?

Ich verwende ein Elliot-Wellen-Skript, um die Wellen manuell zu beschriften. Das Skript platziert 8 verschiedene Objekte auf dem Chart (i,ii,iii,iv,v,a,b,c).

Alles funktioniert gut, aber das Löschen der Objekte ist eine Menge Arbeit. Ich muss nämlich auf jedes Objekt (i, ii, iii, iv, v, a, b, c) klicken, um es zu löschen. Ich würde gerne etwas zum Code hinzufügen, das es mir ermöglicht, alle Objekte (i,ii,iii,iv,v,a,b,c) mit nur einem Klick auf die Objekte zu markieren. Ich habe schon gesucht, aber ich konnte die Funktion, die ich brauche, nicht finden.

(Ich bin nicht auf der Suche nach einem Skript, das alle Objekte im Diagramm löscht).

Vielen Dank im Voraus

//+------------------------------------------------------------------+//| 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

Fügen Sie in der Prozedur deinit() den Teil zum Aufräumen hinzu

In Ihrem Fall wäre es ObjectDelete(objectName) für jedes Objekt, das Ihr Code erstellt hat

 

Hallo Mladen

Könntest du mir bei den Kompilierfehlern in den folgenden

Dateien:
 
candyman752:
Hallo Mladen Könntest du mir bei den Kompilierfehlern in der folgenden Datei helfen?

Schauen Sie es sich jetzt an: genie_stoch_rsittt_1.mq4

Dateien:
 

Lieber Mladen

Vielen Dank für diese tolle Indy

Ist eine Histogramm-Version möglich???

 
SLAVOLJUB:
Lieber Mladen

Vielen Dank für diese tolle Indy

Ist es möglich, Histogramm-Version???

Es ist möglich, kaufen Sie dann die beiden Signalleitungen müssen komplett ignoriert und ausgeschnitten werden

 
mladen:
Es ist möglich, kaufen Sie dann die beiden Signallinien müssen vollständig ignoriert und ausgeschnitten werden

Kein Problem.... ich brauche nur diese rot-grüne Linie

(rot-grüne Linie als Histogramm)

Vielen Dank im Voraus

 

Hallo Mladen,

ich habe dem EA einen Code für den Trailing Stop hinzugefügt. Ich erhalte zwei Kompilierfehler. Die Anweisungen zum Hinzufügen des Codes waren:

Wie zu verwenden?

Sehr einfach. Platzieren Sie den untenstehenden Code in einem beliebigen Teil Ihres Expert Advisor-Programms und rufen Sie die Funktiontrail2(#ticket) in der Start()-Funktionauf.ticket = ist Ihr Order-Ticket, es kann entweder eine Kauf- oder Verkaufsorder sein. Aber es muss eine Live-Order sein, nicht eine Pending Order.

z.B..

{...(Ihr Code)

ticket=ordersend(...)

...

}

..

trail2(ticket)

oder trail2(Fahrschein, 300, 40, 250, 100)

..

Dateien:
wip.mq4  8 kb