Geschrieben 15. Januar 201016 Jr. comment_92101 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 Melden
Geschrieben 15. Januar 201016 Jr. comment_92107 Danke! Wer den Spread noch grafisch aufbereitet haben will und die Spreaddaten samt Uhrzeit dauerhaft gesichert haben will sollte sich das Tool angucken: i-Spread, mit der aktuellen Version hier. Melden
Geschrieben 15. Januar 201016 Jr. comment_92108 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, 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"); ... Btw. Mit Java hast du schon mal eine sehr gute Vorraussetzung für MQL, wenn auch MQL eher eine verkappte Sprache ist. Melden
Geschrieben 15. Januar 201016 Jr. Autor comment_92113 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, 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 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 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 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: Bearbeitet 15. Januar 201016 Jr. von Luisa.A. Melden
Geschrieben 15. Januar 201016 Jr. comment_92116 ...Ok. D.h. dann bei deinit müsste es dann heißen:if(ObjectFind("labelSpread") >= 0 ) ObjectDelete("labelSpread");Hab ich das richtig verstanden? 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 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 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 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 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 Melden
Geschrieben 18. Januar 201016 Jr. Autor comment_92343 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 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 iShowSpread.mq4 Bearbeitet 18. Januar 201016 Jr. von Luisa.A. Melden
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