- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- Ордер после ордера
- Напишу советник бесплатно
lot=lotstep*MathRound((MathAbs(loss)/(pips*tickvalue))/lotstep);
loss - убыток в валюте депозита
pips - пункты в минус
tickvalue - стоимость пункта
lotstep - шаг лота, допустимый в конкретном ДЦ
спасибо!
lot=lotstep*MathRound((MathAbs(loss)/(pips*tickvalue))/lotstep);
loss - убыток в валюте депозита
pips - пункты в минус
tickvalue - стоимость пункта
lotstep - шаг лота, допустимый в конкретном ДЦ
а разве в формуле не должно быть тейкпрофита?
ТП постоянный, сами говорили.
lot=lotstep*MathRound((MathAbs(loss)/(pips*tickvalue))/lotstep);
loss - убыток в валюте депозита
pips - пункты в минус
tickvalue - стоимость пункта
lotstep - шаг лота, допустимый в конкретном ДЦ
MathAbs(loss)/(pips*tickvalue) - это разве не единица? loss по идее ведь должен быть равен pips*tickvalue или я ошибаюсь?
Да, верно, извиняюсь перепутал. pips = ТП. Формула будет работать только при соотношении ТП/СЛ<1, иначе расчётный лот будет всегда равен начальному.
Пример: пара EURUSD начальный лот 0.01, СЛ=100п, ТП=15п, продали по 1.1234, закрыли по 1.1334, убыток -100п или -10$ (для упрощения комиссия, проскальзывание и свопы не учтены).
lot=lotstep*MathRound((MathAbs(loss)/(pips*tickvalue))/lotstep)=0,01*MathRound(10/(15*10)/0,01)=0,01*7=0,07 - что даст 10,5$ при ТП=15п, опять же не учитывая подводные камни.
Если же ТП/СЛ>=1, то lot=0,01*MathRound(10/(150*10)/0,01)=0,01*MathRound(0,666666)=0,01Это при условии, что на 1 убыточную сделку приходится 1 прибыльная. Но ведь так происходит вовсе не всегда.
Чаще всё хуже - 1 прибыль на несколько убытков. Тогда лот считать надо с учётом убытка всей серии, а не только от последней сделки. Вот тогда лот будет увеличен, чтобы компенсировать все потери.
Например, имеем 3 убытка по 50п (суммарно -15$), ТП=100.
lot=0,01*MathRound(15/(100*10)/0,01)=0,02 - что при срабатывании ТП даст 20$
Да, верно, извиняюсь перепутал. pips = ТП. Формула будет работать только при соотношении ТП/СЛ<1, иначе расчётный лот будет всегда равен начальному.
Пример: пара EURUSD начальный лот 0.01, СЛ=100п, ТП=15п, продали по 1.1234, закрыли по 1.1334, убыток -100п или -10$ (для упрощения комиссия, проскальзывание и свопы не учтены).
lot=lotstep*MathRound((MathAbs(loss)/(pips*tickvalue))/lotstep)=0,01*MathRound(10/(15*10)/0,01)=0,01*7=0,07 - что даст 10,5$ при ТП=15п, опять же не учитывая подводные камни.
Если же ТП/СЛ>=1, то lot=0,01*MathRound(10/(150*10)/0,01)=0,01*MathRound(0,666666)=0,01Это при условии, что на 1 убыточную сделку приходится 1 прибыльная. Новедь так происходит вовсе не всегда.
Чаще всё хуже - 1 прибыль нанесколько убытков. Тогда лот считать надо с учётом убытка всей серии, ане только от последней сделки. Вот тогда лот будет увеличен, чтобы компенсировать все потери.
Например, имеем 3 убытка по 50п (суммарно -15$), ТП=100.
lot=0,01*MathRound(15/(100*10)/0,01)=0,02 - что при срабатывании ТП даст 20$
СЛ вообще нет. Открывается ордер в BUY ТП 15п, цена идёт вниз, не закрывая первый ордер, открывается второй в BUY ТП 15п, и так далее, лот в первой сделке 0.01, а вот во всех последующих уже нужно рассчитать так чтобы при достижении ТП в 15п последним открытым ордером прибыль бы компенсировала убыток по всем открытым ордерам BUY и все ордера в BUY закрываются.
А, ну тогда вместо pips нужно подставлять среднее расстояние между усреднениями, также в пипсах. А текущий убыток считать со всей серии.
Хотя нет, всё равно лучше ТП подставлять, а убыток считать со всей серии.
А, ну тогда вместо pips нужно подставлять среднее расстояние между усреднениями, также в пипсах. А текущий убыток считать со всей серии.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования