Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem bzw. Frage zu Digits

Geschrieben

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.

Bearbeitet von Quickbeam2k1

Featured Replies

Geschrieben
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.
Geschrieben

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.

Geschrieben
  • Autor

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

?????

Geschrieben

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:

Geschrieben
  • Autor

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?

Geschrieben

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.

Geschrieben

Ah jetzt!

Die Hilfe zu "Print" hilft :top:

 

Data of double type are printed with 4 decimal digits after point.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.