Вопросы по MQL4

Тема в разделе "В помощь трейдеру", создана пользователем ddos1, 20 Декабрь 2014.

  1. ovpmusic

    ovpmusic Новичок

    Регистрация:
    26 Октябрь 2018
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2005
    А не подскажите, есть ли возможность программно убрать сетку с графика?
     
  2. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
     
    Dmitri нравится это.
  3. ovpmusic

    ovpmusic Новичок

    Регистрация:
    26 Октябрь 2018
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2005
    Огромное спасибо!!!
     
    loopsider нравится это.
  4. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Подскажите, пожалуйста, как вычислить процент максимальной просадки, точно такой, какой выдает тестер?
    Вот например:
    Код:
    double  MaxPeak,DD, MaxDD, DD2, MaxDD2;
    --------------------------------------
    --------------------------------------
    это вывод:
     SM("Maximal drawdown        : " + DoubleToString(MaxDrawdown_Money(), 2)+ " (" + DoubleToString(MaxDrawdown_Protsent(), 2) +" %)");
    
    -------------------------------------
    -------------------------------------
    
    //--------------------Рассчет % относительной просадки----------
    double MaxDrawdown_Protsent()
    {
    if (AccountEquity() > MaxPeak)
    {
    MaxPeak = AccountEquity();
    }
    if (AccountEquity() < MaxPeak)
    {
    DD2 = NormalizeDouble((MaxPeak - AccountEquity())/MaxPeak*100,2);
    }
    if (MaxDD2< DD2)
    {
    MaxDD2 = DD2;
    }
    return (MaxDD2);
    }
    //---------------------Рассчет суммы максимальной просадки--------
    double MaxDrawdown_Money()
    {
    if (AccountEquity() > MaxPeak)
    {
    MaxPeak = AccountEquity();
    }
    if (AccountEquity() < MaxPeak)
    {
    DD = NormalizeDouble(MaxPeak - AccountEquity(),2);
    }
    if (MaxDD< DD)
    {
    MaxDD = DD;
    }
    return (MaxDD);
    }
    
    это код точно выдает значение суммы макс. просадки и процент относительной просадки, как в тестере.
    Как добиться вывод на график процента макс. просадки, точно как в тестере?
     
  5. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Вывести на экран? Например так
    Код:
    Comment("MaxDD = ",DoubleToString(MaxDrawdown_Money(), 2));
    А в чем вопрос-то?
     
  6. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    "как вычислить процент максимальной просадки, точно такой, какой выдает тестер?"
    вот в этом вопрос)
    вывести на экран - имелось ввиду не просто надпись, а правильное значение))
    Сейчас это работает так:

    [​IMG]
    совпадает с тестером сумма макс. просадки, а вот процент - не совпадает. Показывает процент относительной просадки (код я в предыдущем посте разместил)
    А нужно получить процент макс. просадки, как в тестере.
     
  7. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Считайте просадку относительно балланса счета, а не эквити - скорее всего, так и получится.
     
  8. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Код:
    //--------------------Рассчет % максимальной просадки----------
    double MaxDrawdown_Protsent2()
    {
    if (AccountBalance() > MaxPeak2)
    {
    MaxPeak2 = AccountBalance();
    }
    if (AccountBalance() < MaxPeak2)
    {
    DD3 = NormalizeDouble((MaxPeak2 - AccountBalance())/MaxPeak2*100,2);
    }
    if (MaxDD3< DD3)
    {
    MaxDD3 = DD3;
    }
    return (MaxDD3);
    }
    
    Если вы имели ввиду так, то тоже не совпадает значение этой функции со значением в тестере.
     
  9. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    вот что получается
    [​IMG]
     
  10. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Я бы сделал вот так:
    Код:
    //--------------------Рассчет % относительной просадки----------
    double MaxDrawdown_Protsent() {
    DD2 = (AccountBalance() - AccountEquity())/AccountBalance()*100;
    if (MaxDD2< DD2) MaxDD2 = DD2;
    return (MaxDD2);
    }
     
  11. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    вот результат
    [​IMG]
     
  12. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Ну тогда спросите у метаквотов.
     
  13. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Можно еще так попробовать
    Код:
    //--------------------Рассчет % относительной просадки----------
    double MaxDrawdown_Protsent()
    {
    if (AccountBalance() > MaxPeak)
    {
    MaxPeak = AccountBalance();
    }
    DD2 = NormalizeDouble((MaxPeak - AccountEquity())/MaxPeak*100,2);
    if (MaxDD2< DD2)
    {
    MaxDD2 = DD2;
    }
    return (MaxDD2);
    }
     
  14. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    так получается % относительной просадки, как в тестере..
    а вот как получить % максимальной просадки как в тестере.
    Я уже облазил кучу форумов, кучу сайтов, в том числе метаквотов - там конкретного ответа никто не дает.
     
  15. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    сорри, не тот код воткнул.. сейчас посмотрю ваш.
    и почему тут нельзя редактировать сообщения?
     
  16. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    вот ваш код что дает:
    [​IMG]
    это ближе всего, но всё равно не один в один))
     
  17. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Если создать условия, при которых тестер выдает одинаковый % макс. и относительной просадки, то ваш код тоже не подходит:
    [​IMG]
     
  18. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Трясите разработчиков... Не очень понятно, зачем вам это надо. Какая у вас просадка вы знаете, а цифирки в тестере - вещь условная.
     
  19. FEEX

    FEEX Новичок

    Регистрация:
    18 Ноябрь 2018
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Условная, не условная, но она же как-то вычисляется?
    И для чего-то?
    А разрабов уже трясли и не один раз...
    У них же, как бы, расписаны принципы вычисления Пожалуйста, войдите или зарегистрируйтесь для просмотра ссылок
    только это НЕ работает! А когда начинаешь трясти, тебя отсылают на подобные страницы.
    Неужели никому не интересно как работает ВАШ терминал, на котором вы торгуете реальными деньгами?
    Всем пофиг? Я в шоке с вас....
    Куча мега программистов и одним, типа, некогда - на самом деле нихрена не знают, другие задают вопросы, типа : зачем это вам? Или раздают советы: спросите у разрабов..
    А для чего тогда эти все форумы?
    Вы ужне 10-й, наверное, кто не может ответить на этот вопрос, и в свою очередь задает вопросы в ответ.
    Ладно, пойдем дальше... Ваш форум вычеркиваю из списка, за ненадобностью..
     
  20. loopsider

    loopsider Эксперт Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    5.226
    Симпатии:
    4.817
    Баллы:
    585
    Пол:
    Мужской
    Это не пофигизм, это жизненный опыт. Жизнь коротка и разгадать все тайны даже одного "черного ящика" в виде МТ4 ни у вас ни у нас не получится. Разрабы, как правило, раскрывают как все примерно работает, а что там в деталях - никто не знает. А поэтому - имеет смысл сосредоточится на важном. Считать ли данный вопрос важным - решать вам. Если важен, то не бегайте по форумам, а подумайте и поперебирайте варианты, их не так много в данном случае.
     
    Сергей Иванов нравится это.

Поделиться этой страницей