Индикаторы: TradeStatisticsPanel - страница 2

 
sergeev:

в расчете ahpr - проверяется на 0 не знаменатель

Имеется ввиду эта строка?
m_ahpr=m_ahpr/(limit-1);

Выше есть сторка с проверкой:

if(limit>1)
почему в расчете sharp_ratio - в цикле расчета Std - не используется последний элемент HPR?

Благодарю что заметили неточность!. Последним индексом массива вместо limit-2 должно быть limit-1. Подправлю в оригинале.

 
avoitenko:
Имеется ввиду эта строка?

вот эта


Благодарю что заметили неточность!. Последним индексом массива вместо limit-2 должно быть limit-1

ну так я ж основной потребитель :))

 

Писал, писал, а ошибок море. 

Теперь будет так: 

   if(m_balance_data.At(i-1)!=0.0)
     {
      HPR[i-1]=m_balance_data.At(i)/m_balance_data.At(i-1);
      m_ahpr+=HPR[i-1];
     }
 

Нет. Вот эта: Расширенный анализ торгового счета 

Для формирования красивого расширенного отчета в HTML нужна мощная и при этом бесплатная JavaScript библиотека. 

Та, о которой шла речь выше (MQLab Graphic Report), кажется, канула в лету.

Предложите свои варианты.

Можно сделать, чтобы отображалось в виде индикаторов.  

Что должны отображать эти индикаторы и как это должно выглядеть?
 
avoitenko:

Для формирования красивого расширенного отчета в HTML нужна мощная и при этом бесплатная JavaScript библиотека. 

Та, о которой шла речь выше (MQLab Graphic Report), кажется, канула в лету.

Предложите свои варианты.

Что должны отображать эти индикаторы и как это должно выглядеть?

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

Например, Profit Factor на рисунке ниже: 

 

//---

Если Ваш класс уже сейчас можно использовать в эксперте во время теста опираясь на статистику торговли указывая количество сделок для расчётов, то с помощью индикаторов можно было бы визуализировать всё это в режиме визуализации тестирования. Плюс к этому каждый бы использовал для себя свой метод. То есть, возможно, кому-нибудь было бы удобнее получать значения показателей через индикаторы. Например, получаем хэндл индикатора Profit Factor, снимаем его показатели и принимаем решение, что делать дальше. ))

//--- 

Ещё очень интересно было бы посмотреть на вариант, который реализован так, как это сделано в статье Визуализируй стратегию в тестере MetaTrader 5 (последнее видео). Но так как там реализовано более менее понятно. Можно расширить идею, например, сделать элементы управления: масштабирование, скролл, шкала времени и значений показателей. В общем, интересная и полезная получилась бы статья.

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

Например вот так:

int  iProfitFactor(
   string symbol,        // Имя символа. Если не указано, то расчёт производится к общей серии сделок
   int    count_deals,   // количество сделок для расчёта показателя
);
Всё это выделило бы MetaTrader 5 ещё более вперёд. )))
 

По поводу статистических индикаторов типа iProfitFactor.

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

А Вы поучаете значения по одному из этих инструментов, скажем EURUSD.

Согласитесь, лучше считать статистику в целом по счету а не по отдельным парам, ведь непонятно как потом эти показатели суммировать.

Во вторых, что за параметр count_deals ?? Зачем задавать количество сделок? Не лучше ли задавать временной диапазон для расчета статистики?

Согласен, что стоит написать индикатор  Equity/Balance.

 
avoitenko:

Согласен, что стоит написать индикатор  Equity/Balance.

добавьте создание массива Equity в CTradeStatistic

аналогично массивы ProfitFactor_data и т.д. не сложно вычисляются на массиве prof_data при его заполнении.

тут главное - чтоб на вход обработки подавались сделки отсортированные по времени.

 
avoitenko:

По поводу статистических индикаторов типа iProfitFactor.

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

А Вы поучаете значения по одному из этих инструментов, скажем EURUSD.

Согласитесь, лучше считать статистику в целом по счету а не по отдельным парам, ведь непонятно как потом эти показатели суммировать.

Во вторых, что за параметр count_deals ?? Зачем задавать количество сделок? Не лучше ли задавать временной диапазон для расчета статистики?

Согласен, что стоит написать индикатор  Equity/Balance.

Я в предыдущем посте поправил комментарий. То есть, если не указано, что на каком-то конкретном символе, то расчёт производится к общей серии сделок. Я думаю, что статистические показатели нужно рассматривать отдельно по каждому символу и ТС, так как нужно принимать решение по каждой из них в отдельности. Это конечно не касается тех систем, в которых для условий в одной стратегии используется более одного символа или ТФ. Общий показатель  в качестве отчёта больше нужен инвестору. Хотя, чем более подробный это будет отчёт, тем больше он будет доверять трейдеру. Тем, кто занимается разработкой торговых систем также нужен более гибкий и точный инструмент.

По поводу параметра count_deals. По времени тоже можно сделать. Лучше, если это будет на выбор.

 
добавьте создание массива Equity в CTradeStatistic

Для тестера это не актуально, так как значение эквити доступно всегда.

А не в тестере эквити нужно считать на минутках, а это сложно, по крайней мере для меня.

аналогично массивы ProfitFactor_data 

Опять же, зачем, если вы вызываете Calculate и получаете результат? Или это нужно Вам для отображения промежуточных значений?

 
avoitenko:

...

Или это нужно Вам для отображения промежуточных значений?

Да, нужны промежуточные значения.
Причина обращения: