Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted (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 by Quickbeam2k1
Posted
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.
Posted

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.

Posted

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 ok

2010.07.06 07:19:29 2010.07.01 03:31 testea EURUSD,M15: Bid and local Maximum: 1.2221. Ask: 1.2222. Digits: 5

?????

Posted

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 :plorar1:

Posted

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?

Posted

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 nur

1) Bid, Ask

2) MarketInfo(Symbol(),MODE_DIGITS);

3) Hardcoded NormalizeDouble(...,5)

aus.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...