|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Frage zum Parameter SLIPPAGE bei der Methode OrderSend()
Hallo,
ich habe eine Frage zur Methode OrderSend(), bzw. zu einem der Parameter der der Methode OrderSend() beim Methodenaufruf übergeben wird. Als Parameter (an vierter Stelle) wird bei der Methode OrderSend() eine integer-Variable SLIPPAGE übergeben. Hier die Dokumentation der Methode OrderSend(): https://docs.mql4.com/trading/ordersend Es ist mir bislang nicht klar, was der Parameter SLIPPAGE macht. Die Slippage ergibt sich ja aus kurzfristigen Kursschwankungen. Da der Anwender die Slippage nicht "festlegen" oder "bestimmen" kann verstehe ich nicht, was mit dem Parameter SLIPPAGE da übergeben werden soll? Allenfalls könnte der Anwender ja festlegen, welche Slippage, d.h. welche Abweichung vom Kurs, er maximal bereit ist zu akzeptieren. Ist das so? Der der Methode OrderSend() als Wert für den Parameter SLIPPAGE übergebene Wert legt fest, welche Slippage der Anwender maximal bereit ist zu akzeptieren? Und in welcher Einheit wird der Wert für SLIPPAGE angegeben? In Pips? Oder in Ticks? Hier ein kleines Beispiel, den ich im Code eines nachweislich funktionierenden EA (nicht von mir erstellt) gefunden habe: Code:
order_id = OrderSend(Symbol(),OP_SELL,l_lots,Bid,5,l_sl,l_tp,"short start",MAGICMA,0,Blue); Ich bedanke mich für jeden konstruktiven Hinweis! Besten Dank und Grüße LQK |
|
|||
Bevor Du mit deinem vollautomatischen EA weitermachst, solltest Du Dich unbedingt mit den Grundlagen des Tradings beschäftigen.
Ich denke, es macht keinen Sinn bei der Programmierung eines EAs darüber diskutieren zu wollen, wie SL, TP, Slippage funktionieren. Benutze um solche Fragen zu klären, Forex-Einsteiger-Manuals. Ach ja, das ist konstruktiv gemeint :-) Diese Links helfen Dir bei Deinen Fragen vielleicht weiter: https://admiralmarkets.de/wissen/art...s-ist-slippage https://broker-bewertungen.de/forex-...trailing-stops Und wenn Du dann die Grundlagen des Tradings verinnerlicht hast, beschäftige Dich mit der Programmierung eines vollautomatischen EAs. Viel Erfolg! |
|
||||
Zitat:
Der jetzt von mir zu programmierende EA soll CFD traden, nicht Forex. Zitat:
Ich weiß auch was eine Slippage ist und was diese macht (siehe auch meine kurze Erläuterung von Slippage im EP). Meine Frage ist eine technische Frage zur Umsetzung einer bestimmten Funktion in MQL, eben OrderSend() bzw. zu einem Parameter dieser Funktion (eben SLIPPAGE). Ich glaube schon, dass es in dem Zusammenhang Sinn macht über die programiertechnische Umsetzung und über die Wirkung und Besonderheiten der Funktion OrderSend() und speziell des Parameters Slippage zu diskutieren, und nicht Bücher über "Grundlagen des Trading" zu lesen. Zitat:
Sollte Dir doch noch was Konstruktives einfallen, habe ich nach wie vor Interesse daran, das zu lesen. Zitat:
Der zweite Link ist OT, es wird dort erklärt was SL und TP ist, ich wüsste nicht, was SL und TP mit mener Frage zu tun haben. Bin mir nicht sicher, ob Du die beiden von Dir angegebenen Links gelesen hast. --- Ich habe jetzt nochmals selbst recherchiert und doch noch was gefunden. Interessant sind diese beiden Threads: Hier hat sich jemand genau dieselbe Frage gestellt wie ich: https://www.mql5.com/en/forum/31987 Und dieser Thread befasst sich randständig ebenfalls mit dem Thema: https://www.mql5.com/en/forum/150990/page2 Ganz so trivial wie Du es nahelegst, ist meine Frage offenbar nicht. Jedenfalls wurde im ersten von mir verlinkten Thread heftig diskutiert, und dass teilweise von Usern die offenbar sehr viel Trading-Erfahrung haben. Es ist offenbar so, wie ich vermutet habe: Der Parameterwert der für Slippage bei OrderSend() übergeben wird, gibt offenbar eine Obergrenze an, wieviel Slippage der Anwender bereit ist maximal zu akzeptieren. Je nachdem welche Art von Orderausführung der Broker überhaupt anbietet, kann der für Slippage übergebene Wert eine Rolle spielen, oder er spielt keine Rolle, d.h. es ist so, als wäre der Wert gar nicht übergeben worden und der Wert wird vom Broker ignoriert. In den meisten Fällen, ist offenbar letzteres der Fall, d.h. der als Wert für den Parameter Slippage übergebene Wert spielt für den Trade gar keine Rolle. Eine Sache ist mir aber immer noch unklar: Für die Fälle wo der Slippage-Wert doch eine Rolle spielt, wie ist da die Einheit des übergebenen Werts wenn CFD gehandelt werden? Bei Forex sind es anscheinend Pips, aber Pips sind ja bei CFD nicht unbedingt eine gebräuchliche Einheit. Würde mich freuen, wenn wir das noch aufklären könnten! Besten Dank für jede konstruktive Antwort! Grüße, LQK Geändert von LQK (18.05.20 um 17:46 Uhr) |
|
|||
Zitat:
Man sendet eine Order immer mit einem "Price" aber die Ausführung der Order kann von diesem "Price" abweichen. Mit dem Parameter "slippage" (der Name ist etwas unglücklich besser wäre max_slippage bzw max_deviation) definiert man bis zu welcher Abweichung eine Orderausführung erlaubt ist. Wird der Wert überschritten wird die Order nicht ausgeführt. Die korrekte Wahl dieses Wertes ist eine Glaubensfrage. Wenn man einem Broker unterstellt, er macht eine bewusste Abweichung zu ungunsten der Positionsrichtung um sich die Taschen noch weiter zu füllen, dann sollte man den Wert so klein wie möglich halten. Das Risiko, dass dann überhaupt keine Order ausgeführt wird ist dann größer. Ist der Wert zu klein kann auch es in volatilen Zeiten dazu kommen, dass die Orders nicht ausgeführt werden, auch ein seröser Broker kann nicht immer in diesem Rahmen ausführen. Ist der Wert wiederum groß, dann wird die Order fast immer ausgeführt, dies lässt aber dem Broker das Potential das auszunutzen. Ob es wichtig oder unwichtig ist wie nah die Order am gesendeten "Price" ausgeführt wird, hängt am Ende auch von der Strategie ab. In mql5 wird der Wert in der Einheit "Point" angegeben ich könnte mir vorstellen das ist bei mql4 nicht anders. |
|
|||
Besten Dank, für die Bestätigung! Das hilft mir schon mal weiter
Zitat:
Pips ist ja eigentlich eher im Bereich Forex gebräuchlich, daher dachte ich, dass die Einheit bei CFD bestimmt anders ist. Habe daher gerade noch mal versucht rauszufinden, wie die Einheit "Point", also Punkt, bei CFD definiert ist. Retep würde mir jetzt vielleicht wieder empfehlen, mich mit den Grundlagen des Tradings zu befassen, anstelle programmieren zu wollen. Nun ja, um ehrlich zu sein, sehe ich auch hier nicht die Lösung darin, Grundlagenbücher zu lesen. Es gibt ja so viele Einheiten (Lots, Pips, Punkte und anderes) und je nach Assetklasse und Broker, und manchmal sogar innerhalb einer Assetklasse, sind die Einheiten unterschiedlich definiert. Habe das schon oft nachgeschlagen, meistens vergesse ich die Definition gleich danach auch wieder . Vermutlich auch deshalb, weil es keine einheitlichen Definitionen gibt und weil die die es gibt, so wilkürlich sind. Habe gerade eine Quelle gefunden die behauptet, ein Punkt wären bei CFD 25 EUR: https://qtrade.de/tradingblog/erklaerung-cfd-trading/ Ob ein x-beliebiger Trading-Blog eine seriöse Quelle ist, liegt im Auge des Betrachters. Mag sein, dass es auch nicht bei allen Brokern gleich ist. Werde daher noch mal versuchen, eine Bestätigung von meinem Broker zu erhalten (in dem Fall JFD). |
|
|||
Zitat:
Laut der Aussage der Hotline entspricht beim CFD .DE30Cash ein Punkt einem Euro. Somit wäre das also auch geklärt. Bizarr: Laut Aussage der Hotline ist diese Info nicht auf der Webseite zu finden, und man kann sie auch sonst nirgendwo nachlesen. |
|
|||
Bei dem Thema steht im Netz leider viel geschrieben was überhaupt nicht hilft für den automatisierten Handel. CFD DE30 kann auch ein Point-value von 0.01 haben (pro Lot). Man sollte nur die Angaben glauben und nutzen die der entsprechende Broker liefert denn dort handelt man.
Hol dir die Werte daher immer über mql vom Broker, nur dann sind die Werte auch für Lotsizeberechnungen, benötigte Margin etc nutzbar. Pip ist für mich eine völlig sinnlose Einheit die, wie man immer wieder sieht, nur Verwirrung stiftet und keinen Nutzen für irgendwas erfüllt. Vielleicht wurde die Einheit Pip erfunden um verwirrende Bloginhalte zu füllen, ich kenne keinen Anwendungsfall wo Pips für den automatisierten Handel nützlich wäre |
|
|||
Zitat:
Zitat:
Zitat:
|
|
|||
Über den EA also MQL die Werte holen, in der Regel bekommt man darüber alles relevante für den EA. Was zB aber nicht geht ist die Kommission(halfturn/roundturn) sofern man so ein Konto tradet, muss man dann eben manuell in den code packen.
|
|
|||
Okay. Welche Funktion(en) würdest Du für diesen Zweck empfehlen bzw. kommen grundsätzlich dafür in Frage?
|
Lesezeichen |
|
|