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.

Spread-Anzeige

Geschrieben

Hallo zusammen,

 

für den ein oder anderen vielleicht ganz nützlich. Vielleicht um den hohen Spreads zu News-Zeiten aus dem Weg zu gehen.

 

Sollte sowohl bei 4-Digit- als auch bei 5-Digit-Brokern funktionieren. Habe es auf ActiveTrades und Alpari (Demo) getestet.

 

Grüße......

ShowSpread.mq4

Featured Replies

Geschrieben
Hallo zusammen,

 

für den ein oder anderen vielleicht ganz nützlich. Vielleicht um den hohen Spreads zu News-Zeiten aus dem Weg zu gehen.

 

Sollte sowohl bei 4-Digit- als auch bei 5-Digit-Brokern funktionieren. Habe es auf ActiveTrades und Alpari (Demo) getestet.

 

Grüße......

 

Danke für das Einstellen des Indikators. Ich traue mich fast nicht es zu schreiben, :laugh: aber leider sind da noch ein paar wesentliche .... klitze-kleine Fehler. Es wäre von Vorteil den Teil mit dem Löschen aller Objekte abzuändern. Viele Nutzer malen in den Chart, womit sie dann dort Objekte haben, die von dem Indikator aber gelöscht werden. Deshalb sollte man in einem Indikator immer nur diese Objekte löschen, die der Indikator auch selbst angelegt hat und nicht blindlings alle.

 

Aktuell erstellst du das Objekt jedes Mal neu, auch wenn es bereits im Chart vorhanden ist. Metatrader liefert jedesmal einen Fehler, der nicht abgefangen wird.

Im Prinzip kannst du das Objekt im Chart belassen. Vor der Textaktualisierung prüfst du noch, ob das Objekt vorhanden ist und wenn nicht erstellst du es, andernfalls aktualisierst du nur den Text.

 

Der angezeigte Spread zeigt bei einem 5 Digitbroker Fractional Pips aber eben nicht die 'üblichen' Pips an. D.h. ein Fractional Pip (eines 5 Digit-Brokers) entspricht einem Zehntel-Pip.

Die BuiltIn-Funktion double spread = MarketInfo(Symbol(), MODE_SPREAD); liefert ebenfalls den Spread, leider müsste man auch hier, genau wie in deinem Indikator durch 10 dividieren.

Weshalb das relevant ist? Weil die Gewinne / Verluste auf Basis der Pips berechnet werden und ein Spread von 23 Pips ist eben 10 Mal so teuer wie der eigentliche Spread von 2,3 Pips.

 

...
// Angenommen ein Objekt heisst so wie hier im Code, würdest du es wie folgt löschen
// Damit würdest du ausschliesslich dieses löschen und nicht alle anderen auch
if(ObjectFind("Luisiana_Spreadanzeige") >= 0 ) ObjectDelete("Luisiana_Spreadanzeige");
...

:laugh: :ot:

 

Btw. Mit Java hast du schon mal eine sehr gute Vorraussetzung für MQL, wenn auch MQL eher eine verkappte Sprache ist.

Geschrieben
  • Autor

Hallo Maerl Brontius,

danke für Dein ausführliches Statement. Ich werde versuche das alles so anzupassen und dann aktualisiert wieder anzuhängen und ggf. im Eingangspost auch die aktualisierte Version anzuhängen.

 

Danke für das Einstellen des Indikators. Ich traue mich fast nicht es zu schreiben, :laugh: aber leider sind da noch ein paar wesentliche .... klitze-kleine Fehler. Es wäre von Vorteil den Teil mit dem Löschen aller Objekte abzuändern. Viele Nutzer malen in den Chart, womit sie dann dort Objekte haben, die von dem Indikator aber gelöscht werden. Deshalb sollte man in einem Indikator immer nur diese Objekte löschen, die der Indikator auch selbst angelegt hat und nicht blindlings alle.

Ok. D.h. dann bei deinit müsste es dann heißen:

if(ObjectFind("labelSpread") >= 0 ) ObjectDelete("labelSpread");

Hab ich das richtig verstanden?

 

Aktuell erstellst du das Objekt jedes Mal neu, auch wenn es bereits im Chart vorhanden ist. Metatrader liefert jedesmal einen Fehler, der nicht abgefangen wird.

Im Prinzip kannst du das Objekt im Chart belassen. Vor der Textaktualisierung prüfst du noch, ob das Objekt vorhanden ist und wenn nicht erstellst du es, andernfalls aktualisierst du nur den Text.

Ok. Das sehe ich ein. Nur hab ich (noch) keinen blassen Schimmer wie ich nur den Text aktualisieren lassen soll. Aber ich grübel mal eine Runde. Das muss ja zu schaffen sein :laugh:

 

