Available translations





loading results
Simulating Sync With the Exchange
Summary: The simulated synchronization with the exchange resembles the real synchronization in that it follows the same logic. The difference lies in that the data involved in calculations originates in user definitions instead of real-life orders.
Summary: Имитация синхронизации с биржей похожа на реальную синхронизацию, поскольку следует той же логике. Разница заключается в том, что данные, участвующие в расчетах, берутся из пользовательских определений, а не из реальных ордеров.
Summary: Die simulierte Synchronisation mit der Börse ähnelt der realen Synchronisation insofern, als sie der gleichen Logik folgt. Der Unterschied besteht darin, dass die in die Berechnungen einbezogenen Daten aus Benutzerdefinitionen und nicht aus realen Aufträgen stammen.
The simulation of the synchronization with the exchange looks to reproduce the logic of live trading for backtesting and paper trading sessions so that simulations follow similar mechanisms, and thus, maximize their capacity to predict what live trading with any given trading system may look like.
Симуляция синхронизации с биржей призвана воспроизвести логику живой торговли для бэктестинга и бумажных торговых сессий, чтобы симуляции следовали аналогичным механизмам и, таким образом, максимизировали свою способность предсказывать, как может выглядеть живая торговля с любой конкретной торговой системой.
Bei der Simulation der Synchronisierung mit der Börse wird versucht, die Logik des Live-Handels für Backtests und Papierhandelssitzungen zu reproduzieren, so dass die Simulationen ähnlichen Mechanismen folgen und somit ihre Fähigkeit maximieren, vorherzusagen, wie der Live-Handel mit einem bestimmten Handelssystem aussehen könnte.
The obvious difference is that there is no exchange involved in the process, that is, no real-life data about the variables affecting orders such as the actual fill rates, or if orders are filled at all. Instead, all information is taken from user definitions (both from the trading system and session parameters) and market information.
Очевидное различие заключается в том, что в процессе не участвует биржа, то есть нет реальных данных о переменных, влияющих на ордера, таких как фактические коэффициенты заполнения, или если ордера вообще заполняются. Вместо этого вся информация берется из пользовательских определений (как из торговой системы, так и из параметров сессии) и рыночной информации.
Der offensichtliche Unterschied besteht darin, dass keine Börse in den Prozess involviert ist, d. h. es gibt keine realen Daten über die Variablen, die sich auf die Aufträge auswirken, wie z. B. die tatsächlichen Ausführungsraten oder ob die Aufträge überhaupt ausgeführt werden. Stattdessen stammen alle Informationen aus Benutzerdefinitionen (sowohl aus dem Handelssystem als auch aus Sitzungsparametern) und Marktinformationen.
There are two main levels of definitions that affect how orders are simulated.
Существует два основных уровня определений, которые влияют на то, как моделируются ордера.
Es gibt zwei Hauptebenen von Definitionen, die sich darauf auswirken, wie Aufträge simuliert werden.
The one level that takes precedence in all cases is the definitions made through the simulated exchange events section under each order defined in the trading system. These definitions affect each order, providing granular control over how each order should be simulated.
Один уровень, который имеет приоритет во всех случаях, - это определения, сделанные через раздел моделируемых биржевых событий под каждым ордером, определенным в торговой системе. Эти определения влияют на каждый ордер, обеспечивая детальный контроль над тем, как каждый ордер должен быть смоделирован.
Die einzige Ebene, die in allen Fällen Vorrang hat, sind die Definitionen, die im Abschnitt "Simulierte Börsenereignisse" unter jedem im Handelssystem definierten Auftrag vorgenommen werden. Diese Definitionen wirken sich auf jeden Auftrag aus und bieten eine detaillierte Kontrolle darüber, wie jeder Auftrag simuliert werden soll.
The second level of definitions affecting how simulations work is that of parameters at the level of the trading session. These parameters are used for all orders that do not have a specific definition in the form of simulated exchange events.
Второй уровень определений, влияющих на то, как работают симуляции, - это параметры на уровне торговой сессии. Эти параметры используются для всех ордеров, которые не имеют конкретного определения в виде имитируемых биржевых событий.
Die zweite Ebene der Definitionen, die sich auf die Funktionsweise der Simulationen auswirkt, ist die der Parameter auf der Ebene der Handelssitzung. Diese Parameter werden für alle Aufträge verwendet, für die es keine spezifische Definition in Form von simulierten Börsenereignissen gibt.
Like with the real synchronization process, once all calculations are done, the trading bot does the bookkeeping (see Accounting).
Как и в случае с реальным процессом синхронизации, после завершения всех расчетов торговый бот ведет бухгалтерский учет (см. Accounting).
Sobald alle Berechnungen abgeschlossen sind, führt der Trading-Bot die Buchhaltung - siehe Buchhaltung (Accounting) durch, wie bei der eigentlichen Synchronisation.
Actual Size Simulation
Actual Size Simulation
Симуляция фактического размера
Die Tatsächliche Größe der Simulation
Minimal variations in the size of orders that may occur during live trading sessions are irrelevant to the production of proper simulations, thus, there is no need to simulate such things. Instead, the trading bot takes the defined sizes as valid and uses those as the actual size of the order.
Минимальные изменения в размерах ордеров, которые могут происходить во время реальных торговых сессий, не имеют значения для создания правильных симуляций, поэтому нет необходимости моделировать такие вещи. Вместо этого торговый бот принимает установленные размеры за действительные и использует их в качестве фактического размера ордера.
Minimale Schwankungen in der Größe von Aufträgen, die während des Live-Handels auftreten können, sind für die Erstellung ordnungsgemäßer Simulationen irrelevant, so dass keine Notwendigkeit besteht, solche Dinge zu simulieren. Stattdessen nimmt der Trading-Bot die definierten Größen als gültig an und verwendet diese als die tatsächliche Größe der Order.
tradingEngineOrder.orderBaseAsset.actualSize.value =
tradingEngineOrder.orderBaseAsset.size.value
tradingEngineOrder.orderQuotedAsset.actualSize.value =
tradingEngineOrder.orderQuotedAsset.size.value Actual Rate Simulation
Actual Rate Simulation
Симуляция фактической ставки
Simulation der Ist-Rate
The initial value for the rate of orders is the close of the last candle for market orders, that is, the last known market rate, and the value defined for the rate node in case of limit orders.
Начальным значением для ставок ордеров является закрытие последней свечи для рыночных ордеров, то есть последний известный рыночный курс, и значение, определенное для узла ставок в случае лимитных ордеров.
Der Ausgangswert für den Kurs von Aufträgen ist der Schluss der letzten Kerze für Marktaufträge,
d.h. der letzte bekannte Marktkurs, und der für den Kursknoten definierte Wert im Falle von Limitaufträgen. tradingEngineOrder.orderStatistics.actualRate.value = tradingEngineOrder.rate.value However, in real live trading situations, there are many factors out of the users’ control that may affect the actual rate of an order, especially for market orders. Properly simulating such issues is conducive to more realistic projections on the potential performance of strategies, thus, simulations should take such issues into account.
Однако в реальных торговых ситуациях существует множество факторов, неподконтрольных пользователям, которые могут повлиять на фактическую ставку ордера, особенно для рыночных ордеров. Правильное моделирование таких вопросов способствует более реалистичным прогнозам потенциальной эффективности стратегий, поэтому моделирование должно учитывать такие вопросы.
In realen Handelssituationen gibt es jedoch viele Faktoren, die sich der Kontrolle des Nutzers entziehen und den tatsächlichen Kurs eines Auftrags beeinflussen können, insbesondere bei Marktaufträgen. Die korrekte Simulation solcher Faktoren trägt zu realistischeren Prognosen über die potenzielle Leistung von Strategien bei, daher sollten die Simulationen diese Faktoren berücksichtigen.
There are three steps involved in the simulation of the actual rate, and shall be analyzed separately:
В симуляции фактической ставки участвуют три этапа, которые будут проанализированы отдельно:
Die Simulation des Ist-Tarifs erfolgt in drei Schritten, die gesondert analysiert werden sollen:
- Slippage simulation when there are definitions at the level of the trading system, that is, at the level of the simulated exchange events node (see Based On Trading System below).
- Моделирование проскальзывания при наличии определений на уровне торговой системы, то есть на уровне узла симулируемых биржевых событий (см. ниже раздел "На основе торговой системы").
- Slippage -Simulation, wenn es Definitionen auf der Ebene des Handelssystems gibt, d. h. auf der Ebene des simulierten Börsenereignisknotens - siehe unten auf der Grundlage des Handelssystems (Trading System).
- Slippage simulation when there are no definitions at the level of the trading system; session parameters are used instead (see Based On Session Parameters below).
- Моделирование проскальзывания, когда нет определений на уровне торговой системы; вместо этого используются параметры сессии (см. раздел "На основе параметров сессии").
- Slippage -Simulation, wenn es keine Definitionen auf der Ebene des Handelssystems gibt; stattdessen werden Session-Parameter verwendet (siehe unten "Basierend auf Session-Parametern").
- The last case has to do with verifying if the simulated actual rate defined in either of the two earlier steps makes sense in the context of the market (see Consider Best Match With Order Book below).
- Последний случай связан с проверкой того, имеет ли смысл симулированный фактический курс, определенный на одном из двух предыдущих этапов, в контексте рынка (см. ниже раздел "На основе наилучшего соответствия с книгой заказов").
- Im letzten Fall geht es darum, zu überprüfen, ob der simulierte Ist-Kurs, der in einem der beiden vorangegangenen Schritte festgelegt wurde, im Kontext des Marktes sinnvoll ist (siehe unten Best Match mit Orderbuch berücksichtigen).
Based On Trading System
На основе торговой системы
Basierend auf dem Handelssystem
If an actual rate is properly defined under simulated exchange events for the order in question, the value resulting from the formula is used as the actual rate.
Если фактический курс правильно определен при симулированных биржевых событиях для данного ордера, то в качестве фактического курса используется значение, полученное по формуле.
Wenn ein tatsächlicher Kurs unter simulierten Wechselkursereignissen für den betreffenden Auftrag richtig definiert ist, wird der sich aus der Formel ergebende Wert als tatsächlicher Kurs verwendet.
tradingEngineOrder.orderStatistics.actualRate.value ===
tradingEngineOrder.orderStatistics.actualRate.config.initialValue Note: Although limit orders tend to have little or no slippage, notice that the above is valid both for market orders and limit orders.
Note: Хотя лимитные ордера имеют тенденцию к небольшому проскальзыванию или его отсутствию, обратите внимание, что вышесказанное справедливо как для рыночных, так и для лимитных ордеров.
Note: Obwohl Limit-Aufträge in der Regel wenig oder gar keine Slippage aufweisen, gilt das oben Gesagte sowohl für Marktaufträge als auch für Limit-Aufträge.
Based On Session Parameters
На основе параметров сессии
Basierend auf Sitzungsparametern
If a limit order does not have an actual rate defined under simulated exchange events, then the actual rate of a limit order is the defined initial rate, as the slippage session parameter does not apply to limit orders. That is, the value is left untouched.
Если у лимитного ордера нет фактического курса, определенного при симулированных биржевых событиях, то фактическим курсом лимитного ордера является определенный начальный курс, так как параметр сессии проскальзывания не применяется к лимитным ордерам. То есть значение остается нетронутым.
Wenn für einen Limitauftrag kein tatsächlicher Kurs unter simulierten Börsenereignissen definiert wurde, ist der tatsächliche Kurs eines Limitauftrags der definierte Anfangskurs, da der Parameter Slippage Session nicht für Limitaufträge gilt. Das heißt, der Wert bleibt unberührt.
However, if a market order does not have an actual rate defined under simulated exchange events, then the
marketOrderRate parameter within the slippage session parameter is used to apply a slippage factor. Однако, если рыночный ордер не имеет фактического курса, определенного при симуляции биржевых событий, то параметр
marketOrderRate в параметре проскальзывания сессии используется для применения коэффициента проскальзывания. Wenn jedoch für einen Marktauftrag kein tatsächlicher Kurs unter simulierten Börsenereignissen definiert wurde, wird der Parameter
marketOrderRate innerhalb des Slippage-Session-Parameters verwendet, um einen Slippage-Faktor anzuwenden. slippageAmount = tradingEngineOrder.rate.value *
sessionParameters.slippage.config.marketOrderRate / 100 Important: Slippage is applied so that it always goes against the interest of the trading system. For example, for a market sell order, the slippage amount is subtracted from the initial rate, therefore simulating that the rate is worse than ideal.
Important: Проскальзывание применяется таким образом, что оно всегда идет вразрез с интересами торговой системы. Например, для рыночного ордера на продажу сумма проскальзывания вычитается из начального курса, таким образом имитируя, что курс хуже идеального.
Important: Slippage wird so angewandt, dass es immer gegen die Interessen des Handelssystems geht. Zum Beispiel wird bei einem Marktverkaufsauftrag der Slippage-Betrag vom ursprünglichen Kurs abgezogen, wodurch simuliert wird, dass der Kurs schlechter als ideal ist.
tradingEngineOrder.orderStatistics.actualRate.value =
tradingEngineOrder.rate.value -
slippageAmount The opposite is
true for market buy orders: Иначе обстоит дело с рыночными ордерами на покупку:
Das Gegenteil ist der Fall bei Marktkaufaufträgen
true: tradingEngineOrder.orderStatistics.actualRate.value =
tradingEngineOrder.rate.value +
slippageAmount Consider Best Match With Order Book
На основе наилучшего соответствия с книгой заказов
Beste Übereinstimmung im Auftragsbuch berücksichtigen
Let’s set up the context for a little piece of analysis required to understand this simulation criterion.
Давайте создадим условия для небольшого анализа, необходимого для понимания этого критерия симулирования.
Schaffen wir den Rahmen für eine kleine Analyse, die zum Verständnis dieses Simulationskriteriums erforderlich ist.
The exchange’s order book is populated with bids (buy orders) and asks (sell orders). In terms of rates, we could argue that buy orders sit below sell orders. When the rate of buy and sell orders converge, orders get filled.
Книга заявок биржи заполняется бидами (заявки на покупку) и асками (заявки на продажу). С точки зрения ставок, можно утверждать, что ордера на покупку располагаются ниже ордеров на продажу. Когда ставки заявок на покупку и продажу сходятся, ордера заполняются.
Das Auftragsbuch der Börse wird mit Kauf- und Verkaufsaufträgen bestückt. In Bezug auf die Kurse könnte man sagen, dass die Kaufaufträge unter den Verkaufsaufträgen liegen. Wenn sich die Kurse von Kauf- und Verkaufsaufträgen annähern, werden die Aufträge ausgeführt.
Market buy orders are filled with the lowest rate possible sell orders in the book. Market sell orders are filled with the highest rate possible buy orders in the book.
Рыночные ордера на покупку заполняются ордерами на продажу с наименьшей возможной ставкой в книге. Рыночные ордера на продажу заполняются ордерами на покупку по самому высокой ставке из всех возможных в книге.
Limit buy and sell orders have a defined rate. However, by definition, a limit order is an instruction to the exchange to fill the order at the specified price or better. The “or better” part of the instruction is the key to this analysis.
Лимитные ордера на покупку и продажу имеют определенную ставку. Однако, по определению, лимитный ордер - это указание бирже исполнить ордер по указанной цене или лучше. Часть инструкции "или лучше" является ключевой для данного анализа.
Limitierte Kauf- und Verkaufsaufträge haben einen bestimmten Kurs. Definitionsgemäß ist ein Limitauftrag jedoch eine Anweisung an die Börse, den Auftrag zu dem angegebenen Kurs oder besser auszuführen. Der Teil "oder besser" der Anweisung ist der Schlüssel zu dieser Analyse.
During the period of time represented in a candle, the range of rates between the maximum and minimum rates in the candle tells us that virtually all orders within those rates that were open upon the begin datetime of the candle must have been filled.
В течение периода времени, представленного в свече, диапазон ставок между максимальной и минимальной ставками в свече говорит нам о том, что практически все ордера в рамках этих ставок, которые были открыты на момент начала свечи, должны были быть исполнены.
Während des in einer Kerze dargestellten Zeitraums sagt uns die Spanne der Kurse zwischen dem Höchst- und dem Tiefstkurs in der Kerze, dass praktisch alle Aufträge innerhalb dieser Kurse, die zum Zeitpunkt des Beginns der Kerze offen waren, ausgeführt worden sein müssen.
Now, what happens if a buy order is placed at a rate higher than the maximum rate of the candle?
Теперь, что произойдет, если ордер на покупку будет размещен по курсу выше, чем максимальный курс свечи?
Was passiert nun, wenn ein Kaufauftrag zu einem höheren Kurs als dem Höchstkurs der Kerze erteilt wird?
In such a scenario, it is safe to make the following assumptions:
При таком раскладе можно сделать следующие предположения:
In einem solchen Szenario können die folgenden Annahmen getroffen werden:
- The order is filled, because there are plenty of sell orders at a cheaper rate.
- Ордер исполняется, потому что есть много ордеров на продажу по более дешевому курсу.
- Der Auftrag wird ausgeführt, weil es viele Verkaufsaufträge zu einem günstigeren Kurs gibt.
- The order is filled at a lower rate than the one defined, for the same reasons (there are cheaper asks in the order book).
- Ордер исполняется по более низкой ставке, чем определенный, по тем же причинам (в книге заявок есть более дешевые заявки).
- Der Auftrag wird zu einem niedrigeren Kurs als dem festgelegten ausgeführt, und zwar aus denselben Gründen (es gibt billigere Angebote im Auftragsbuch).
The above is the consideration that drives this simulation criterion to estimate the actual rate of an order. However, what is not possible to pinpoint is the exact rate at which the order would be filled.
Вышеуказанное соображение является тем критерием симуляции, который позволяет оценить фактическую ставку выполнения ордера. Однако, что невозможно точно определить, так это точную ставку, с которой ордер будет выполнен.
With all this in mind, when a buy order’s actual rate—as calculated by the Based On Trading System or the Based On Session Parameters approaches—is higher than the maximum rate of the candle, the Consider Best Match With Order Book simulation corrects the actual rate and assigns it the maximum value of the candle.
Учитывая все это, когда фактический курс ордера на покупку, рассчитанный подходами "Основанный на торговой системе" или "Основанный на параметрах сессии", превышает максимальный курс свечи, симуляция "На основе наилучшего соответствия с книгой заказов" фактический курс и присваивает ему максимальное значение свечи.
Wenn also der tatsächliche Kurs eines Kaufauftrags - wie vom Basierenden Handelssystem (Trading System) oder den Basierenden Sitzungsparametern berechnet - höher ist als der maximale Kurs der Kerze, korrigiert die Simulation Best Match mit Orderbuch berücksichtigen den tatsächlichen Kurs und weist ihm den maximalen Wert der Kerze zu.
tradingEngineOrder.orderStatistics.actualRate.value =
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value As a corollary, the following criteria govern this particular simulation:
Как следствие, следующие критерии определяют эту конкретную симуляцию:
Daraus ergeben sich die folgenden Kriterien für diese spezielle Simulation:
- On one hand, the simulation must mirror live trading as closely as possible. This is the reason for factoring in this analysis.
- С одной стороны, симуляция должна как можно точнее отражать реальную торговлю. Это является причиной для учета данного анализа.
- Einerseits muss die Simulation den realen Handel so genau wie möglich widerspiegeln. Das ist der Grund für die Berücksichtigung dieser Analyse.
- On the other hand, when something is uncertain, the simulation must assume the worst possible scenario, so that simulations remain on the “realistic-pessimistic” type of performance outcome, as opposed to “wishful-thinking” scenarios that may be dangerous. This is the reason for using
candle.maxinstead of any other more optimistic assumptions that—while feasible—are not necessarily more likely to happen.
- С другой стороны, когда что-то неопределенно, симуляция должна предполагать наихудший возможный сценарий, так что симуляция остается на "реалистично-пессимистичном" типе результатов работы, в отличие от "желаемых" сценариев, которые могут быть опасными. Это причина для использования
candle.maxвместо любых других более оптимистичных предположений, которые, хотя и выполнимы, не обязательно имеют большую вероятность осуществиться.
- Andererseits muss die Simulation, wenn etwas ungewiss ist, das schlimmstmögliche Szenario annehmen, damit die Simulationen auf dem "realistisch-pessimistischen" Typ des Leistungsergebnisses bleiben, im Gegensatz zu "Wunschszenarien", die gefährlich sein können. Dies ist der Grund für die Verwendung von
candle.maxanstelle anderer optimistischerer Annahmen, die zwar machbar sind, aber nicht unbedingt wahrscheinlicher sind.
The reversed scenario is considered as well: when a sell order is placed at a lower rate than the minimum rate of the candle against which the order is being simulated, the actual rate is corrected with the
candle.min value. Рассматривается и обратный сценарий: когда ордер на продажу размещается по курсу ниже минимального курса свечи, против которой симулируется ордер, фактический курс корректируется значением
candle.min. Auch der umgekehrte Fall wird berücksichtigt: Wenn ein Verkaufsauftrag zu einem niedrigeren Kurs als dem Mindestkurs der Kerze, gegen die der Auftrag simuliert wird, erteilt wird, wird der tatsächliche Kurs mit dem Wert
candle.min korrigiert. tradingEngineOrder.orderStatistics.actualRate.value =
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value Recalculate Actual Size
Recalculate Actual Size
Пересчет фактического размера
Tatsächliche Größe neu berechnen
Since the actual rate may have been modified by the Actual Rate Simulation, it is necessary to recalculate the actual size in the quoted asset. The actual size in base asset remains the same, as it is not affected by the change in rate. Remember that the properties of the quoted asset always derive from the properties of the base asset.
Поскольку фактическая ставка могла быть изменена в результате симуляции фактической ставки, необходимо пересчитать фактический размер в котируемом активе. Фактический размер в базовом активе остается неизменным, так как на него не влияет изменение ставки. Помните, что свойства котируемого актива всегда вытекают из свойств базового актива.
Da sich der tatsächliche Kurs durch die Simulation des tatsächlichen Kurses geändert haben kann, muss die tatsächliche Größe im notierten Vermögen neu berechnet werden. Die tatsächliche Größe im Basisvermögen bleibt gleich, da sie von der Kursänderung nicht betroffen ist. Denken Sie daran, dass sich die Eigenschaften der notierten Anlage immer von den Eigenschaften der Basisanlage ableiten.
tradingEngineOrder.orderQuotedAsset.actualSize.value =
tradingEngineOrder.orderBaseAsset.actualSize.value *
tradingEngineOrder.orderStatistics.actualRate.value Recalculate Size Placed
Recalculate Size Placed
Пересчет размещенного размера
Neuberechnung der platzierten Größe
Since the actual rate may have changed, it is also necessary to calculate the stage’s size placed. Remember that the size placed node at the level of the stage keeps track of the total size of orders that have been placed so that the target size defined for the stage may be enforced as a cap.
Поскольку фактическая ставка могла измениться, необходимо также рассчитать размер размещенных заявок этапа. Помните, что узел размещенного размера на уровне этапа отслеживает общий размер заявок, которые были размещены, так что целевой размер, определенный для этапа, может быть применен в качестве ограничения.
Da sich der tatsächliche Satz geändert haben kann, muss auch die platzierte Größe der Stufe berechnet werden. Denken Sie daran, dass der Knoten "Platzierte Größe" auf Stufenebene die Gesamtgröße der erteilten Aufträge verfolgt, so dass die für die Stufe definierte Zielgröße als Obergrenze durchgesetzt werden kann.
As done during a typical exchange synchronization, the initial size of the order is subtracted from the size placed, and then the actual size is added. This is done in two steps, for clarity:
Как это делается во время типичной биржевой синхронизации, начальный размер ордера вычитается из размещенного размера, а затем добавляется фактический размер. Для наглядности это делается в два приёма:
Wie bei einer typischen Börsensynchronisierung wird die ursprüngliche Größe des Auftrags von der platzierten Größe abgezogen und dann die tatsächliche Größe hinzugefügt. Der Übersichtlichkeit halber wird dies in zwei Schritten durchgeführt:
tradingEngineStage.stageQuotedAsset.sizePlaced.value =
tradingEngineStage.stageQuotedAsset.sizePlaced.value -
previousQuotedAssetActualSize
tradingEngineStage.stageQuotedAsset.sizePlaced.value =
tradingEngineStage.stageQuotedAsset.sizePlaced.value +
tradingEngineOrder.orderQuotedAsset.actualSize.value Percentage Filled Simulation
Percentage Filled Simulation
Симуляция процента заполнения
Prozentsatz der gefüllten Simulation
The simulation of the filling of market orders is straightforward: they always fill. For limit orders, the trading bot runs a basic check:
Имитация заполнения рыночных ордеров проста: они всегда заполняются. Для лимитных ордеров торговый бот выполняет базовую проверку:
Die Simulation der Ausführung von Marktaufträgen ist einfach: Sie werden immer ausgeführt. Bei Limit-Aufträgen führt der Trading-Bot eine grundlegende Prüfung durch:
- For limit buy orders to fill, the minimum rate of the candle must be equal or lower than the actual rate of the order. This means that the rate of the order falls within the range of rates filled during the duration of the candle.
- Чтобы лимитные ордера на покупку исполнились, минимальный курс свечи должен быть равен или ниже фактического курса ордера. Это означает, что ставка ордера попадает в диапазон ставок, заполненных в течение времени действия свечи.
- Damit Limit-Kaufaufträge ausgeführt werden können, muss der Mindestkurs der Kerze gleich oder niedriger als der tatsächliche Kurs des Auftrags sein. Das bedeutet, dass der Kurs des Auftrags in den Bereich der Kurse fällt, die während der Dauer der Kerze ausgeführt werden.
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <=
tradingEngineOrder.actualRate.value- For limit sell orders to fill, the reverse logic applies: the maximum rate of the candle must be equal or greater than the actual rate of the order.
- Для того чтобы лимитные ордера на продажу заполнялись, действует обратная логика: максимальный курс свечи должен быть равен или больше фактического курса ордера.
- Für die Ausführung von Limit-Verkaufsaufträgen gilt die umgekehrte Logik: Der maximale Kurs der Kerze muss gleich oder größer sein als der tatsächliche Kurs des Auftrags.
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >=
tradingEngineOrder.actualRate.value Note: If limit orders do not pass the above check, they remain unfilled.
Note: Если лимитные ордера не проходят вышеуказанную проверку, они остаются не исполненными.
Note: Wenn Limit-Aufträge die obige Prüfung nicht bestehen, bleiben sie unerledigt.
When an order is filled, by default it is filled fully, that is, the percentage filled is 100%:
Когда ордер заполняется, по умолчанию он заполняется полностью, то есть процент заполнения составляет 100%:
Wenn ein Auftrag ausgeführt wird, wird er standardmäßig vollständig ausgeführt, d. h. der Prozentsatz der Ausführung beträgt 100 %:
tradingEngineOrder.orderStatistics.percentageFilled.value = 100 However, the above may change if you have defined a specific fill probability for the specific order on the simulated partial fill node. If there is a valid definition to simulate the probability of the order to be filled on each execution, then this is what the trading bot does with it:
Однако все вышесказанное может измениться, если вы определили конкретную вероятность заполнения для конкретного ордера на узле симуляции частичного заполнения. Если существует действительное определение для симуляции вероятности заполнения ордера при каждом исполнении, то торговый бот поступает именно так:
Dies kann sich jedoch ändern, wenn Sie eine bestimmte Ausführungswahrscheinlichkeit für einen bestimmten Auftrag auf dem simulierten Teilausführungs-Knoten definiert haben. Wenn es eine gültige Definition gibt, um die Wahrscheinlichkeit zu simulieren, dass der Auftrag bei jeder Ausführung ausgeführt wird, dann ist es das, was der Trading Bot damit macht:
percentageFilled =
tradingSystemOrder.simulatedExchangeEvents.simulatedPartialFill.config.fillProbability * 100 That is, the
fillProbability parameter is multiplied by 100, and the result is the percentage filled. If the percentage filled is lower than 100, then the order may continue filling in subsequent executions, provided it passes the above checks. То есть, параметр
fillProbability умножается на 100, и результатом является процент заполнения. Если процент заполнения меньше 100, то ордер может продолжать заполняться при последующих исполнениях, если он прошел вышеуказанные проверки. Das heißt, der Parameter [
fillProbability] wird mit 100 multipliziert, und das Ergebnis ist der Prozentsatz der Ausführung. Liegt der Prozentsatz unter 100, kann der Auftrag in den folgenden Ausführungen weiter ausgeführt werden, sofern er die oben genannten Prüfungen besteht. Therefore, in every execution, the following update is done on the percentage filled node of the order statistics:
Поэтому при каждом исполнении происходит следующее обновление процента заполнения узла статистики ордеров:
Daher wird bei jeder Ausführung die folgende Aktualisierung des Knotens für den prozentualen Füllungsgrad der Auftragsstatistik vorgenommen:
tradingEngineOrder.orderStatistics.percentageFilled.value =
tradingEngineOrder.orderStatistics.percentageFilled.value +
percentageFilled Note: Of course, there is also a check to make sure that the percentage filled is never greater than 100.
Note: Конечно, существует также проверка, чтобы убедиться, что процент заполнения, никогда не превышает 100.
Note: Natürlich gibt es auch eine Kontrolle, die sicherstellt, dass der ausgefüllte Prozentsatz nie größer als 100 ist.
Fees Paid Simulation
Fees Paid Simulation
Симуляция комиссий
Gezahlte Gebühren Simulation
Like with the definitions regarding the actual rate of the order, the definition of the simulated fees paid node under simulated exchange events takes precedence in regards to the definitions in the fee structure parameter of the trading session.
Как и в случае с определениями, касающимися фактической ставки ордера, определение имитированных комиссий, уплачиваемых узлом при имитированных биржевых событиях, имеет приоритет по отношению к определениям в параметре структуры комиссий торговой сессии.
Wie bei den Definitionen bezüglich des tatsächlichen Kurses des Auftrags hat die Definition der simulierten Gebühren, die unter simulierten Börsenereignissen gezahlt werden, Vorrang gegenüber den Definitionen in den Gebührenstrukturparametern der Handelssitzung.
In general terms, fees paid are calculated as follows:
В общем случае уплаченные комиссии рассчитываются следующим образом:
Im Allgemeinen werden die gezahlten Gebühren wie folgt berechnet:
- The percentage of fees is applied to the actual size to obtain the total amount of fees to be paid when the order is 100% filled.
- Процент комиссии применяется к фактическому размеру для получения общей суммы комиссии, подлежащей оплате, когда ордер будет исполнен на 100%.
- Der Prozentsatz der Gebühren wird auf die tatsächliche Größe angewandt, um den Gesamtbetrag der zu zahlenden Gebühren zu erhalten, wenn der Auftrag zu 100 % erfüllt ist.
- Then, the percentage filled is applied to obtain the fees paid for the portion of the order that actually filled.
- Затем применяется процент заполнения, чтобы получить комиссионные, уплаченные за ту часть ордера, которая фактически была исполнена.
- Dann wird der Prozentsatz des ausgeführten Auftrags angewandt, um die Gebühren zu erhalten, die für den Teil des Auftrags gezahlt wurden, der tatsächlich ausgeführt wurde.
Trading system definitions
Определения торговых систем
Definitionen von Handelssystemen
For buy orders, fees are calculated in the base asset, as that is the asset being acquired:
Для ордеров на покупку комиссии рассчитываются в базовом активе, поскольку именно этот актив приобретается:
Bei Kaufaufträgen werden die Gebühren für den Basiswert berechnet, da dies der zu erwerbende Vermögenswert ist:
feesPaid =
tradingEngineOrder.orderBaseAsset.actualSize.value *
tradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 For sell orders, fees are calculated in the quoted asset:
Для ордеров на продажу комиссии рассчитываются в котируемом активе:
Bei Verkaufsaufträgen werden die Gebühren nach dem notierten Wert berechnet:
feesPaid =
tradingEngineOrder.orderQuotedAsset.actualSize.value *
tradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 Session parameters definitions
Определения параметров сессии
Definitionen der Sitzungsparameter
When producing the simulation based on the fees structure parameter of the trading session, the maker setting is applied to limit orders and the taker setting is applied to market orders.
При создании симуляции на основе параметра структуры комиссий торговой сессии, настройка maker применяется для лимитных ордеров, а настройка taker - для рыночных ордеров.
Bei der Erstellung der Simulation auf der Grundlage der Gebührenstrukturparameter der Handelssitzung wird die Maker-Einstellung auf Limit-Orders und die Taker-Einstellung auf Market-Orders angewandt.
For market buy orders:
Для рыночных ордеров на покупку:
Für Market-Kauf-Order:
feesPaid =
tradingEngineOrder.orderBaseAsset.actualSize.value *
sessionParameters.feeStructure.config.taker / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 For market sell orders:
Для рыночных ордеров на продажу:
Für Market-Verkauf-Order:
feesPaid =
tradingEngineOrder.orderQuotedAsset.actualSize.value *
sessionParameters.feeStructure.config.taker / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 For limit buy orders:
Для лимитных ордеров на покупку:
Für Limit-Kauf-Order:
feesPaid =
tradingEngineOrder.orderBaseAsset.actualSize.value *
sessionParameters.feeStructure.config.maker / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 For limit sell orders:
Для лимитных ордеров на продажу:
Für Limit-Verkauf-Order:
feesPaid =
tradingEngineOrder.orderQuotedAsset.actualSize.value *
sessionParameters.feeStructure.config.maker / 100 *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 Size Filled Simulation
Size Filled Simulation
Симуляция заполнения размера
Simulation der Gefüllten Größe
Calculating the size filled is straightforward considering we have already established the percentage of the size that has been filled. Bear in mind the property needs to be calculated for both assets.
Вычисление заполненного размера является простым, учитывая, что мы уже определили процент заполненного размера. Имейте в виду, что свойство должно быть рассчитано для обоих активов.
Die Berechnung der gefüllten Größe ist einfach, da wir bereits den Prozentsatz der gefüllten Größe ermittelt haben. Beachten Sie, dass die Eigenschaft für beide Vermögenswerte berechnet werden muss.
tradingEngineOrder.orderBaseAsset.sizeFilled.value =
tradingEngineOrder.orderBaseAsset.actualSize.value *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100
tradingEngineOrder.orderQuotedAsset.sizeFilled.value =
tradingEngineOrder.orderQuotedAsset.actualSize.value *
tradingEngineOrder.orderStatistics.percentageFilled.value / 100 Amount Received Simulation
Amount Received Simulation
Симуляция полученной суммы
Simulation des Erhaltenen Betrags
This is a simple calculation to explicitly determine how much of the asset was acquired in the transaction. It is calculated by subtracting the fees from the actual size.
Это простой расчет, позволяющий однозначно определить, какая часть актива была приобретена в ходе сделки. Он рассчитывается путем вычитания комиссионных из фактического размера.
Hierbei handelt es sich um eine einfache Berechnung, mit der explizit ermittelt wird, wie viel des Vermögenswertes bei der Transaktion erworben wurde. Sie wird berechnet, indem die Gebühren von der tatsächlichen Größe abgezogen werden.
Buy orders acquire the base asset, thus, the amount is denominated in the base asset:
Ордера на покупку приобретают базовый актив, поэтому сумма выражается в базовом активе:
Kaufaufträge erwerben den Basiswert, d. h., der Betrag lautet auf den Basiswert:
tradingEngineOrder.orderBaseAsset.amountReceived.value =
tradingEngineOrder.orderBaseAsset.sizeFilled.value -
tradingEngineOrder.orderBaseAsset.feesPaid.value Sell orders acquire the quoted asset, thus, the amount is denominated in the quoted asset:
Ордера на продажу приобретают котируемый актив, поэтому сумма выражается в котируемом активе:
Bei Verkaufsaufträgen wird der notierte Vermögenswert erworben, so dass der Betrag auf den notierten Vermögenswert lautet:
tradingEngineOrder.orderQuotedAsset.amountReceived.value =
tradingEngineOrder.orderQuotedAsset.sizeFilled.value -
tradingEngineOrder.orderQuotedAsset.feesPaid.valueOrder Management — TOC
You just read page 10 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