Способы расчета средней цены
Last updated
Last updated
В разделе Настройки - Основные настройки - Торговля вы можете регулировать механику расчета средней цены входа при частичном закрытии позиции. Доступно 3 варианта:
IsolatedOpen
IsolatedFifo
IsolatedLifo
Расчет всех 3 вариантов выполняется по следующей формуле:
Σ(Price • Qty) / Σ(Qty), где:
Price - цена исполнения сделки; Qty - исполненный объем; Σ - знак суммирования.
Отличительные особенности:
IsolatedOpen является фиксированным расчетом. Разгрузки (частичные закрытия) позиции не влияют на отображение средней цены, поскольку данным алгоритмом они не учитываются. Во внимание берутся только точка входа и увеличение позиции.
IsolatedFifo / IsolatedLifo являются динамическими расчетами, поскольку учитывают также и разгрузки позиции.
Возьмем для примера инструмент SOL/USDT (Binance) со ставкой комиссии 0,1%:
BUY
100
130
129,87
12 987
0,13
Равна цене входа → 100
BUY
150
20
19,98
2 997
0,02
(12 987 + 2 997) / (129,87 + 19,98) = 106,6666667
SELL
200
-50
-50,00
-10 000
0,00
Средняя не меняется → 106,6666667
SELL
210
-95
-95,00
-19 950
0,00
Средняя не меняется → 106,6666667
BUY
200
30
29,97
5 994
0,03
(12 987 + 2 997 + 5 994) / (129,87 + 19,98 + 29,97) = 122,2222222
SELL
180
-20
-20,00
-3 600
0,00
Средняя не меняется → 122,2222222
SELL
160
-10
-10,00
-1 600
0,00
Средняя не меняется → 122,2222222
SELL
150
-4
-4,00
-600
0,00
Средняя не меняется → 122,2222222
SELL
130
-1
-1,00
-130
0,00
Актив продан
Side - операция (BUY / SELL) P - цена Q - количество контрактов Q - Fee - количество контрактов за вычетом комиссии P • Q - цена • количество контрактов Fee SOL - размер комиссии в базовой валюте Avg Price - средняя цена
Возьмем для примера инструмент SHIBUSDT (Binance). В данном случае ставка комиссии не важна, поскольку она списывается не с объема позиции, а отдельно с фьючерсного баланса.
BUY
0.023276
500
11.638
Равна цене входа → 0.023276
BUY
0.023289
500
11.6445
(11.638 + 11.6445) / (500 + 500) = 0.0232825 = 0.023283
BUY
0.023331
500
11.6655
(11.638 + 11.6445 + 11.6655) / (500 + 500 + 500) = 0.02329866667 = 0.023299
SELL
0.023258
500
11.629
Средняя не меняется → 0.023299
SELL
0.023241
500
11.6205
Средняя не меняется → 0.023299
Side - операция (BUY / SELL) P - цена Q - количество контрактов P • Q - цена • количество контрактов Avg Price - средняя цена
Аббревиатура FIFO расшифровывается как "first-in, first-out", или "первый пришел, первый ушел". Данный алгоритм учитывает разгрузки позиции в порядке от первой сделки в сторону последней. Например, был куплен 1 лот по 100, 1 лот по 98 и 1 лот по 90. При первой продаже 1-го лота уйдет первый лот по 100, и средняя цена будет рассчитана по 2-й и 3-й сделкам (цены 98 и 90).
Инструмент: SOL/USDT Ставка комиссии: 0.1%
BUY
100
130
129,87
12 987
0,13
Равна цене входа → 100
BUY
150
20
19,98
2 997
0,02
(12 987 + 2 997) / (129,87 + 19,98) = 106,6666667
SELL
200
-50
-50,00
-10 000
0,00
Сокращаем объем первой покупки на 50 и пересчитываем среднюю:
(7987 + 2 997) / (79,87 + 19,98) = 110,0050075
SELL
210
-95
-95,00
-19 950
0,00
Ушла первая покупка. Вторая сократилась на 15.13. Осталась только вторая покупка по цене 150:
Средняя = 150
BUY
200
30
29,97
5 994
0,03
(727.5 + 5 994) / (4.85 + 29,97) = 193,0356117
SELL
180
-20
-20,00
-3 600
0,00
Ушла вторая покупка. Третья сократилась на 20. Осталась только третья покупка по цене 200:
Средняя = 200
SELL
160
-10
-10,00
-1 600
0,00
Третья покупка сократилась на 10. Средняя не меняется → 200
SELL
150
-4
-4,00
-600
0,00
Третья покупка сократилась на 4. Средняя не меняется → 200
SELL
130
-1
-1,00
-130
0,00
Актив продан
Инструмент: SHIBUSDT
BUY
0.023276
500
11.638
Равна цене входа → 0.023276
BUY
0.023289
500
11.6445
(11.638 + 11.6445) / (500 + 500) = 0.0232825 = 0.023283
BUY
0.023331
500
11.6655
(11.638 + 11.6445 + 11.6655) / (500 + 500 + 500) = 0.02329866667 = 0.023299
SELL
0.023258
500
11.629
Убираем первую покупку по цене 0.023276 и рассчитываем среднюю только по покупкам 2 и 3:
(11.6445 + 11.6655) / (500 + 500) = 0.023310
SELL
0.023241
500
11.6205
Ушла вторая покупка и осталась только покупка №3 по цене 0.023331
Текущая средняя → 0.023331
Аббревиатура LIFO расшифровывается как "last-in, first-out", или "последний пришел, первый ушел". Данный алгоритм учитывает разгрузки позиции в порядке от последней сделки в сторону первой. Например, был куплен 1 лот по 100, 1 лот по 98 и 1 лот по 90. При первой продаже 1 лота уйдет последний лот по 90 и средняя перерасчитается по 1 и 2 сделке (цены 100 и 98)
Инструмент: SOL/USDT Ставка комиссии: 0.1%
BUY
100
130
129,87
12 987
0,13
Равна цене входа → 100
BUY
150
20
19,98
2 997
0,02
(12 987 + 2 997) / (129,87 + 19,98) = 106,6666667
SELL
200
-50
-50,00
-10 000
0,00
Ушла вторая покупка. Осталась первая объемом 99,85.
Средняя = 100
SELL
210
-95
-95,00
-19 950
0,00
Первая покупка сократилась на 95. Остаток - 4.85.
Средняя = 100
BUY
200
30
29,97
5 994
0,03
(485 + 5 994) / (4.85 + 29,97) = 186,0712234
SELL
180
-20
-20,00
-3 600
0,00
Ушла первая покупка. Третья сократилась на 20. Осталась только третья покупка по цене 200:
Средняя = 200
SELL
160
-10
-10,00
-1 600
0,00
Третья покупка сократилась на 10. Средняя не меняется → 200
SELL
150
-4
-4,00
-600
0,00
Третья покупка сократилась на 4. Средняя не меняется → 200
SELL
130
-1
-1,00
-130
0,00
Актив продан
Инструмент: SHIBUSDT
BUY
0.023971
500
11.9855
Равна цене входа → 0.023971
BUY
0.023966
1000
23.966
(11.9855 + 23.966) / (500 + 1000) = 0.02396766667 = 0.023968
BUY
0.023957
500
11.9785
(11.9855 + 23.966 + 11.9785) / (500 + 1000 + 500) = 0.023965
SELL
0.023991
800
19.1928
Убираем покупку #3 по цене 0.023957 и рассчитываем среднюю только по покупка 1 и 2. При этом, так как объем покупки #3 был 500, а мы продали 800, объем покупки #2 сокращаем с 1000 до 700:
(11.9855 + 16.7762) / (500 + 700) = 0.02396808333 = 0.023968
SELL
0.02398
300
7.194
Объем второй покупки сократился с 700 до 400:
(11.9855 + 9.5864) / (500 + 400) = 0.02396877778 = 0.023969
SELL
0.023967
800
19.1736
Убираем покупку #2. Средняя цена = цена первой покупки = 0.023971