- 118.109 Mitglieder,
- 73.671 Diskussionen,
- 1.206 Gelöste Fragen

am 24.07.2020 08:37
Hallo,
ich habe heute zum Test eine längerfristige Verkaufsorder mit dem folgenden Code angelegt:
add_order_request_validation = OrderService_pb2.AddOrderRequest( access_token=token, account_number=str(*********), order_type=cb.SELL, security_with_stockexchange=security_with_stock_exchange, validation=cb.TOTAL_COSTS_ONLY, order_model=cb.LIMIT, limit=float(trade_limit), amount=trade_amount, validity_date={'day': 31, 'month': 7, 'year': 2020} ) ao = order_service_client.AddOrder(add_order_request_validation) add_order_request = OrderService_pb2.AddOrderRequest( access_token=token, account_number=str(*********), order_type=cb.SELL, security_with_stockexchange=security_with_stock_exchange, validation=cb.WITHOUT_VALIDATION, order_model=cb.LIMIT, limit=float(trade_limit), amount=trade_amount, validity_date={'day': 31, 'month': 7, 'year': 2020} ) ao = order_service_client.AddOrder(add_order_request)
In der Responde ohne Vadilation steht die Fehlermeldung drin, dass ich erst die Order mit den Kosten valisieren muss.
2020-07-24 08:06:14,273 - test-order - INFO - add_order_request_validation: access_token: "*****" account_number: "******" security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 validation: TOTAL_COSTS_ONLY 2020-07-24 08:06:14,693 - test-order - INFO - AddOrder: account { account_number: "******" depot_number: "******" name: "******" } order { security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT status_timestamp { } validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 stop: nan stop_limit: nan trailing_distance: nan trailing_limit_tolerance: nan dripping_quantity: nan execution_quote: nan } order_costs { estimated_total_costs: 16.18 cost_id: "787*****" aggregated_costs { in_costs_currency: "EUR" out_costs_absolute: 16.18 out_costs_relative: 0.32 out_costs_currency: "EUR" instrument_costs_currency: "EUR" service_costs_absolute: 16.18 service_costs_relative: 0.32 service_costs_currency: "EUR" subsidy_costs_currency: "EUR" foreign_currency_costs_currency: "EUR" performance_impact_absolute: -16.18 performance_impact_relative: -0.32 performance_impact_currency: "EUR" expected_amount: 4976.92 expected_amount_currency: "EUR" } } 2020-07-24 08:06:15,103 - test-order - INFO - AddOrder: account { account_number: "******" depot_number: "******" name: "******" } error { code: "ORD_COSTS_NOT_REQUESTED" message: "MIFID2 requirements don\'t allow to execute orders without requesting order costs. Please validate order with VALIDATE_WITH_TOTAL_COSTS or TOTAL_COSTS_ONLY first" }
Im AT-Pro wurde die Order aber angelegt. Hier ein Auszug aus dem TAPI-Log:
2020-07-24 08:06:14,280 REQ: a8f050a0-4dcc-492f-9a55-bc2fafc9cabd GrpcAddOrderStreamerDEPRO { access_token: "************" account_number: "*********" security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 validation: TOTAL_COSTS_ONLY } 2020-07-24 08:06:14,690 REP: a8f050a0-4dcc-492f-9a55-bc2fafc9cabd GrpcAddOrderStreamerDEPRO { account { account_number: "*********" depot_number: "*********" name: "******" } order { security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT status_timestamp { } validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 stop: NaN stop_limit: NaN trailing_distance: NaN trailing_limit_tolerance: NaN dripping_quantity: NaN execution_quote: NaN } order_costs { estimated_total_costs: 16.18 cost_id: "787*****" aggregated_costs { in_costs_currency: "EUR" out_costs_absolute: 16.18 out_costs_relative: 0.32 out_costs_currency: "EUR" instrument_costs_currency: "EUR" service_costs_absolute: 16.18 service_costs_relative: 0.32 service_costs_currency: "EUR" subsidy_costs_currency: "EUR" foreign_currency_costs_currency: "EUR" performance_impact_absolute: -16.18 performance_impact_relative: -0.32 performance_impact_currency: "EUR" expected_amount: 4976.92 expected_amount_currency: "EUR" } } } 2020-07-24 08:06:14,697 REQ: 35fc233e-31a2-4790-baa2-d78db599dfcb GrpcAddOrderStreamerDEPRO { access_token: "************" account_number: "*********" security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 } 2020-07-24 08:06:15,096 REP: 35fc233e-31a2-4790-baa2-d78db599dfcb GrpcAddOrderStreamerDEPRO { account { account_number: "*********" depot_number: "*********" name: "******" } order { security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "LUS" issuer: "7649" } } order_type: SELL order_number: "1717*****" amount: 26.0 order_model: LIMIT order_status: OPEN status_timestamp { seconds: 1595570775 } validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 stop: NaN stop_limit: NaN trailing_distance: NaN trailing_limit_tolerance: NaN dripping_quantity: NaN trading_partner_name: "Lang und Schwarz (OTC)" execution_quote: NaN unique_id: "1717*****" } } 2020-07-24 08:06:15,098 REQ: e7c99555-ca11-4702-bf51-b180eabb0af6 GrpcAddOrderStreamerDEPRO { access_token: "************" account_number: "*********" security_with_stockexchange { security_code { code: "******" code_type: WKN } stock_exchange { id: "OTC" } } order_type: SELL amount: 26.0 order_model: LIMIT validity_date { year: 2020 month: 7 day: 31 } limit: 120.0 } 2020-07-24 08:06:15,100 ERR: e7c99555-ca11-4702-bf51-b180eabb0af6 GrpcAddOrderStreamerDEPRO { com.consorsbank.module.tapi.core.common.TapiException: MIFID2 requirements don't allow to execute orders without requesting order costs. Please validate order with VALIDATE_WITH_TOTAL_COSTS or TOTAL_COSTS_ONLY first at com.consorsbank.module.tapi.core.order.de.GrpcAddOrderStreamerDE.createOrderDraft(GrpcAddOrderStreamerDE.java:76) at com.consorsbank.module.tapi.core.order.GrpcAddOrderStreamer.process(GrpcAddOrderStreamer.java:71) at com.consorsbank.module.tapi.core.order.GrpcAddOrderStreamer.process(GrpcAddOrderStreamer.java:57) at com.consorsbank.module.tapi.core.common.GrpcStreamer.process(GrpcStreamer.java:79) at com.consorsbank.module.tapi.core.order.GrpcOrderServiceImpl.addOrder(GrpcOrderServiceImpl.java:82) at com.consorsbank.module.tapi.grpc.OrderServiceGrpc$MethodHandlers.invoke(OrderServiceGrpc.java:1120) at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171) at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:283) at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:711) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) } 2020-07-24 08:06:15,102 REP: e7c99555-ca11-4702-bf51-b180eabb0af6 GrpcAddOrderStreamerDEPRO { account { account_number: "*********" depot_number: "*********" name: "******" } error { code: "ORD_COSTS_NOT_REQUESTED" message: "MIFID2 requirements don\'t allow to execute orders without requesting order costs. Please validate order with VALIDATE_WITH_TOTAL_COSTS or TOTAL_COSTS_ONLY first" } }
Will man die Verkaufsorder erneut ausführen, kommt die Meldung, dass nicht genügend Bestand vorhanden ist. So habe ich gemerkt, dass die Order angelegt wurde. Die Order wird auch angelegt, wenn der Verkaufswert > € 5.000 ist. Ich finde es sehr verwirrend, dass eine Fehlermeldung zurückgegeben wird, obwohl die Order korrekt angelegt wurde. Es macht auch kein Unterschied, ob ich die Order außerhalb oder innerhalb der Handelszeiten anlege.
Viele Grüße
immermalanders
am 24.07.2020 08:52
Wie ich sehe, es war eine Ausführung. Dazu detaillierte Analyse nötig. Ergibt es Sinn an den Support Team wenden?
am 24.07.2020 09:18
Würden die Logs (TAPI, Debug-Log) bei der Fehler-Diagnose helfen? Wenn ja, kann ich die zusammenstellen und per Mail schicken.
am 24.07.2020 12:33
am 28.07.2020 15:56
Alles passt. Der BUG war bei mir, die Order wurde doppelt ausgeführt. Da der Kostenausweis bereits verwendet wurde, kam die MIFID2-Meldung da kein "ungenutzter" Kostenausweis vorhanden war.