Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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
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 werdenHallo 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
//+------------------------------------------------------------------+
#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);
}
}
//+------------------------------------------------------------------+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
//+------------------------------------------------------------------+
#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
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
Lieber Mladen
Vielen Dank für diese tolle Indy
Ist eine Histogramm-Version möglich???
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
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)
..