Hi,
habe für Euch sicherlich eine leichte Herausforderung.
Was möchte ich? Wenn der High Wert und der Wert eines Indikators identisch sind, wird die erste Variable auf true gesetzt. Innerhalb der aktuellen Bar jedoch, soll die Funktion dann nicht mehr ausgeführt werden, erst wieder in der nächsten Bar.
Wenn dann wieder der High Wert und der Wert eines Indikators identisch sind, wird die zweite Variable auf true gesetzt.
Soweit funktioniert grundsätzlich meine Funktion, jedoch werden beide Variablen auf True gesetzt, da ich das aussetzen innerhalb der Bar noch nicht drin habe.
Hier der relevante Teil der Funktion:
if(varHighBar == varDCChannelUp){ varSignalFirstUp = true;}
if(varHighBar == varDCChannelUp){ varSignalSecondUp = true;}
if(varSignalFirstUp && varSignalSecondUp && varATR <= 50.0){
Alert("Kaufen");
varSignalSecondUp = false;
varSignalFirstUp = false;
varReturn = 2; //Buy
}
if(varLowBar == varDCChannelDown){ varSignalFirstDown = true;}
if(varLowBar == varDCChannelDown){ varSignalSecondDown = true;}
if(varSignalFirstDown && varSignalSecondDown && varATR <= 50.0){
Alert("Verkaufen");
varSignalSecondDown = false;
varSignalFirstDown = false;
varReturn = 3; //Sell
}
Werde natürlich noch selbst schauen, aber vielleicht seid Ihr schneller.
Danke!
Du musst halt noch einfügen von welcher richtung der preis kommt, sonst setzt er immer beide gleich
Hi,
das ist schon klar, deswegen möchte ich ja, dass er erst die erste Variable auf true setzt dann erst weiter macht in der nächsten bar.
Hmm, Du hast anscheinend keine Ahnung, wie man einen Indikator aufruft und ihn verwendet.
Hier hast Du eine Liste der Funktionen für MQL4 (warum nicht gleich MQL5, wenn Du schon anfängst, vieles ist besser und schneller?): https://docs.mql4.com/function_indices.
Dann schau Dir die Bollinger Bänder iBands() oder hier an - oder Envelopes. Mit der Variablen shift gibst Du an, den Wert welcher Bar willst Du (bei MQL4 0=jetzt, 1=voreherige, ..
Bei MQL5 hat sich das allerdings geändert!
Außerdem, wenn Du Code postest, verwende bitte den Code-Kopf [</>] in der Editierzeile oder Alt+S
- docs.mql4.com
Nein das funktioniert doch alles schon. Habe hier ja nur einen Ausschnitt gepostet.
Egal, lassen wir das.
Ich bekomme das schon hin.
Vielen Dank!
Nein das funktioniert doch alles schon. Habe hier ja nur einen Ausschnitt gepostet.
Egal, lassen wir das.
Ich bekomme das schon hin.
Vielen Dank!
Wie soll sich hier was unterscheiden? Das kommt immer gleich
if(varLowBar == varDCChannelDown){ varSignalFirstDown = true;} if(varLowBar == varDCChannelDown){ varSignalSecondDown = true;}
Du musst ihm schin sagen, in welchen zeitraum, bars, preisabweichung oder sonstiges das passieren soll
und dann gibts ja noch die buystoplimit order
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hi,
habe für Euch sicherlich eine leichte Herausforderung.
Was möchte ich? Wenn der High Wert und der Wert eines Indikators identisch sind, wird die erste Variable auf true gesetzt. Innerhalb der aktuellen Bar jedoch, soll die Funktion dann nicht mehr ausgeführt werden, erst wieder in der nächsten Bar.
Wenn dann wieder der High Wert und der Wert eines Indikators identisch sind, wird die zweite Variable auf true gesetzt.
Soweit funktioniert grundsätzlich meine Funktion, jedoch werden beide Variablen auf True gesetzt, da ich das aussetzen innerhalb der Bar noch nicht drin habe.
Hier der relevante Teil der Funktion:
if(varHighBar == varDCChannelUp){ varSignalFirstUp = true;}
if(varHighBar == varDCChannelUp){ varSignalSecondUp = true;}
if(varSignalFirstUp && varSignalSecondUp && varATR <= 50.0){
Alert("Kaufen");
varSignalSecondUp = false;
varSignalFirstUp = false;
varReturn = 2; //Buy
}
if(varLowBar == varDCChannelDown){ varSignalFirstDown = true;}
if(varLowBar == varDCChannelDown){ varSignalSecondDown = true;}
if(varSignalFirstDown && varSignalSecondDown && varATR <= 50.0){
Alert("Verkaufen");
varSignalSecondDown = false;
varSignalFirstDown = false;
varReturn = 3; //Sell
}
Werde natürlich noch selbst schauen, aber vielleicht seid Ihr schneller.
Danke!