|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
lots an schritweite anpassen
Hallo,
ich bin bei JFD und da sind nur lots in 0,05 Schritten möglich also z.B. so 0,40 0,45 0,50 0,55 0,60 0,65 usw... bis jetzt habe ich das umgegangen in dem ich bis auf eine stelle hinter dem Komma gerundet habe PHP-Code:
0,4 0,5 0,6 die Schritte sind ziemlich grob, und habe mir folgendes zum "Aufrunden" gebastelt. Ab x,x3 bis x,x7 wird auf x,x5 gerundet usw. PHP-Code:
Hat jemand eine Idee wie man das lösen könnte ? Gibts ein Befehl dass die letzte Stelle einer double Zahl auslesen kann ? danke |
|
|||
Hi Lord,
du kannst MathRound für deine Berechnung und korrekte Rundung nutzen. MathRound - MQL4 Documentation Das Ergebnis kannst du dann ja durch 10 teilen um die Dezimal-Lotsteps zu ermitteln. Grüße Dan |
|
|||
@L0rd,
Ähm, wo liegt denn eigentlich das Problem? Wenn der Broker nur Schritte in 0,05 Lot anbietet, dann ist das halt so Undank muß damit leben und traden oder man wechselt zu einem Broker der das in 0,01 Schritten anbietet. Mir ist ehrlich gesagt noch unklar was Du erreichen wolltest. Ich vermute! mal, dass Du z.B. 0,43 Lot per Programm errechnet hast und willst jetzt die am dichtesten an den Lotsteps liegende Lotzahl ermitteln, um die Order öffnen zu können. Willst Du die zweite Kommastelle auslesen!!, dann wandelt man die Zahl in einen String um, läßt die letzte Stelle auslesen. Ratz fatz, ist sie 0 oder 5 ist alles gut. Ist sie 1 oder 2 wird auf die erste Kommastelle abgerundet, ist sie 3, 4, 6 oder 7 wird sie mit einer 5 substituiert und ist sie 8 oder 9 dann wird einfach auf die erste Stelle nach dem Komma aufgerundet. Sollte mit der 5 substituiert werden muß danach der String wieder in eine Double mit 2 Kommastellen umgewandelt werden und fertig ist die Laube. traderdoc |
|
|||
@ feelfree
wenn es nur Runden währe... @traderdoc du hast genau richtig verstanden. Irgendein lot-wert (mit 2 Nachkommastellen) wird errechnet und soll so gerundet werden, dass das Ergebnis auch 2 Nachkommastellen hat und durch 0,05 teilbar(ohne Rest) ist. D.h. letzte Nachkommastelle kann nur 0 oder 5 sein. Bis jetzt (wie gesagt)hab ich dem Problem ausgewichen durch "Abschneiden" der letzten der zwei Nachkommastellen. Als ich das Thema eröffnet habe wollte ich noch zu meiner Frage " ... ohne Broker zu wechseln" hinzufügen Leider habe ich noch keine Zeit um alternative zu JFD zu finden, hier in Forum hat mir auch noch keiner was empfohlen. JFD ist halt schnell bei Orderausführung, das ist bei meiner Strategie überlebenswichtig, deswegen muss ich bei denen erstaml bleiben. |
|
|||
Zitat:
Viel Erfolg! traderdoc |
|
|||
Hallo nochmal,
das mit stringumwandeln ist mir zu kompliziert und kostet rechenleistung, deswegen würde ich mit der Lösung nicht anfangen und was eleganteres suchen. ... und bin auf Funktion MathMod() gestossen die mir Operator "%" ersetzt und für double eignet: PHP-Code:
Hacken tuts aber leider bei ifs, denn lot am Ende bleibt genau so gross wie am Anfang, deswegen denke ich, dass if Abfrage nichts tut, ich sehe aber nicht wieso Könnt Ihr bitte kucken, ich komm einfach nicht drauf |
|
|||
Ja ja, immer wieder dasselbe, mit dem Vergleich von double-Werten.
Da fehlt schlicht die Zeile: rest = NormalizeDouble(rest, 2); Viel Spaß traderdoc PS. Die Variante mit dem String habe ich Dir nur geschrieben, weil Du die 2. Stelle nach dem Komma unbedingt auslesen wolltest und das geht am schnellsten über den String. |
|
|||
danke ! es funktioniert !
hätte ich nie gedacht, denn Print hat auch 2 Nachkommastellen ausgegeben und mehr sind da auch nicht möglich. Werden warscheinlich mit 00000000 ausgefüllt in Wirklichkeit, deswegen hat vergleich nicht hingehauen. @traderdoc es war auch kein Vorwurf oder Kritik, wenn, dann an mich selbst. @feelfree durch dich bin ich auf Funktion MathMod() aufmerksam geworden, da ich Dokumentation für MathRound angeschaut habe. Danke euch und VIEL ERFOLG ! Übrigens in Theorie das mit 0,05 bringt mir 6% mehr, habe eben getestet. |
Lesezeichen |
Stichworte |
lot, lot erhöhrn, lots, lots anpassen, lots erhöhen, lots schritt, mql4, programmierung, programmierung metatrader |
|
|