Что-нибудь такое -
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 ордеров, а лот одного ордера?
зачем на баланс заморачиваться, если основа расчета - эквити??? баланс для расчета можно использовать только в случае, если нет открытых позиций, но и в ЭТОМ случае он равен эквити. а после открытия позиций про баланс вообще можно(нужно) забыть..
сомневаюсь, что эквити основа, при имеющемся отрицательном профите, эквити меньше, чем свободные средства,
отсюда свободные средства это основа, от этой основы еще неплохо (имхо) бы отнять процент стопаута,
т.к. технически эти средства не должны участвовать в расчете максимально возможного размера лота..
также (имхо) для пущей надежности имеет смысл получать такое значение лота, при котором свободные средства,
которые останутся после открытия позиций были бы больше, чем залог по ордерам
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Запуталсо с залоговыми требованиями, срочно требуецца промывка моска, помогите плиз
---
Есть какой-то баланс Balance = AccountBalance()
Залоговые требования на 1 лот Margin = MarketInfo(NULL, MODE_MARGINREQUIRED)
Заданный уровень потерь на сделку (в пипсах) SLpips
Цена пипса в валюте депозита PipValue = MarketInfo(NULL, MODE_TICKVALUE)
И обязательное требование: при самом худшем сценарии должна быть возможность с этим депо открыть 4 сделки Orders = 4
---------
Вопрос: какой должна быть формула для вычисления размера лота (Lot) с учетом залога и возможных потерь чтобы таки открыть все 4 запланированных ордера?