Как учесть размер залога при расчете лота?

 

Запуталсо с залоговыми требованиями, срочно требуецца промывка моска, помогите плиз

---

Есть какой-то баланс Balance = AccountBalance()

Залоговые требования на 1 лот Margin = MarketInfo(NULL, MODE_MARGINREQUIRED)

Заданный уровень потерь на сделку (в пипсах) SLpips

Цена пипса в валюте депозита PipValue = MarketInfo(NULL, MODE_TICKVALUE)

И обязательное требование: при самом худшем сценарии должна быть возможность с этим депо открыть 4 сделки Orders = 4

---------

Вопрос: какой должна быть формула для вычисления размера лота (Lot) с учетом залога и возможных потерь чтобы таки открыть все 4 запланированных ордера?

 

Что-нибудь такое -

   double Максимальный_убыток=N*SLpips*PipValue*Lots;

   if(AccountBalance()-Максимальный_убыток>MarketInfo(Symbol(), MODE_MARGINREQUIRED)*Lots){
      // можем открыться на Lots после N убыточных ордеров
   }

PipValue не у всех символов равно MarketInfo(NULL, MODE_TICKVALUE), у некоторых символов один тик равен нескольким пунктам.

 

При худшем сценарии будет висеть Orders ордеров в одном направлении, т.е. будет висеть и залог на суммарный лот? Получается что в баланс должно вмещаться всё это:


Balance = Orders*SLpips*PipValue*Lot*Margin
т.е.
Lot
= Balance/Orders/SLpips/PipValue/Margin


Я не напутал?

 

double Максимальный_убыток=N*SLpips*PipValue*Lots;

if(AccountBalance()-Максимальный_убыток>MarketInfo(Symbol(), MODE_MARGINREQUIRED)*Lots){
// можем открыться на Lots после N убыточных ордеров
}

Все что осталось - подставить Максимальный_убыток из первой стороки во следующее за ней выражение и решить его - выразить Lot.

 

Я привел ваши строки к именам переменных мной указанным, чтобы не путать:

Максимальный_убыток = Orders*SLpips*PipValue*Lot

И выражение соотв:

Balance-Максимальный_убыток > Margin*Lot

Мне не нужно вычислять лот перед открытием каждой сделки, он должен быть расчитан до открытия первой, поэтому выражение

Balance-Максимальный_убыток > Margin*Lot

привел к

Balance-Максимальный_убыток-Margin*Lot = 0

т.е.
Balance - Orders*SLpips*PipValue*Lot - Margin*Lot = 0
т.е.
Balance = Lot(Orders*SLpips*PipValue + Margin)
т.е.
Lot = Balance / (Orders*SLpips*PipValue + Margin)

Т.е. залог (Margin) в вашем выражении не привязан к кол-ву открытх ордеров. Это правильно? Или таки залог надо умножить на кол-во открытых ордеров, т.к. мне нужен не суммарный лот Orders ордеров, а лот одного ордера?

 
Напрмер, надо иметь возможность открыть 4-ре ордера, ставим N=3 и узнаем - будет ли достаточно средств для открытия ордера с лотом Lot.
 

зачем на баланс заморачиваться, если основа расчета - эквити??? баланс для расчета можно использовать только в случае, если нет открытых позиций, но и в ЭТОМ случае он равен эквити. а после открытия позиций про баланс вообще можно(нужно) забыть..

 
Именно баланс и именно при отсутствии позиций, бо суть задачи расчитать лот для 4х выстрелов исходным депозитом до начала пальбы
 
ale002 писал(а) >>
Именно баланс и именно при отсутствии позиций, бо суть задачи расчитать лот для 4х выстрелов исходным депозитом до начала пальбы

пара-тройка задержек между "выстрелами", сопровождающиеся движением цены, и весь ваш расчет - коту под хвост... - в игрушки играете...

 
Поясните плз
 
DDFedor >>:

зачем на баланс заморачиваться, если основа расчета - эквити???

сомневаюсь, что эквити основа, при имеющемся отрицательном профите, эквити меньше, чем свободные средства,

отсюда свободные средства это основа, от этой основы еще неплохо (имхо) бы отнять процент стопаута,

т.к. технически эти средства не должны участвовать в расчете максимально возможного размера лота..

также (имхо) для пущей надежности имеет смысл получать такое значение лота, при котором свободные средства,

которые останутся после открытия позиций были бы больше, чем залог по ордерам

Причина обращения: