Da hat sich wohl der Fehlerteufel eingeschlichen.
Du hast die FOR-Schleife nicht original übernommen. Sie muss so anfangen: for(int i = OrdersTotal()-1; i >= 0; i--) Gruß naranjoe |
Jo danke, daran lags.
Ich hab die Indexverschiebung angewand bevor ich den Code richtig verstanden gehabt hatte^^ |
Hallo,
Ich bin neu in EA Programmieren und Lese hier alles was ich finde. Eins versteh ich nicht was das Void immer zusagen hat?. Ich wollte den Breakeven bei mir einsetzen aber irgendwie funktioniert es nicht ! Vieleicht könnte ein Profi mal drüber schauen. HTML-Code:
extern double UpdateToBE = 10 ; |
Code:
extern double UpdateToBE = 10 ; Als Zweites solltest Du Dir mal angewöhnen eine klare Struktur zu schreiben und immer entsprechend einrücken. void bedeutet nur "leer" bzgl. der Rückgabe von Funktionsergebnissen, im Gegensatz zu int Funktion(), bool Funktion(), double Funktion oder string Funktion(). In diesen Fällen wird die Rückgabe einer entsprechend deklarierten Variable erwartet. traderdoc |
Danke für deine Antwort woran erkennt man wie viel Digit meiner hat? am EUR/USD zb. ? (Nachkomma stellen ) ?
|
Genau, 4-DigitBroker geben in den Kurse 4 bzw. 2 Kommastellen aus und 5-DigitBroker demnach 5 bzw. 3.
Beim 5-DigitBroker würden Deine angedachten 10 Pips in der Variablen UpDateToBE nur 1Pip entsprechen. traderdoc |
Ok dann ist es ein 4 Digit Brokker, weil dax zb. 9800,5 und Eur/Dollar 1,3290
Ich hab das wie folgt reingebaut ist das ok ? HTML-Code:
extern double UpdateToBE = 10 ; |
Wenn es ein 4Digit-Broker ist, dann darf nicht! mit 10 multipliziert werden, sondern nur bei 5-DigitBrokern!
Die Abfrage müßte richtig lauten: int Multiplier = 1; if (Digits == 3 || Digits == 5) Multiplier = 10; Desweiteren steht plötzlich die eigene Funktion in der Funktion init(). Diese wird aber nur zur Initialisierung des Programms einmalig durchlaufen. Deine Funktion gehört in die Funktion start(). traderdoc |
Gut hab das so Übernommen und ein bisschen eingerückt.
Hab das in die start Funktion geschoben nur das bei mir steht void OnTick() ist das ok ?? sieht jetzt so aus besser? HTML-Code:
int Multiplier = 1; |
if(OrderType() == OP_BUY && OrderOpenPrice() > OrderStopLoss() && Bid - OrderOpenPrice() >= Multiplier * Point)
{ OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0); } if(OrderType() == OP_SELL && OrderOpenPrice() < OrderStopLoss() && OrderOpenPrice() - Ask >= Multiplier * Point) Da soll doch bestimmt das hin: ....>= UpdateToBE * Multiplier * Point) traderdoc |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:05 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum