Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2111

 
Volodymyr Zubov #:

Скажите пожалуйста, мне нужно знать текущую просадку или прибыль в процентах при открытых позициях.

Правильно я делаю ? что то подсказывает что не совсем корректно. MQL4

(300-150)/300*100 = 50% от 300

еквити 300

баланс 150

 
Спасибо, формулы и коды были у меня, но потом потерял. Попробую ваш вариант.
 
Volodymyr Zubov #:

Скажите пожалуйста, мне нужно знать текущую просадку или прибыль в процентах при открытых позициях.

Правильно я делаю ? что то подсказывает что не совсем корректно. MQL4

Нет. Совсем неправильно.
 
string Profit=DoubleToString(Equity-Balance,2)+""+" ("+DoubleToString(AccProfit*100/Balance,1)+"%)";
у меня так, вроде работает
 
Volodymyr Zubov #:
Спасибо, формулы и коды были у меня, но потом потерял. Попробую ваш вариант.
Он тоже неправильный.
Вот смотрите: открыли Вы позицию и она идёт в прибыль, т.е эквити растёт, а баланс на уровне открытия. Та формула будет показывать просадку, хотя очевидно, что просадки нет.
 
Volodymyr Zubov #:

Скажите пожалуйста, мне нужно знать текущую просадку или прибыль в процентах при открытых позициях.

Правильно я делаю ? что то подсказывает что не совсем корректно. MQL4

AccountPercent = NormalizeDouble(((AccountEquity()/AccountBalance())-1),2);
 
Tretyakov Rostyslav #:

Я понял...легких путей нет.

Спасибо.

я нашел в сети индикатор среднего дневного хода, и переделал его для себя (убрал всё лишнее)

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

TheGreedyPig_ADR -исходник
Файлы:
 

здравствуйте всем!

собрал себе индикатор среднего дневного хода цены

показывает средний ход за 5,30, 180 дней.

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

чтобы можно было задать диапазон например 2018-2019 - и увидеть средний ход

У кого есть идеи как это можно реализовать? или может пример есть.

вот мой индюк. В нем расчет ведется так:

//---------------------------------------------------------------------------------------+
//                      Расчёт  ADR на 5,30,180 дней                                     |
//---------------------------------------------------------------------------------------+           
   if(Bars0>LastBars0)
     {

      for(int i=1;i<=180;i++) // Цикл из 180 дневных сессий
        {
         while(ExcludeSundayData && TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,n))==0) n++; // If TimeDayOfWeek returns 0 add 1 to n to skip Sunday
         Daily_Range=Daily_Range+(iHigh(Symbol(),PERIOD_D1,n)-iLow(Symbol(),PERIOD_D1,n))/PipValue;
         if(i==1)  adr1 =MathRound(Daily_Range);
         if(i==5)  adr5 =MathRound(Daily_Range/5);
         if(i==30) adr30=MathRound(Daily_Range/30);
         if(i==180) adr180=MathRound(Daily_Range/180); 
         n++;
        }

как по годам сделать пока не соображу...

Файлы:
ADR_gio.mq4  13 kb
 
Alexey Viktorov #:

(300-150)/300*100 = 50% от 300

еквити 300

баланс 150

Привет, Алексей! Когда эквити в 2 раза больше чем баланс, разве это 50%? Думаю, что прирост составил 100%.

Вот правильный вариант:

AccountPercent = NormalizeDouble(((AccountEquity()*100/AccountBalance())-100),2);

С уважением, Владимир.

 
MrBrooklin #:

Привет, Алексей! Когда эквити в 2 раза больше чем баланс, разве это 50%? Думаю, что это 100%.

С уважением, Владимир.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам

Volodymyr Zubov, 2023.01.31 08:12

Скажите пожалуйста, мне нужно знать текущую просадку или прибыль в процентах при открытых позициях.

Правильно я делаю ? что то подсказывает что не совсем корректно. MQL4

AccountPercent = NormalizeDouble(((AccountEquity()-AccountBalance())/100),2);

Просадка или прибыль, это не зафиксированная прибыль или убыток. То-есть разница текущего еквити и баланса.

Еквити 300 баланс 150 следовательно незафиксированная прибыль 150 разве это не 50% от 300?

Хотя ты правильно подметил. Лучше считать %% от баланса, а не от еквити.

то-есть (еквити-баланс)/баланс*100 будет %% от баланса.

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