Available translations





loading results
Opening Orders
Summary: Several calculations and validations are required before creating and placing an order.
Summary: Перед созданием и размещением ордера необходимо провести несколько расчетов и проверок.
Summary: Bevor eine Bestellung erstellt und aufgegeben werden kann, sind mehrere Berechnungen und Validierungen erforderlich.
Opening Orders
Before creating an order, a few calculations to determine what the order should look like are required, in particular about the rate of the order (see Calculate Order Rate) and the size of the order (see Calculate Order Size).
Перед созданием ордера необходимо выполнить несколько расчетов, чтобы определить, как должен выглядеть ордер, в частности, курс ордера (см. "Расчет цены для ордера") и размер ордера (см. "Расчет размера ордера").
Vor der Erstellung eines Auftrags sind einige Berechnungen erforderlich, um festzustellen, wie der Auftrag aussehen soll, insbesondere über den Kurs des Auftrags (siehe Auftragskurs berechnen) Order Rate und den Umfang des Auftrags (siehe Auftragsumfang berechnen) Size.
Once the calculations are done, some validations are in order.
После проведения расчетов необходимо провести некоторые проверки.
Sobald die Berechnungen abgeschlossen sind, sind einige Validierungen erforderlich.
The size of an order may not be negative.
Размер заказа не может быть отрицательным.
Der Umfang eines Auftrags darf nicht negativ sein.
(tradingEngineOrder.orderBaseAsset.size.value <= 0)
(tradingEngineOrder.orderQuotedAsset.size.value <= 0) If previous checks pass and it is a forward testing or live trading session, the order is placed at the exchange. If it is a backtesting or paper trading session, the order exists in the data structure of the trading engine only.
Если предыдущие проверки пройдены и это форвард-тестирование или реальная торговая сессия, ордер размещается на бирже. Если это бэктестинг или бумажная торговая сессия, ордер существует только в структуре данных торгового движка.
Wenn die vorherigen Prüfungen erfolgreich waren und es sich um eine Forward-Testing- oder Live-Handelssitzung handelt, wird der Auftrag an der Börse platziert. Handelt es sich um eine Backtesting- oder Papierhandelssitzung, existiert der Auftrag nur in der Datenstruktur der Handelsmaschine.
If the order is placed successfully, then all related data structures in the trading engine are updated accordingly, including size placed for the stage in both assets, episode counters, and the particular order’s details.
Если ордер размещен успешно, то все связанные структуры данных в торговом движке обновляются соответствующим образом, включая размер, размещенный в обоих активах, счетчики эпизодов и детали конкретного ордера.
Wenn der Auftrag erfolgreich platziert wurde, werden alle zugehörigen Datenstrukturen in der Handelsmaschine entsprechend aktualisiert, einschließlich der für die Phase platzierten Größe in beiden Vermögenswerten, der Episodenzähler und der Details des jeweiligen Auftrags.
Calculate Order Rate
Calculate Order Rate
Расчет цены для ордера
Auftragsrate berechnen
The first thing to consider to determine the rate of the order is whether it is a limit or a market order.
Первое, что необходимо учитывать для определения ставки ордера, это то, является ли он лимитным или рыночным.
Um den Kurs des Auftrags zu bestimmen, ist zunächst zu prüfen, ob es sich um einen Limit- oder einen Marktauftrag handelt.
Limit orders must have a proper definition of the order rate. That is, the order rate node must have a formula that results in a number, and that is greater than zero. If all validations pass, the order rate is stored in
tradingEngineOrder.rate.value. Лимитные ордера должны иметь правильное определение ставки ордера. То есть узел ставки ордера Order Rate должен иметь формулу, результатом которой является число, большее нуля. Если все проверки пройдены, ставка ордера сохраняется в файле
tradingEngineOrder.rate.value. Limitierte Aufträge müssen eine korrekte Definition des Auftragssatzes haben. Das heißt, der Knoten für den Auftragssatz muss eine Formel haben, die eine Zahl ergibt, die größer als Null ist. Wenn alle Validierungen erfolgreich sind, wird der Auftragssatz in
tradingEngineOrder.rate.value gespeichert. For market orders, there is no definition of the rate, as the rate is whatever rate the order fills at the exchange. The initial value is therefore the last known market rate, that is, the rate of the last closed candle:
Для рыночных ордеров не существует определения ставки, так как ставка является любой ставкой, по которой ордер исполняется на бирже. Поэтому начальным значением является последний известный рыночный курс, то есть курс последней закрытой свечи:
Für Marktaufträge gibt es keine Definition des Kurses, da der Kurs dem Kurs entspricht, zu dem der Auftrag an der Börse ausgeführt wird. Der Ausgangswert ist daher der letzte bekannte Marktkurs, d. h. der Kurs der letzten geschlossenen Kerze:
tradingEngineOrder.rate.value = tradingEngine.tradingCurrent.tradingEpisode.candle.close.value Calculate Order Size
Calculate Order Size
Расчет размера ордера
Auftragsgröße berechnen
The calculation of the size of the order is a bit more elaborate, as several things must be taken into account, with the added intricacy that the user may define the target size for the stage in the base asset or the quoted asset.
Расчет размера ордера немного более сложен, поскольку необходимо учитывать несколько моментов, с дополнительной сложностью в том, что пользователь может определить целевой размер для этой стадии в базовом активе или котируемом активе.
Die Berechnung des Auftragsvolumens ist etwas komplizierter, da mehrere Faktoren berücksichtigt werden müssen. Hinzu kommt, dass der Benutzer die Zielgröße für die Stufe im Basiswert oder im notierten Wert festlegen kann.
The three main steps to define the size are the following:
Три основных шага для определения размера следующие:
Die drei wichtigsten Schritte zur Festlegung der Größe sind die folgenden:
- To start with, the definitions regarding the size of the order must be valid (see Required Configuration Validation).
- Прежде всего, определения, касающиеся размера ордера, должны быть действительными (см. раздел "Проверка требуемой конфигурации").
- Zunächst müssen die Definitionen für die Größe des Auftrags gültig sein (siehe Validierung der erforderlichen Konfiguration).
- Then, the size of the order added to the rest of the orders that may have been placed before must not be greater than the target size for the stage (see Not Passing Target Size Validation).
- Затем размер ордера, сложенный с остальными ордерами, которые могли быть размещены ранее, не должен превышать целевой размер для данн��й стадии (см. раздел "Не прохождение проверки целевого размера").
- Dann darf die Größe des Auftrags zusammen mit den übrigen Aufträgen, die möglicherweise zuvor erteilt wurden, nicht größer sein als die Zielgröße für die Stufe - siehe Validierung der Zielgröße (Target Size) nicht bestanden.
- Finally, the size of the order must not leave any of the assets in the trading engine’s built-in accounting system with a negative balance (see Not Negative Balance Validation).
- Наконец, размер ордера не должен оставлять ни один из активов во встроенной системе учета торгового движка с отрицательным балансом (см. Проверка отсутствия отрицательного баланса).
- Schließlich darf der Umfang des Auftrags nicht dazu führen, dass einer der Vermögenswerte im integrierten Buchhaltungssystem des Handelssystems einen negativen Saldo aufweist - siehe Validierung des nicht negativen Saldos (Balance).
Required Configuration Validation
Проверка тре��уемой конфигурации
Erforderliche Konfigurationsvalidierung
Beyond the target size for the stage, the user produces two more definitions that affect what the order size should be for the particular order: at the level of the execution algorithm’s configuration (
percentageOfStageTargetSize parameter) and the level of the order’s configuration (percentageOfAlgorithmSize parameter). Both of these definitions must be valid and numeric. Помимо целевого размера для стадии, пользователь создает еще два определения, которые влияют на то, каким должен быть размер ордера для конкретного ордера: на уровне конфигурации алгоритма исполнения (параметр
percentageOfStageTargetSize) и на уровне конфигурации ордера (параметр percentageOfAlgorithmSize). Оба эти определения должны быть действительными и числовыми. Neben der Zielgröße für die Stufe gibt der Benutzer zwei weitere Definitionen ein, die sich auf die Auftragsgröße für den jeweiligen Auftrag auswirken: auf der Ebene der Konfiguration des Ausführungsalgorithmus (Parameter
percentageOfStageTargetSize) und auf der Ebene der Auftragskonfiguration (Parameter percentageOfAlgorithmSize). Diese beiden Definitionen müssen gültig und numerisch sein. Once the corresponding checks pass, the size of the algorithm is determined as per the definitions:
После прохождения соответствующих проверок размер алгоритма определяется в соответствии с определениями:
Sobald die entsprechenden Prüfungen bestanden sind, wird die Größe des Algorithmus gemäß den Definitionen bestimmt:
algorithmSizeInBaseAsset =
tradingEngineStage.stageBaseAsset.targetSize.value *
executionAlgorithm.config.percentageOfStageTargetSize / 100 … and…
… и …
… und …
algorithmSizeInQuotedAsset =
tradingEngineStage.stageQuotedAsset.targetSize.value *
executionAlgorithm.config.percentageOfStageTargetSize / 100 Note: Notice that it is assumed that the target size for the stage is defined both in base asset and the quoted asset. This is because, although the user defines the target size in one asset only, the system converts the definition to the other asset (at an earlier moment), to keep track of accounts on both assets at all times, which is a design requirement.
Note: Обратите внимание, что предполагается, что целевой размер для стадии определен как в базовом активе, так и в котируемом активе. Это связано с тем, что, хотя пользователь определяет целевой размер только в одном активе, система преобразует определение в другой актив (в более ранний момент), чтобы постоянно отслеживать счета в обоих активах, что является требованием проекта.
Note: Beachten Sie, dass davon ausgegangen wird, dass die Zielgröße für die Stufe sowohl in der Basisanlage als auch in der zitierten Anlage definiert ist. Der Grund dafür ist, dass der Benutzer die Zielgröße zwar nur in einer Anlage definiert, das System die Definition aber (zu einem früheren Zeitpunkt) in die andere Anlage konvertiert, um die Konten beider Anlagen jederzeit im Blick zu behalten, was eine Designanforderung ist.
Not Passing Target Size Validation
Not Passing Target Size Validation
Не прохождение проверки целевого размера
Überprüfung der Zielgröße nicht bestanden
This validation requires handling two possible scenarios separately. Did the user define the target size for the stage in base asset or the quoted asset?
Эта проверка требует отдельной обработки двух возможных сценариев. Определил ли пользователь целевой размер для стадии в базовом активе или в котируемом активе?
Bei dieser Validierung müssen zwei mögliche Szenarien getrennt behandelt werden. Hat der Benutzer die Zielgröße für die Stufe im Basis-Asset oder im zitierten Asset definiert?
Note: The system discriminates both scenarios to remain faithful to the intent of the definitions. This is a design feature throughout the system, and it is at the core of allowing maximum flexibility, so that users may use trading systems in various ways to achieve different goals.
Note: Система различает оба сценария, чтобы сохранить верность замыслу определений. Это особенность конструкции всей системы, и она лежит в основе обеспечения максимальной гибкости, чтобы пользователи могли использовать торговые системы различными способами для достижения различных целей.
Note: Das System unterscheidet zwischen beiden Szenarien, um der Absicht der Definitionen treu zu bleiben. Dies ist ein durchgängiges Gestaltungsmerkmal des Systems und steht im Mittelpunkt, wenn es darum geht, ein Höchstmaß an Flexibilität zu ermöglichen, so dass die Benutzer die Handelssysteme auf verschiedene Weise nutzen können, um unterschiedliche Ziele zu erreichen.
Stage size defined in base asset
Размер стадии заданного в базовом активе
In der Basisanlage definierte Stufengröße
If the stage size was defined in base asset, then the size of the order derives from the definitions that where validated in the previous step (see Required Configuration Validation):
Если размер стадии был определен в базовом активе, то размер ордера вытекает из определений, которые были проверены на предыдущем шаге (см. раздел "Проверка требуемой конфигурации"):
Wenn die Stufengröße in der Basisanlage definiert wurde, ergibt sich die Größe des Auftrags aus den Definitionen, die im vorherigen Schritt validiert wurden (siehe Validierung der erforderlichen Konfiguration):
tradingEngineOrder.orderBaseAsset.size.value =
algorithmSizeInBaseAsset *
tradingSystemOrder.config.percentageOfAlgorithmSize / 100 With the above value, the validation is run to determine if the combined sizes of all orders placed up to this point would be larger than the size defined for the stage. Remember that the size defined for the stage is enforced as a cap. If the defined order size does exceed the stage size limit, then the size is lowered to fit the limit. The re-sizing goes out with a warning, to let the user know why the resizing took place.
При указанном выше значении выполняется проверка, чтобы определить, будет ли совокупный размер всех ордеров, размещенных до этого момента, больше, чем размер, определенный для данной стадии. Помните, что размер, определенный для данной стадии, применяется в качестве ограничения. Если определенный размер ордера превышает лимит размера этапа, то размер уменьшается, чтобы соответствовать лимиту. Изменение размера сопровождается предупреждением, чтобы пользователь знал, почему произошло изменение размера.
Mit dem obigen Wert wird die Validierung durchgeführt, um festzustellen, ob die kombinierten Größen aller bis zu diesem Zeitpunkt erteilten Aufträge größer als die für die Stufe definierte Größe wären. Beachten Sie, dass die für die Stufe definierte Größe als Obergrenze gilt. Übersteigt die definierte Auftragsgröße das Limit für die Stufe, wird die Größe an das Limit angepasst. Bei der Größenanpassung wird eine Warnung ausgegeben, um den Benutzer darüber zu informieren, warum die Größenanpassung erfolgt ist.
Once the order size in base asset is final, then the size in quoted asset may be determined multiplying the size in base asset by the order rate determined earlier:
Когда размер ордера в базовом активе окончательно определен, можно определить размер в котируемом активе, умножив размер в базовом активе на ставку ордера, определенную ранее:
Sobald der Auftragsumfang im Basisvermögen endgültig ist, kann der Umfang im börsennotierten Vermögen durch Multiplikation des Umfangs im Basisvermögen mit dem zuvor ermittelten Auftragssatz ermittelt werden:
tradingEngineOrder.orderQuotedAsset.size.value =
tradingEngineOrder.orderBaseAsset.size.value *
tradingEngineOrder.rate.value Stage size defined in quoted asset
Размер стадии, заданной в котируемом активе
Stufengröße definiert in notiertem Vermögenswert
Similarly, in this case the size of the order in quoted asset derives directly from the definitions:
Аналогично, в данном случае размер ордера в котируемом активе вытекает непосредственно из определений:
Auch in diesem Fall ergibt sich der Umfang des Auftrags in notierten Vermögenswerten direkt aus den Definitionen:
tradingEngineOrder.orderQuotedAsset.size.value =
algorithmSizeInQuotedAsset *
tradingSystemOrder.config.percentageOfAlgorithmSize / 100 The same validation is run as with the base asset, and the size of the order in base asset is also determined at the end:
Выполняется та же проверка, что и с базовым активом, и в конце также определяется размер ордера в базовом активе:
Es wird die gleiche Validierung durchgeführt wie beim Basisvermögen, und am Ende wird auch die Größe des Auftrags im Basisvermögen ermittelt:
tradingEngineOrder.orderBaseAsset.size.value =
tradingEngineOrder.orderQuotedAsset.size.value /
tradingEngineOrder.rate.value Not Negative Balance Validation
Not Negative Balance Validation
Проверка отсутствия отрицательного баланса
Validierung nicht negativer Salden
The final validation is there to make sure that no balances become negative if the order is created with the currently defined size.
Окончательная проверка проводится для того, чтобы убедиться, что баланс не станет отрицательным, если ордер будет создан с определенным на данный момент размером.
Die abschließende Validierung soll sicherstellen, dass keine Salden negativ werden, wenn der Auftrag mit der aktuell definierten Größe erstellt wird.
Buy orders
Ордера на покупку
Kauf-Order
For buy orders (both market and limit), the quoted asset balance minus the order size must be equal to or greater than zero.
Для ордеров на покупку (как рыночных, так и лимитных) котируемый остаток актива за вычетом размера ордера должен быть равен или больше нуля.
Bei Kaufaufträgen (sowohl Markt- als auch Limitaufträge) muss der Saldo des notierten Vermögenswerts abzüglich der Auftragsgröße gleich oder größer als Null sein.
tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value -
tradingEngineOrder.orderQuotedAsset.size.value => 0 If not, the size of the order is redefined to fit the available balance. The resizing goes out with a warning.
Если нет, размер заказа переопределяется, чтобы соответствовать имеющемуся балансу. Изменение размера сопровождается предупреждением.
Ist dies nicht der Fall, wird die Größe der Bestellung neu festgelegt, um sie an das verfügbare Guthaben anzupassen. Die Größenanpassung wird mit einer Warnung quittiert.
tradingEngineOrder.orderQuotedAsset.size.value =
tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value And, remember, every time a property changes for one asset, the same property for the other asset must be updated as well:
И, помните, каждый раз, когда свойство изменяется для одного актива, это же свойство для другого актива также должно быть обновлено:
Und denken Sie daran, dass jedes Mal, wenn eine Eigenschaft für ein Wirtschaftsgut geändert wird, die gleiche Eigenschaft für das andere Wirtschaftsgut ebenfalls aktualisiert werden muss:
tradingEngineOrder.orderBaseAsset.size.value =
tradingEngineOrder.orderQuotedAsset.size.value /
tradingEngineOrder.rate.value Sell orders
Ордера на продажу
Verkauf-Order
For market and limit sell orders, the validation is reversed, checking the balance of the base asset instead of the quoted asset.
Для рыночных и лимитных ордеров на продажу проверка производится в обратном порядке, проверяется баланс базового актива, а не котируемого актива.
Bei Markt- und Limit-Verkaufsaufträgen wird die Validierung umgekehrt, d. h. es wird der Saldo der Basisanlage statt der notierten Anlage geprüft.
Note: Remember that a sell order always exchanges the base asset for the quoted asset and a buy order does the opposite.
Note: Помните, что ордер на продажу всегда обменивает базовый актив на котируемый актив, а ордер на покупку делает обратное.
Note: Denken Sie daran, dass ein Verkaufsauftrag immer den Basiswert gegen den notierten Wert austauscht und ein Kaufauftrag das Gegenteil bewirkt.
Order Management — TOC
You just read page 3 in the topic.
1. Overview of the Management Issue
8. Maintaining Simulated Orders
10. Simulating Sync With the Exchange
11. Simulating Order Cancellations
12. Accounting