Community

Antworten
Als Mitglied der Community können Sie die Inhalte dieses Boards nur lesen. Für dieses Board freigeschaltete Mitglieder können aktiv an der Diskussion teilnehmen und eigene Beiträge und Kommentare schreiben. Wollen Sie dabei sein? Dann schicken Sie CB_Michael eine Nachricht mit ihrer Motivation zur Teilnahme.

Login & Nachricht schreiben

Autorität
Beiträge: 3.809
Registriert: ‎06.02.2015
BUG: AddOrderRequest schlägt mit MIFID2-Meldung fehl, Order wird aber angelegt (Python)

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

 

Regelmäßiger Autor
Beiträge: 33
Registriert: ‎12.02.2019
Betreff: BUG: AddOrderRequest schlägt mit MIFID2-Meldung fehl, Order wird aber angelegt (Python)

Wie ich sehe, es war eine Ausführung. Dazu detaillierte Analyse nötig. Ergibt es Sinn an den Support Team wenden?

Autorität
Beiträge: 3.809
Registriert: ‎06.02.2015
Betreff: BUG: AddOrderRequest schlägt mit MIFID2-Meldung fehl, Order wird aber angelegt (Python)

Würden die Logs (TAPI, Debug-Log) bei der Fehler-Diagnose helfen? Wenn ja, kann ich die zusammenstellen und per Mail schicken.

 

Autorität
Beiträge: 3.809
Registriert: ‎06.02.2015
Betreff: BUG: AddOrderRequest schlägt mit MIFID2-Meldung fehl, Order wird aber angelegt (Python)

@Lowenzahn 

Ich habe die Logs (tapi & system_log) an Consors geschickt.

 

Autorität
Beiträge: 3.809
Registriert: ‎06.02.2015
Betreff: BUG: AddOrderRequest schlägt mit MIFID2-Meldung fehl, Order wird aber angelegt (Python)

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.