Der angezeigte Spread zeigt bei einem 5 Digitbroker Fractional Pips aber eben nicht die 'üblichen' Pips an. D.h. ein Fractional Pip (eines 5 Digit-Brokers) entspricht einem Zehntel-Pip.

Das ist soweit klar. Angezeit wird doch das richtige in meinem Indikator. Oder hab ich da was völlig daneben geschossen? Oder geht es nur im eine Sache der Marke "Viele Wege führen nach Rom"?

 

Btw. Mit Java hast du schon mal eine sehr gute Vorraussetzung für MQL, wenn auch MQL eher eine verkappte Sprache ist.

Ein paar Paralellen hab ich schon erkannt :ot: Bin mal gespannt wie mql5 so wird. Da wird mql ja angeblich komplett objektorientiert, was es ja jetzt noch nicht so 100%ig ist. Ich hoffe nur, dass ich dann nicht wieder von vorne anfangen muss um irgendwann mal ein EA schreiben zu können :ot:

 

Die BuiltIn-Funktion double spread = MarketInfo(Symbol(), MODE_SPREAD); liefert ebenfalls den Spread, leider müsste man auch hier, genau wie in deinem Indikator durch 10 dividieren.

Das hab ich auch in der Dokumentation gefunden als ich das fertig hatte :ot: :ot: :ot:

Bearbeitet von Luisa.A.

Geschrieben
...

Ok. D.h. dann bei deinit müsste es dann heißen:

if(ObjectFind("labelSpread") >= 0 ) ObjectDelete("labelSpread");

Hab ich das richtig verstanden?

 

:laugh:

 

Ok. Das sehe ich ein. Nur hab ich (noch) keinen blassen Schimmer wie ich nur den Text aktualisieren lassen soll. Aber ich grübel mal eine Runde. Das muss ja zu schaffen sein :laugh:

Einfach ein bisschen mit If und Else - Blöcken arbeiten, den Ablauf habe ich in meinem Posting ja bereits beschrieben. Die notwendigen Anweisungen im Code hast du bereits und kannst wiederverwenden.

 

Ein paar Paralellen hab ich schon erkannt :ot: Bin mal gespannt wie mql5 so wird. Da wird mql ja angeblich komplett objektorientiert, was es ja jetzt noch nicht so 100%ig ist. Ich hoffe nur, dass ich dann nicht wieder von vorne anfangen muss um irgendwann mal ein EA schreiben zu können :ot:

naja, momentan ist von Objektorientierung nicht wirklich viel vorhanden, letztlich ein verkappter Compiler der Code mit geklauter Notation altgedienter imperativer Sprachen in fragwürdige Binaries (würde ich eher löchrigen Bytecode bezeichnen) übersetzt, Interaktion mit Managed Code ist nur über C++-Wrapper möglich und selbst da offenbaren sich Memoryleaks, die Professionalität nahezu unerwünscht werden lassen :ot: Auch wenn mit MQL5 der Code angepasst werden muss, bin ich mir sicher, dass man mit MQL4-Wissen auch unter MQL5 entwickeln kann, da die Menschen von Metaquotes Wert auf die MQ-Community legen und nicht alle vor den Kopf stossen werden - denn das wäre sehr sehr geschäftsschädigend und widerspräche auch dem, wie es normalerweise gehandhabt wird. Ich glaube 'Philipp' hier im Forum hat sich MT5 u./o. MQL5 sehr genau angeschaut.

 

viel spass :ot:

Geschrieben
  • Autor

Nachdem ich entgegen meiner Planungen am Wochenende nicht dazu gekommen bin, den Indi zu überarbeiten, habe ich mich nun jetzt mal rangesetzt und versucht die Punkte von Maerl Brontius umzusetzen.

 

Aktuell erstellst du das Objekt jedes Mal neu, auch wenn es bereits im Chart vorhanden ist. Metatrader liefert jedesmal einen Fehler, der nicht abgefangen wird.

Im Prinzip kannst du das Objekt im Chart belassen. Vor der Textaktualisierung prüfst du noch, ob das Objekt vorhanden ist und wenn nicht erstellst du es, andernfalls aktualisierst du nur den Text.

Ich hoffe dieses Punkt nun umgesetzt zu haben :smile:

 

Das aktuelle File ist vorerst nur diesem Post angehangen. Sofern es in Ordnung ist, werde ich das Eingangsposting dieses Threads um ein paar Zeilen erweitern und den Indi auch dort anfügen

:wub:

iShowSpread.mq4

Bearbeitet von Luisa.A.

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.