Вот ситуация в терминале, наверху данные скрипта NettoTrading,внизу жёлтая линия правильно вычисленный уровень безубытка.
Принцип отличный от того который приведён выше. Мой метод подсчитывает и накопившиеся свопы.
Надо изменить формулу она не правильная.
Копить не надо.
Ну тогда и локировать не стоит. Все твердят лок это плохо.
В жизни разные ситуации бывают и к ним надо быть готовым с правильными инструментами.
Надо изменить формулу она не правильная.
Вы прочтите P.S., который много раньше вашего примера был написан.
Я конечно же всё читал и в курсе всех этих изысканий. Однако хочу заметить,что дискуссия началась о безубытке,а не о Netto позиции. И я считаю, что вычисление уровня безубытка ни как не может не учитывать свопы.
Одно не понятно в чём я не прав. Если считать уровень,то считать правильно. А не правильно вычисленный уровень (как в приведённом мною примере) никому не нужен. Он ведь ошибочный.
На практике автоматических ТС не понимаю необходимость в логике нахождения уровня безубыка, с учетом накладных расходов (спреды, комиссии и свопы).
Для АТС скорее важна цена открытия текущей нетто-позиции. Для ручной торговли, конечно, полноценный уровень безубытка, т.к. завязана логика еще и на психологических моментах.
На практике автоматических ТС не понимаю необходимость в логике нахождения уровня безубыка, с учетом накладных расходов (спреды, комиссии и свопы).
Для АТС скорее важна цена открытия текущей нетто-позиции. Для ручной торговли, конечно, полноценный уровень безубытка, т.к. завязана логика еще и на психологических моментах.
При сочинение очередного Мартина оказалось, что спрэд играет существенную роль.
При учете спрэда получим такую вот формулу:
Пусть в рынке имеем
b – количество открытых ордеров вверх
BuyPrice[i] - цена открытия i-ого ордера вверх, i=1,…buy
BuyLot[i] - Количество лотов i-ого ордера вверх, i=1,…buy
s – количество открытых ордеров вниз
SellPrice[i] - цена открытия i-ого ордера внизх, i=1,… Sell
SellLot[i] - Количество лотов i-ого ордера вниз, i=1,… Sell
Пусть далее
TicValue – значение одного пункта в валюте депозита,
Т.е., TicValue = MarketInfo(Symbol(),MODE_TICKVALUE)
Point – значение одного пункта в валюте котировки,
Т.е., Point = MarketInfo(Symbol(),MODE_POINT)
Spread – значение спрэда в пунктах,
Т.е., Spread = MarketInfo(Symbol(),MODE_SPREAD)
Пусть далее
TargetPrice – цена, при достижение которой суммарный профит всех открытых
Ордеров в валюте депозита будет равен
TargetProfit
Очевидно, что можно составить такое вот уравнение
С[i=1,…b]( TargetPrice- BuyPrice[i]- Spread*Point )* TicValue* BuyLot[i] / Point
+
С[i=1,… s]( SellPrice [i] - Spread*Point - TargetPrice)* TicValue* SellLot [i] / Point
= TargetProfit
С[i=1,…b]( TargetPrice- BuyPrice[i]- Spread*Point )* BuyLot[i]
+
С[i=1,… s]( SellPrice [i] - Spread*Point - TargetPrice)* SellLot [i]
= TargetProfit * Point/TicValue
С[i=1,…b]( TargetPrice* BuyLot[i] - BuyPrice[i] * BuyLot[i] - Spread*Point * BuyLot[i] )
+
С[i=1,… s]( SellPrice [i] * SellLot [i] - Spread*Point* SellLot [i] - TargetPrice* SellLot [i] )
= TargetProfit * Point/TicValue
TargetPrice*( С[i=1,…b] BuyLot[i] - С[i=1,…s] SellLot [i]) =
TargetProfit * Point/TicValue +
С[i=1,…b]( BuyPrice[i] * BuyLot[i] + Spread*Point * BuyLot[i] ) +
С[i=1,… s](- SellPrice [i] * SellLot [i] + Spread*Point* SellLot [i] )
TargetPrice =
{TargetProfit * Point/TicValue +
С[i=1,…b]( BuyPrice[i] * BuyLot[i] + Spread*Point * BuyLot[i] ) +
С[i=1,… s](- SellPrice [i] * SellLot [i] + Spread*Point* SellLot [i] )}/
( С[i=1,…b] BuyLot[i] - С[i=1,…s] SellLot [i])
В частном случае, для получения «безубытка» в данной формуле TargetProfit = 0.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В codebase имеются скрипты и индикаторы вычислений уровня "безубытка", но общей формулы нет,
поэтому для любознательных привожу эту формулу на всякий случай.
Пусть в рынке имеем
Buy – количество открытых ордеров вверх
BuyPrice[i] - цена открытия i-ого ордера вверх, i=1,…buy
BuyLot[i] - Количество лотов i-ого ордера вверх, i=1,…buy
Sell – количество открытых ордеров вниз
SellPrice[i] - цена открытия i-ого ордера внизх, i=1,… Sell
SellLot[i] - Количество лотов i-ого ордера вниз, i=1,… Sell
Пусть далее
TicValue – значение одного пункта в валюте депозита,
Т.е., TicValue = MarketInfo(Symbol(),MODE_TICKVALUE)
Point – значение одного пункта в валюте котировки,
Т.е., Point = MarketInfo(Symbol(),MODE_POINT)
Пусть далее
TargetPrice – цена, при достижение которой суммарный профит всех открытых
Ордеров в валюте депозита будет равен
TargetProfit
Очевидно, что можно составить такое вот уравнение
СУММА[i=1,…buy]( TargetPrice- BuyPrice[i] )* TicValue* BuyLot[i] / Point
+
СУММА[i=1,… Sell]( SellPrice [i] - TargetPrice)* TicValue* SellLot [i] / Point
= TargetProfit
Отсюда, после очевидных преобразований получим искомую формулу
Для вычислений TargetPrice
TargetPrice =(TargetProfit* Point + СУММА[i=1,…buy]( BuyPrice[i]* TicValue* BuyLot[i]) - СУММА[i=1,… Sell](SellPrice [i]*TicValue* SellLot [i] ) )/
(TicValue*( СУММА[i=1,…buy]( BuyLot[i]) - СУММА[i=1,… Sell]( SellLot [i]) )
В частном случае, для получения «безубытка» в данной формуле TargetProfit = 0.