Available translations
loading results
Formula
A formula is a mathematical expression intended to determine a numerical value to be applied dynamically to a certain property.
Una fórmula es una expresión matemática destinada a determinar un valor numérico que se aplicará dinámicamente a una determinada propiedad.
Formula - это математическое выражение, предназначенное для определения числового значения, которое будет динамически применяться к определенному свойству.
Formül, belirli bir özelliğe dinamik olarak uygulanacak sayısal bir değer belirlemeyi amaçlayan matematiksel bir ifadedir.
Eine Formel ist ein mathematischer Ausdruck zur Bestimmung eines numerischen Wertes, der dynamisch auf eine bestimmte Eigenschaft angewendet werden soll.
Content
In the context of a Trading System, formulas are used to determine the values for several properties, such as the Target Rate, Target Size, Managed Stop Loss, Managed Take Profit, and so on.
В контексте торговой системы Trading System, формулы используются для определения значений нескольких свойств, таких как Target Rate, Target Size, Managed Stop Loss, Managed Take Profit и т.д.
Bir Ticaret Sistemi bağlamında, Hedef Oran (Target Rate), Hedef Boyut (Target Size), Yönetilen Zarar Durdur (Managed Stop Loss), Yönetilen Kâr Al (Managed Take Profit) vb. gibi çeşitli özelliklerin değerlerini belirlemek için formüller kullanılır.
Im Zusammenhang mit einem Handelssystem werden Formeln verwendet, um die Werte für verschiedene Eigenschaften zu bestimmen, wie z. B. Zielkurs (Target Rate), Zielgröße (Target Size), Managed Stop Loss, Managed Take Profit, usw.
Formulas may use indicators and Trading Engine properties. The main difference between writing a Formula and writing a Condition is that while conditions must evaluate to
true
or false
, formulas must evaluate to a number. Формулы могут использовать индикаторы и свойства торгового механизма. Основное различие между написанием формулы Formula и написанием условия Condition заключается в том, что, хотя условия должны оцениваться как истинные (
true
) или ложные (false
), результатом вычисления формулы должно быть числом. Formüller, göstergeleri ve Trading Engine özelliklerini kullanabilir. Formül yazma ile Koşul yazma arasındaki temel fark, koşulların doğru (
true
) veya yanlış (false
) olarak değerlendirilmesi gerekirken, formüllerin bir sayı olarak değerlendirilmesi gerektiğidir. Formeln können Indikatoren und Trading-Engine-Eigenschaften verwenden. Der Hauptunterschied zwischen dem Schreiben einer Formel und dem Schreiben einer Bedingung besteht darin, dass Bedingungen als wahr oder falsch ausgewertet werden müssen, während Formeln eine Zahl auswerten müssen.
Examples
A simple math example
Простой математический пример
Basit bir matematik örneği
Ein einfaches mathematisches Beispiel
This simple formula may be used to define an initial take profit target 3% above the rate at which the position was taken.
Эта простая формула может использоваться для определения первоначальной цели тейк-профита на 3% выше ставки, по которой была открыта позиция.
Bu basit formül, pozisyonun alındığı fiyatın %3 üzerinde bir ilk kâr alma hedefi tanımlamak için kullanılabilir.
Diese einfache Formel kann verwendet werden, um ein anfängliches Gewinnmitnahmeziel zu definieren, das 3 % über dem Kurs liegt, zu dem die Position eingegangen wurde.
tradingEngine.tradingCurrent.position.entryTargetRate.value * 1.03
Note: You may use any variable made available by the trading engine, as explained on the accessing runtime data page.
Note: Вы можете использовать любую переменную, доступную в торговой системе, как описано на странице с данными времени выполнения Accessing Runtime Data.
Note: İşlem zamanı verileri sayfasında açıklandığı gibi, işlem motoru tarafından sağlanan herhangi bir değişkeni kullanabilirsiniz.
Note: Sie können jede Variable verwenden, die von der Trading Engine zur Verfügung gestellt wird, wie auf der Seite "accessing runtime data" erläutert.
A simple JavaScript example
Простой пример JavaScript
Basit bir JavaScript örneği
Ein einfaches JavaScript-Beispiel
A bit of very basic JavaScript, introducing conditional statements, allows more intelligence. For example, in this case, we ask if the proposed formula results in a number greater than the current stop loss value; if it does, then the proposed formula is used; if not, then the current stop loss value is left as is.
Например, в этом случае мы спрашиваем, дает ли предложенная формула число больше, чем текущее значение стоп-лосса; если да, то используется предложенная формула; если нет, то текущее значение стоп-лосса остается как есть.
Koşullu ifadeleri tanıtan çok basit bir JavaScript, daha fazla zekaya izin verir.Örneğin, bu durumda, önerilen formülün mevcut stop loss değerinden daha büyük bir sayı ile sonuçlanıp sonuçlanmadığını sorarız; eğer öyleyse, önerilen formül kullanılır; değilse, mevcut stop loss değeri olduğu gibi bırakılır.
Ein wenig grundlegendes JavaScript, das bedingte Anweisungen einführt, ermöglicht mehr Intelligenz. In diesem Fall fragen wir zum Beispiel, ob die vorgeschlagene Formel eine Zahl ergibt, die größer ist als der aktuelle Stop-Loss-Wert; wenn ja, wird die vorgeschlagene Formel verwendet; wenn nicht, wird der aktuelle Stop-Loss-Wert beibehalten.
This is—basically—a trailing stop loss 2% below the Bollinger Bands moving average that may go higher if the moving average goes up, but it may never come down—thanks to the use of the IF / ELSE clause.
Это - в основном - скользящий стоп-лосс на 2% ниже скользящей средней полосы Боллинджера, который может увеличиваться, если скользящая средняя растет, но может никогда не снизиться - благодаря использованию конструкции IF / ELSE.
Bu, temel olarak, Bollinger Bantları hareketli ortalamasının %2 altında bir ttrailing stop loss'tur ve hareketli ortalama yükselirse daha yükseğe çıkabilir, ancak IF / ELSE yan tümcesinin kullanımı sayesinde asla düşmeyebilir.
Im Grunde handelt es sich hierbei um einen nachlaufenden Stop-Loss-Wert, der 2 % unter dem gleitenden Durchschnitt der Bollinger-Bänder liegt und der höher ausfallen kann, wenn der gleitende Durchschnitt steigt, aber er darf niemals fallen - dank der Verwendung der IF/ELSE-Klausel.
if (chart.at01hs.bollingerBand.movingAverage * 0.98 >
tradingEngine.tradingCurrent.position.stopLoss.value)
{chart.at01hs.bollingerBand.movingAverage * 0.98}
else
{tradingEngine.tradingCurrent.position.stopLoss.value}
For developers
Для разработчиков
Geliştiriciler için
Für Entwickler
To build more complex logic within a formula, create a function that implements the logic and returns a numerical value—and then call the function:
Чтобы построить более сложную логику в формуле, создайте функцию, которая реализует логику и возвращает числовое значение, а затем вызовите функцию:
Bir formül içinde daha karmaşık mantık oluşturmak için, mantığı uygulayan ve sayısal bir değer döndüren bir işlev oluşturun ve ardından işlevi çağırın:
Um eine komplexere Logik in eine Formel einzubauen, erstellen Sie eine Funktion, die die Logik implementiert und einen numerischen Wert zurückgibt - und rufen dann die Funktion auf:
function orderRate() {
const ORDER_STEP_NUMBER = 1 // Secuential step number, starting with 1 from the closest to the price.
const BUY_SELL_SIGN = -1 // 1 for buy orders, -1 for sell orders.
const STEP_SEPARATION = 0.15 // % of separation of stair steps between them.
const BASE_FACTOR = 0.2 // % above or below bollinger band without bias.
const BIAS_FACTOR = 0.3 // % to move the whole stair of orders up or down depending on the bias.
const BAND_RATE = chart.at01min.bollingerBand.lowerBand // Upper Bollinger Band for sell orders, and Lower for buy orders.
let inbalance = tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.beginBalance.value - tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.balance.value
let BIAS_SIGN
if (inbalance === 0) {
BIAS_SIGN = 0
}
if (inbalance < 0) {
BIAS_SIGN = + 1
}
if (inbalance > 0) {
BIAS_SIGN = - 1
}
let rate = BAND_RATE + BUY_SELL_SIGN BAND_RATE (BASE_FACTOR + ORDER_STEP_NUMBER STEP_SEPARATION + BIAS_SIGN BIAS_FACTOR) / 100
return rate
}
orderRate()
Formula Menu
The Formula node has the following Node Menu items:
The Edit menu item has the following properties:
- action: Edit
- label: Edit
- iconPathOn: javascript-code
- iconPathOff: javascript-code
- dontShowAtFullscreen: true
- actionFunction:
uiObject.formulaEditor.activate
The Delete menu item has the following properties:
- action: Delete UI Object
- actionProject: Visual-Scripting
- askConfirmation: true
- confirmationLabel: Confirm to Delete
- label: Delete
- iconPathOn: delete-entity
- iconPathOff: delete-entity
- actionFunction:
payload.executeAction
Tip: When a menu item is grayed out, it means that Formula already has the required child type that the menu item may add, and only that child is allowed for that case.
Formula Attaching Rules
The following are the Node Attaching Rules that govern the attachment of Formula with other nodes:
Compatible Types:
Formula Formula
This section explores Formula Node Code.
Initial Value
The initial value for Formula is:
"// Type your formula"
Examples
This is a list of examples used on the Formula code, collected from this workspace.