Skip to content
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

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

Featured Replies

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.

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.

  • Author

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

?????

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:

  • Author

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?

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.

Ah jetzt!

Die Hilfe zu "Print" hilft :top:

 

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

  • Author

oh das hab ich wohl überlesen, danke für den Hinweis :)

Steht da aber auch so klein. Dann nutz ich mal DoubletoStr :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

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.