Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Функция расчета просадки по закрытой сделке. Есть ли что-то готовое?

    Добрый!
    Необходимо взять данные по максимальной просадке по закрытой сделке. Я думаю в пунктах.

    Промежуточное решение. Есть ли функция отдающая максимумы\минимумы за запрошенный период?

    Вопрос наверное к старичкам форума, есть ли что-то готовое в этом направлении?
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от AleksSerg Посмотреть сообщение
    Необходимо взять данные по максимальной просадке по закрытой сделке. Я думаю в пунктах.
    Если в пунктах, то это делается довольно тривиально...
    Сообщение от AleksSerg Посмотреть сообщение
    Промежуточное решение. Есть ли функция отдающая максимумы\минимумы за запрошенный период?
    Есть, называются iLowest() или iHighest().
    Сообщение от AleksSerg Посмотреть сообщение
    есть ли что-то готовое в этом направлении?
    Готового не помню, но если ориентировочно, без учета спреда, то примерно так. Набросал по быстряку, на коленке...
    MQL код:

    int GetDrawdownPips(int Type, double OpenPrice, datetime OpenTime, datetime CloseTime)
    {
    int Result = 0;
    double MaxDrawdownPrice = 0.0;
    int StartBar = iBarShift(NULL, 0, CloseTime);
    int StopBar = iBarShift(NULL, 0, OpenTime);

    switch(Type)
    {
    case OP_BUY:
    MaxDrawdownPrice = iLow(NULL, PERIOD_CURRENT, iLowest(NULL, PERIOD_CURRENT, MODE_LOW, StopBar - StartBar, StartBar));
    Result = int(NormalizeDouble(OpenPrice - MaxDrawdownPrice, Digits) / Point);
    break;
    case OP_SELL:
    MaxDrawdownPrice = iHigh(NULL, PERIOD_CURRENT, iHighest(NULL, PERIOD_CURRENT, MODE_HIGH, StopBar - StartBar, StartBar));
    Result = int(NormalizeDouble(MaxDrawdownPrice - OpenPrice, Digits) / Point);
    break;
    }
    return(Result);
    }
     
    Последний раз редактировалось Gold; 01.07.2019, 00:35. Причина: Тег

    Комментарий

    • #3 Свернуть

      Я благодарю Вас за ответ.
      Сообщение от ir0407 Посмотреть сообщение
      Промежуточное решение. Есть ли функция отдающая максимумы\минимумы за запрошенный период?

      Есть, называются iLowest() или iHighest().
      Насколько я понял из документации, эта функция возвращает относительно последнего бара. То есть не заданный период начало\конец, а лишь с одним параметром.

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

      Сообщение от ir0407 Посмотреть сообщение
      Готового не помню, но если ориентировочно, без учета спреда, то примерно так. Набросал по быстряку, на коленке...
      MQL код:

      int GetDrawdownPips(int Type, double OpenPrice, datetime OpenTime, datetime CloseTime)
      {
      int Result = 0;
      double MaxDrawdownPrice = 0.0;
      int StartBar = iBarShift(NULL, 0, CloseTime);
      int StopBar = iBarShift(NULL, 0, OpenTime);

      switch(Type)
      {
      case OP_BUY:
      MaxDrawdownPrice = iLow(NULL, PERIOD_CURRENT, iLowest(NULL, PERIOD_CURRENT, MODE_LOW, StopBar - StartBar, StartBar));
      Result = int(NormalizeDouble(OpenPrice - MaxDrawdownPrice, Digits) / Point);
      break;
      case OP_SELL:
      MaxDrawdownPrice = iHigh(NULL, PERIOD_CURRENT, iHighest(NULL, PERIOD_CURRENT, MODE_HIGH, StopBar - StartBar, StartBar));
      Result = int(NormalizeDouble(MaxDrawdownPrice - OpenPrice, Digits) / Point);
      break;
      }
      return(Result);
      }
      Спасибо большое!
      Но к сожалению, ваша функция учитывает лишь время, таким образом это подойдет лишь для внутридневного трейдера. У нас трейдеры могут удерживать сделку 2 - 4 дня.
      Кроме того, вы берете текущий таймфрейм. Получается, если трейдер торгует на 4 часовом таймфрейме и закрыл в первые минуты нового бара - расчет просадки будет по закрытому бару и автоматом добавит 3 часа торговли, несмотря на закрытую сделку. Это может существенно исказить данные по просадке.

      Появились несколько вопросов по задаче:
      1) если трейдер не открывает в своем терминале менее чем 4 часовые бары, данные по барам 15 минуткам например вообще отсутствуют в терминале и их нельзя получить?
      2) как получают данные по просадкам например ******** и другие подобные сервисы - там существует какая-то допустимая погрешность? Есть трейдеры которые замечали погрешность?
      3) возможно есть сторонний сервис предоставляющий api для получения точного изменения цены за заданный период?
       

      Комментарий

      • #4 Свернуть

        Сообщение от AleksSerg Посмотреть сообщение
        Насколько я понял из документации, эта функция возвращает относительно последнего бара. То есть не заданный период начало\конец, а лишь с одним параметром.
        Вы неправильно поняли. Внимательно читайте документацию.
        Сообщение от AleksSerg Посмотреть сообщение
        Но к сожалению, ваша функция учитывает лишь время, таким образом это подойдет лишь для внутридневного трейдера. У нас трейдеры могут удерживать сделку 2 - 4 дня.
        Да хоть 2-4 года... Ей пофигу... Чем дольше сделка будет в рынке тем меньше будет погрешность в результате.
        Сообщение от AleksSerg Посмотреть сообщение
        Кроме того, вы берете текущий таймфрейм. Получается, если трейдер торгует на 4 часовом таймфрейме и закрыл в первые минуты нового бара - расчет просадки будет по закрытому бару и автоматом добавит 3 часа торговли, несмотря на закрытую сделку. Это может существенно исказить данные по просадке.
        Я ничего не беру... Я просто набросал вам базовый вариант, который вы уже сами можете адаптировать под конкретные ваши нужды. Это делается, "как два байта переслать".

        Сообщение от AleksSerg Посмотреть сообщение
        1) если трейдер не открывает в своем терминале менее чем 4 часовые бары, данные по барам 15 минуткам например вообще отсутствуют в терминале и их нельзя получить?
        Данные любого ТФ всегда к вашим услугам, но возможно с некоторыми нюансами.
        Сообщение от AleksSerg Посмотреть сообщение
        2) как получают данные по просадкам например ******** и другие подобные сервисы - там существует какая-то допустимая погрешность? Есть трейдеры которые замечали погрешность?
        Погрешность есть всегда и везде. Если на счетах с жестким спредом погрешность будет минимальная и ее еще можно как-то учесть, то на счетах с плавающим спредом это практически невозможно, т.к. в исторических данных отсутствует достоверная информация о спреде в каждый конкретный момент времени. Поэтому расчет просадки по историческим данным для разных ДЦ и для разных типов счетов будет всегда разным и совсем не факт, что он будет 100% достоверным.

        Сообщение от AleksSerg Посмотреть сообщение
        3) возможно есть сторонний сервис предоставляющий api для получения точного изменения цены за заданный период?
        Ввиду вышеизложенного такого сервиса нет и быть не может. Потому что сколько ДЦ и сколько в каждом ДЦ типов счетов, столько будет и разных результатов. Плюс у каждого ДЦ свой поставщик котировок. И в каждом ДЦ для каждого типа счета стоят собственные фильтры котировок, которые актуальны только для этого ДЦ и ни для кого более.
           

        Комментарий

        • #5 Свернуть

          Сообщение от AleksSerg Посмотреть сообщение
          Добрый!
          Необходимо взять данные по максимальной просадке по закрытой сделке. Я думаю в пунктах.
          Промежуточное решение. Есть ли функция отдающая максимумы\минимумы за запрошенный период?
          Вопрос наверное к старичкам форума, есть ли что-то готовое в этом направлении?
          Есть такой индикатор, i-baleq. Может он подойдет... https://www.mql5.com/ru/code/9702

          Комментарий

          • #6 Свернуть

            Сообщение от AleksSerg Посмотреть сообщение
            Добрый!
            Необходимо взять данные по максимальной просадке по закрытой сделке. Я думаю в пунктах.

            Промежуточное решение. Есть ли функция отдающая максимумы\минимумы за запрошенный период?

            Вопрос наверное к старичкам форума, есть ли что-то готовое в этом направлении?
            А что изменилось в вашей торговой методике, что Вы задумались о функции для расчета просадки?
            Увеличилось количество ордеров, как следствие риски? Вы стали торговать программно, а до этого торговали руками и вспомогательными средствами?
            Раньше с помощью измерителя вы смотрели просадку непосредственно на графике, а теперь захотелось, чтобы цифры оставались?
            В таком случае замониторте счет на май ф икс буке, там много разных параметров торговли посмотреть можно.
             

            Комментарий

            • #7 Свернуть

              Сообщение от ir0407 Посмотреть сообщение
              Да хоть 2-4 года... Ей пофигу... Чем дольше сделка будет в рынке тем меньше будет погрешность в результате.
              Мои извинения. Смутило название переменных openTIME и closeTIME. Но там действительно DateTime.
              Да, все работает. В расчет берете цену открытия, таким образом спред учитывается.

              Сообщение от ir0407 Посмотреть сообщение
              Погрешность есть всегда и везде. Если на счетах с жестким спредом погрешность будет минимальная и ее еще можно как-то учесть, то на счетах с плавающим спредом это практически невозможно, т.к. в исторических данных отсутствует достоверная информация о спреде в каждый конкретный момент времени. Поэтому расчет просадки по историческим данным для разных ДЦ и для разных типов счетов будет всегда разным и совсем не факт, что он будет 100% достоверным.
              Да конечно. Но хотелось бы погрешность свести к минимуму.
                 

              Комментарий

              • #8 Свернуть

                Сообщение от Шумайлов Михаил Посмотреть сообщение
                Есть такой индикатор, i-baleq. Может он подойдет... https://www.mql5.com/ru/code/9702
                Спасибо большое!
                На графике рисуется эквити от баланса. Вероятно возьму за фундамент после тестирования.
                   

                Комментарий

                • #9 Свернуть

                  Сообщение от MonyaMaker Посмотреть сообщение
                  А что изменилось в вашей торговой методике, что Вы задумались о функции для расчета просадки?
                  Здравствуйте!
                  Я разработчик. Есть заказ на разработку данного функционала. Я не программировал на mql раньше.
                  У клиента несколько десятков трейдеров. Необходимо нарисовать график их доходности и соблюдения манимеджмента.

                  Сообщение от MonyaMaker Посмотреть сообщение
                  Увеличилось количество ордеров, как следствие риски? Вы стали торговать программно, а до этого торговали руками и вспомогательными средствами?
                  У трейдеров уже накопилось сделок. Чем и как торгуют я не интересовался, для моей задаче это не имеет значения.

                  Заметил сегодня что у одного трейдера удалились сделки из истории терминала. Не пойму почему, это настройка терминала такая, или трейдер может удалять историю? Мне говорили они не удаляются.

                  Сообщение от MonyaMaker Посмотреть сообщение
                  Раньше с помощью измерителя вы смотрели просадку непосредственно на графике, а теперь захотелось, чтобы цифры оставались?
                  Для руководителя компании нужен удобный функционал контроля надо доходностью группы трейдеров.

                  Сообщение от MonyaMaker Посмотреть сообщение
                  В таком случае замониторте счет на май ф икс буке, там много разных параметров торговли посмотреть можно.
                  Рассматривался такой вариант. Но в личном кабинете планируется существенно расширить возможности в измерениях.
                  Я даже думал изначально забирать данные из myfx book или аналогичного сервиса, но не нашел кто бы их отдавал. в частности fx book не отдает просадку через Api.
                  Возможно даже это к лучшему. Не будет зависимости от сторонних сервисов, практика показывает усложнение системы приводит к частым ошибкам.
                     

                  Комментарий

                  • #10 Свернуть

                    Сообщение от AleksSerg Посмотреть сообщение
                    Здравствуйте!
                    Я разработчик. Есть заказ на разработку данного функционала. Я не программировал на mql раньше.
                    У клиента несколько десятков трейдеров. Необходимо нарисовать график их доходности и соблюдения манимеджмента.
                    ... и риск менеджмента.
                    Плохо, когда разработчик не разбирается в прикладной области и не имеет опыта.
                    Но, все когда то начинали.
                    Заказчик то хоть в курсе, или тоже начинающий?

                    График он и в Африке график, с этим проблем быть не должно.

                    У трейдеров уже накопилось сделок.
                    Подозреваю, что тебе это надо ещё позавчера было написать?
                    Один счет - один трейдер, или они в куче тогруют, несколько, на одном счете?

                    Чем и как торгуют я не интересовался, для моей задаче это не имеет значения.
                    А зря, поинтересуйся, разные инструменты разные условия.
                    Что не имеет значения, а что имеет, тогда сам увидишь.
                    А то как говориться у семи нянек, дитя без глаза.
                    Одни будут одно говорить, другие прямо противоположенное, короче весело будет.

                    Заметил сегодня что у одного трейдера удалились сделки из истории терминала. Не пойму почему, это настройка терминала такая, или трейдер может удалять историю? Мне говорили они не удаляются.
                    Из истории счета.
                    Журналирование надо делать однозначно, при нарушении регламента торговли, ДЦ может аннулировать сделки, правда сейчас это достаточно редко встречается.
                    В ассортименте ещё много шуток-прибауток, и у каждого дц свой ассортимент.

                    Для руководителя компании нужен удобный функционал контроля надо доходностью группы трейдеров.
                    Тут главное, чтобы аналитика была из сего потом синтетику и отчеты лепить.

                    Рассматривался такой вариант. Но в личном кабинете планируется существенно расширить возможности в измерениях.
                    Я даже думал изначально забирать данные из myfx book или аналогичного сервиса, но не нашел кто бы их отдавал. в частности fx book не отдает просадку через Api.
                    Возможно даже это к лучшему. Не будет зависимости от сторонних сервисов, практика показывает усложнение системы приводит к частым ошибкам.
                    Эта часть в зависимости от подготовки , времени и средств, вариантов много.
                    В том числе и со своим серваком базами данных и т.д. и т.п.
                    Ты сам понимаешь, за что взялся?

                    Те не проконтролировали, те не успели, а кто виноват?
                    В случае пролёта, все дохлые собаки твои будут.
                    Из такого плана работы системы, людей надо полностью исключать, иначе гаплык.
                    Ладно успехов.
                       
                    Последний раз редактировалось MonyaMaker; 02.07.2019, 13:35.

                    Комментарий

                    • #11 Свернуть

                      Сообщение от MonyaMaker Посмотреть сообщение
                      Из такого плана работы системы, людей надо полностью исключать, иначе гаплык.
                      Ладно успехов.
                      Характер ваших комментариев не подразумевает ответа. Флуд никому не интересен.
                      И вам успехов.
                         

                      Комментарий

                      • #12 Свернуть

                        Сообщение от AleksSerg Посмотреть сообщение
                        Характер ваших комментариев не подразумевает ответа. Флуд никому не интересен.
                        И вам успехов.
                        Да не вопрос, флуд так флуд, ток в декабре 2019 отпишись, что у тебя всё путем, и ты реально поднялся, а не полный гемор получил.
                        Бывай.


                        p.s.
                        К слову, я риск и просадку считаю в динамике, для типа позиции и инструмента, это часть кода, а дальше по усмотрению и целям мероприятия.
                         
                        Последний раз редактировалось MonyaMaker; 02.07.2019, 15:46.

                        Комментарий

                        • #13 Свернуть

                          Сообщение от AleksSerg Посмотреть сообщение
                          В расчет берете цену открытия, таким образом спред учитывается.
                          Нет, спред не учитывается. Как минимум для коротких поз. Как известно графики в терминале в основном Bid-овые. А в рынке присутствует две цены Ask и Bid. И если для длинных поз по таким графикам постоянный спред будет учитываться автоматом, то для коротких поз в результат нужно добавлять еще и размер спреда, потому что цена Ask при отрисовке графика не используется и как следствие никак не учитывается при получении исторических данных через функции iLow(), iLowest(), iHigh() и iHighest().
                             

                          Комментарий

                          • #14 Свернуть

                            Сообщение от ir0407 Посмотреть сообщение
                            Нет, спред не учитывается. Как минимум для коротких поз. Как известно графики в терминале в основном Bid-овые. А в рынке присутствует две цены Ask и Bid. И если для длинных поз по таким графикам постоянный спред будет учитываться автоматом, то для коротких поз в результат нужно добавлять еще и размер спреда, потому что цена Ask при отрисовке графика не используется и как следствие никак не учитывается при получении исторических данных через функции iLow(), iLowest(), iHigh() и iHighest().
                            Ясно, спасибо!
                            Первая погрешность.
                               

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Сообщение от ir0407 Посмотреть сообщение
                              функция расчета просадки
                              Усложняю вашу функцию. Исправил отрицательный вывод, иногда трейдеры входят идеально, без просадки, а функция возвращает отрицательное значение.

                              Провел эксперимент с отсутствующими данными о котировках в терминале. Данные функция возвращает заоблачные. Из документации iBarShift не возвращает -1 или null если данных нет. Возможно ли заранее что данных по данному периоду нет в терминале?

                              Необходимо перевести пункты в $. Формулу нашел. Но она индивидуальна для каждой пары получается. Может быть есть что-то готовое?
                                 

                              Комментарий

                              Сейчас онлайн

                              working...
                              X