Quickbeam2k1 Posted July 5, 2010 Report Posted July 5, 2010 (edited) Aloha,ich bin grade dabei meinen ersten simplen EA zu schreibenn. Basiert auf nem DonchianChannel-Breakout. Der Indi war ja leicht zu schreiben. Nun möchte ich halt meine Einstiegsbedingungen bei nem lokalen Hoch setzen, und ich lasse mir die Kurse dann auch ausgeben.der Digitswert ist 5. Jedoch sind die zugehörigen Ask und Bid-werte nur 4 stellig. (auch nach normalisieren).Kann man das ändern? Trade noch mitm MB-Demo Account. Lerne halt gerade die Sprache kennen und das ist grade etwas komisch :)Wäre halt schön wenn man irgendwie die 5. Stelle auch zählen könnte, da ich eigentlich ein echtes neues Maximum im aktuellen Bar haben möchte. So könnte ich dann "exakter" einsteigen.Die Kauforder wird dann natürlich als 5 stellige Zahl angezeigt. Edited July 5, 2010 by Quickbeam2k1
RAiNWORM Posted July 5, 2010 Report Posted July 5, 2010 Also die Bid/Ask-Werte werden vom Broker gestellt, wenn da nur 4 Stellen ankommen, dann musst du mit den 4 Stellen leben. Verstehe ich es richtig, dass dein Indikator 5 Stellen gibt? Dann müsstest du diesen auf 4 normalisieren.
siscop Posted July 5, 2010 Report Posted July 5, 2010 Jedoch sind die zugehörigen Ask und Bid-werte nur 4 stellig. (auch nach normalisieren)....MB-Demo Account.MB hat doch 5 Stellen. Ich verstehe nicht warum du beim Ask und Bid nur 4 Stellen hast.
Quickbeam2k1 Posted July 6, 2010 Author Report Posted July 6, 2010 das ist ja genau meine frage :) Mir werden überall 5 stellige Kurse angezeigt. In den Charts, wenn ich kaufe.Aber wenn ich meine Eintrittsbedingung checke und mir dann die daten ausgebe: if(NormalizeDouble(Bid,Digits)==NormalizeDouble(High[ArrayMaximum(High,period+1,0)],Digits) && (OrdersTotal()==0)) //Debug output {Print("Bid and local Maximum: ", NormalizeDouble(Bid,Digits), ". Ask: ", NormalizeDouble(Ask,Digits), ". Digits: ", Digits); return(TRUE); }Dann gibt die Print zeile nur 4 stellen hinterm Komma aus. Das ist dann die Ausgabe: die obere Zeile der Kauf, die untere meine Ausgabe.2010.07.06 07:19:29 2010.07.01 03:31 testea EURUSD,M15: open #3 buy 1.00 EURUSD at 1.22219 sl: 1.22189 ok2010.07.06 07:19:29 2010.07.01 03:31 testea EURUSD,M15: Bid and local Maximum: 1.2221. Ask: 1.2222. Digits: 5?????
siscop Posted July 6, 2010 Report Posted July 6, 2010 Ich verstehe dein Problem... Was ich aber nicht verstehe ist dein NormalizeDouble wenn du sowieso auf Digits begrenzt. Dann lass den doch einfach weg.NormalizeDouble(Bid,Digits) -> Dieser Befehl macht für mich irgendwie keinen Sinn. Es sei denn du willst "Digits" mit "mydigits" ersetzen und es entsprechend selbst wählen. if(Bid==High[ArrayMaximum(High,period+1,0)] && (OrdersTotal()==0)) //Debug output {Print("Bid and local Maximum: ",Bid, ". Ask: ",Ask, ". Digits: ",Digits); return(TRUE); } Sollte doch das selbe dabei raus kommen.Zu dem Problem selbst - sorry
Quickbeam2k1 Posted July 6, 2010 Author Report Posted July 6, 2010 ich dachte erst ers gab probleme wenn ich nicht normalisiere. Das betrifft dann aber wohl nur direkt Orders. (Warum ich normalisieren muss ist mir noch nicht so wirklich klar? Meistens liegen die Kurse ja schon im richtigen Format vor. Wenn ich irgendwo in ner Berechnugn mal teilen muss, dann seh ich ein dass ich das machen muss, aber sonst?) Hatte es auch ohne das Normalize gemacht und auch mit 6 Stellen. Änderte aber auch nichts an der Ausgabe. Hat das Problem denn sonst keiner? Weitere Ideen?
WOGO Posted July 6, 2010 Report Posted July 6, 2010 ich dachte erst ers gab probleme wenn ich nicht normalisiere. Das betrifft dann aber wohl nur direkt Orders. (Warum ich normalisieren muss ist mir noch nicht so wirklich klar? Meistens liegen die Kurse ja schon im richtigen Format vor. Wenn ich irgendwo in ner Berechnugn mal teilen muss, dann seh ich ein dass ich das machen muss, aber sonst?) Hatte es auch ohne das Normalize gemacht und auch mit 6 Stellen. Änderte aber auch nichts an der Ausgabe. Hat das Problem denn sonst keiner? Weitere Ideen?Normalisieren musst du nur bei Orders, da diese vom Broker nur mit einer best. Digitzahl angenommen werden. Sonst bekommst du den Fehler 129. So richtig plausibel ist mir das auch nicht, warum du nach dem Normalisieren auf 5 Digits nur 4 Digits ausgegeben bekommst.Gib mal testhalber nur1) Bid, Ask 2) MarketInfo(Symbol(),MODE_DIGITS);3) Hardcoded NormalizeDouble(...,5)aus.
WOGO Posted July 6, 2010 Report Posted July 6, 2010 Ah jetzt!Die Hilfe zu "Print" hilft Data of double type are printed with 4 decimal digits after point. 1
Quickbeam2k1 Posted July 6, 2010 Author Report Posted July 6, 2010 oh das hab ich wohl überlesen, danke für den Hinweis :)Steht da aber auch so klein. Dann nutz ich mal DoubletoStr :)
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now