Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не поставляешь сигналы и не продаешь приложения? Не проблема, заработать могут все!
Sergey Sartakov
1286
Sergey Sartakov 2011.02.06 13:48 

В 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.

hrenfx
3675
hrenfx 2011.02.06 13:52  

Реализовано

P.S. Уровень безубытка в идеале должен учитывать свопы и комиссии. Но на практике важны такие харктеристики: нетто-цена открытия, нетто-баланс, нетто-эквити. В вышеприведенно реализации учитываются комиссии, но не учитываются нетто-свопы.
igor
1144
igor 2011.02.06 13:57  
Всё оно вроде бы так. А где учёт накопленных свопов?
igor
1144
igor 2011.02.06 14:27  

Вот ситуация в терминале, наверху данные скрипта NettoTrading,внизу жёлтая линия правильно вычисленный уровень безубытка.

Принцип отличный от того который приведён выше. Мой метод подсчитывает и накопившиеся свопы.

Надо изменить формулу она не правильная.

Sergey Sartakov
1286
Sergey Sartakov 2011.02.06 14:45  
zhuki:

Вот ситуация в терминале, наверху данные скрипта NettoTrading,внизу жёлтая линия правильно вычисленный уровень безубытка.

Принцип отличный от того который приведён выше. Мой метод подсчитывает и накопившиеся свопы.

Надо изменить формулу она не правильная.


Копить не надо.
igor
1144
igor 2011.02.06 14:50  
more:

Копить не надо.

Ну тогда и локировать не стоит. Все твердят лок это плохо.

В жизни разные ситуации бывают и к ним надо быть готовым с правильными инструментами.

hrenfx
3675
hrenfx 2011.02.06 14:53  
zhuki:

Надо изменить формулу она не правильная.

Вы прочтите P.S., который много раньше вашего примера был написан.
igor
1144
igor 2011.02.06 15:16  
hrenfx:
Вы прочтите P.S., который много раньше вашего примера был написан.

Я конечно же всё читал и в курсе всех этих изысканий. Однако хочу заметить,что дискуссия началась о безубытке,а не о Netto позиции. И я считаю, что вычисление уровня безубытка ни как не может не учитывать свопы.

Одно не понятно в чём я не прав. Если считать уровень,то считать правильно. А не правильно вычисленный уровень (как в приведённом мною примере) никому не нужен. Он ведь ошибочный.

hrenfx
3675
hrenfx 2011.02.06 15:44  

На практике автоматических ТС не понимаю необходимость в логике нахождения уровня безубыка, с учетом накладных расходов (спреды, комиссии и свопы).

Для АТС скорее важна цена открытия текущей нетто-позиции. Для ручной торговли, конечно, полноценный уровень безубытка, т.к. завязана логика еще и на психологических моментах.

igor
1144
igor 2011.02.06 18:22  
hrenfx:

На практике автоматических ТС не понимаю необходимость в логике нахождения уровня безубыка, с учетом накладных расходов (спреды, комиссии и свопы).

Для АТС скорее важна цена открытия текущей нетто-позиции. Для ручной торговли, конечно, полноценный уровень безубытка, т.к. завязана логика еще и на психологических моментах.

Вам сложно,что либо объяснить,вы всё равно никого не хотите слышать. Завершим на этом.
Sergey Sartakov
1286
Sergey Sartakov 2011.03.15 15:58  

При сочинение очередного Мартина оказалось, что спрэд играет существенную роль.

При учете спрэда получим такую вот формулу:

Пусть в рынке имеем

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.

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий