API: Frage zu Trailing Stop Market Order
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
am 19.09.2024 10:12
Hallo allerseits,
ich habe gerade Probleme mit der API bei der Validierung einer Trailing Stop Market Order und vermute ein Verständnisproblem meinerseits.
Aktuell besitze ich testweise 12 Derivate mit der WKN PC1EJ1. Der Verkaufspreis liegt bei 0,84€, der Kaufpreis bei 0,94€. Ich möchte nun die folgende Trailing Stop Market Order erstellen:
{'depotId': 'XYZ', 'side': 'SELL', 'instrumentId': 'PC1EJ1', 'orderType': 'TRAILING_STOP_MARKET', 'quantity': {'value': '12', 'unit': 'XXX'}, 'venueId': 'D7E506847065490DA8E9990E7B6CA955', 'triggerLimit': {'value': '0.50', 'unit': 'EUR'}, 'triggerLimitDistRel': {'preDecimalPlaces': '5', 'decimalPlaces': '50'}, 'validityType': 'GFD'}
Allerdings schlägt die Validierung immer fehl, es kommt der Fehler "Der Trailingabstand ist leider ungültig.". Auf der Webseite kann ich problemlos die Order mit den Parametern Trailing Stop Loss: 0,50 EUR, Trailing Abstand: 5,50 % absetzen. Was mache ich falsch?
Besten Dank.
- Labels:
-
Apps
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
19.09.2024 10:43 - bearbeitet 19.09.2024 10:47
Sorry, nochmal genauer gelesen.
Laut Doku ist eine Trailing Stop Market nicht mit einem trigger Limit relativ kombinierbar:
11.2.4 Trailing Stop Market Verkaufsorder mit absolutem Abstand
Request-Body:{ "depotId": "1234_depot_UUID_1234", "side": "SELL", "instrumentId": "WKN123", "orderType": "TRAILING_STOP_MARKET", "quantity": {"value":"1","unit":"XXX"}, "venueId": "1234_venue_UUID_1234", "triggerLimit": {"value":"10","unit":"EUR"}, "triggerLimitDistAbs": {"value":"1","unit":"EUR"}, "validityType": "GFD" }
11.2.5 Trailing Stop Limit Verkaufsorder mit relativem Abstand
Request-Body:{ "depotId": "1234_depot_UUID_1234", "side": "SELL", "instrumentId": "WKN123", "orderType": "TRAILING_STOP_LIMIT", "quantity": {"value":"1","unit":"XXX"}, "venueId": "1234_venue_UUID_1234", "limit": {"value":"9","unit":"EUR"}, "triggerLimit": {"value":"10","unit":"EUR"}, "triggerLimitDistRel": "preDecimalPlaces": "5", "decimalPlaces": "50"}, "validityType": "GFD" }
So sieht es zumindest aus...
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
am 19.09.2024 10:45
Hallo Krügerrand,
vielen Dank für die schnelle Antwort. Aber für den Order Type Trailing_Stop_Limit benötige ich nun ja noch einen weiteren Parameter "limit", geht die normale Trailing_Stop_Market-Order nicht mit relativem Abstand?
Besten Dank
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
19.09.2024 11:04 - bearbeitet 19.09.2024 11:06
Da war ich wohl zu schnell für mich selbst.
Versuche mal folgendes:
- triggerLimit 0,50 statt 0.50
Edit: nein scheint auch nicht das Problem zu sein...
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
19.09.2024 11:28 - bearbeitet 19.09.2024 11:28
Vielleicht ist es auch ein Logikproblem. Einen Trailing Stop einzugeben, der geringer ist, als das Limit zum aktuellen Kurs?
(0,50-0,94)/0,94 = 46%. Wenn man einen Trailing Stop Loss von 5,5% Eingibt, müsste der direkt auf 0,88 hochgesetzt werden. Vielleicht wird das in der Web Ordermaske nicht geprüft, führt aber bei der Api zu einem Fehler?
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
am 19.09.2024 12:46
Danke für die Hinweise, in der Doku hatte ich auch das fehlende Beispiel zu relativem Abstand bei der Trailing Stop Market Order gesehen und gedacht, ich kann es äquivalent zur Trailing Stop Limit Order anwenden. Auch mit absolutem Abstand komme ich leider nicht weiter. Wenn ich bspw. folgendes eingebe, kommt weiterhin der selbe Fehler ("Der Trailingabstand ist leider ungültig."). Wenn meine Werte falsch sind bzw. ich einen Denkfehler habe, was wären bei dem Beispiel realistische Werte?
{'depotId': 'XYZ', 'side': 'SELL', 'instrumentId': 'PC1EJ1', 'orderType': 'TRAILING_STOP_MARKET', 'quantity': {'value': '12', 'unit': 'XXX'}, 'venueId': 'D7E506847065490DA8E9990E7B6CA955', 'triggerLimit': {'value': '0.60', 'unit': 'EUR'}, 'validityType': 'GFD', 'triggerLimitDistAbs': {'value': '0.15', 'unit': 'EUR'}}
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
19.09.2024 15:02 - bearbeitet 19.09.2024 15:03
Auch hier ist dein Preis (0,60) weit tiefer, als er mit deinem Abstand hätte.
Aktuell ist der Preis bei 1,12 EUR. Damit würde dein SL auf 0,97 hochgezogen werden.
Versuch doch mal SL 1,00 und Absoluter Abstand 0,20 EUR.
Aber grundsätzlich sollte deines schon auch gehen...
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
am 19.09.2024 15:15
Mmh, danke für die Idee, aber auch damit klappt es leider nicht:
{'depotId': 'XYZ', 'side': 'SELL', 'instrumentId': 'PC1EJ1', 'orderType': 'TRAILING_STOP_MARKET', 'quantity': {'value': '12', 'unit': 'XXX'}, 'venueId': 'D7E506847065490DA8E9990E7B6CA955', 'triggerLimit': {'value': '1.00', 'unit': 'EUR'}, 'validityType': 'GFD', 'triggerLimitDistAbs': {'value': '0.20', 'unit': 'EUR'}}
Error in Order Validation {"code":"request.object.invalid","messages":[{"severity":"ERROR","key":"fehler_trailingabstand_ungueltig","message":"Der Trailingabstand ist leider ungültig.","args":{},"origin":[]}]}

am 21.09.2024 10:35
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
am 21.09.2024 10:35
Schau dir mal die postman collection an. Dort steht trailingLimitDistAbs als key für den Abstand. Die Doku scheint hier falsch zu sein.
Ansonsten würde ich mal versuchen eine Order über das Web anzulegen und per API die Orders abfragen. Da kannst du die richtige Struktur sehen.
