• Обзор
  • Отзывы (2)
  • Обсуждение (5)
  • Что нового

Testing Honest Predictor

Простой эксперт Testing Honest Predictor (THP) был разработан для легкой и полноценной проверки работы индикатора Honest Predictor (iHP) в Тестере стратегий MT4.

Принимая во внимание актив и таймфрейм, THP выбирает часть отображаемых iHP позиций и заносит в журнал (скриншот №2) процент прибыльных позиций, как если бы они были исполнены пользователем.

Он воспринимает позиции только с высоким уровнем надежности и вероятностью выше указанной минимальной точности.

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


Использование THP

Входные параметры:
  • Duration of Backtesting in days: продолжительность тестирования на истории, при помощи которого iHP оценивает уровень точности (=процент прибыльных позиций) и надежности
  • Indicator Threshold: граница, выше которой iHP открывает позиции.
  • Expiry Time in bars: истечение позиций (в барах), открытых iHP.
  • Minimum Accuracy: минимальный порог точности тестирования на истории индикатором iHP, выше которого THP будет воспринимать позиции, открытые iHP.
  • Verbosity Level: если =1, идет перечисление всех принятых позиций.

Первые три параметра имеются в индикаторе (перейдите по ссылке, чтобы ознакомиться с подробным описанием).

Установите период тестирования в Тестере стратегий, нажмите кнопку "Старт" (можно использовать режим "По ценам открытия") и THP запишет в журнал (скриншот №2) процент прибыльных позиций, который вы бы получили, исполнив ордера индикатора, если его расчетная точность выше минимальной точности, а надежность соответствует требованиям.

Торговые ордера не выполняются.


Работа iHP с экспертом

Для тех, кто желает дополнить своего эксперта индикатором iHP, ниже представлен пример кода.

HistoryDays, Threshold и Expiration содержат значения трех параметров, которые должны быть переданы в индикатор.

Учитывая смещение бара (> 0 и < HistoryDays*1440/Period()), необходимо прочитать первые 4 буфера, чтобы проверить, нашел ли iHP позицию на данном баре:

string IndiName = "HistoryPredictor.ex4"; //наименование имеющегося выполняемого модуля iHP
double UpWon=iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,0,shift);
double DownWon=iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,1,shift);
double UpFail=iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,2,shift);
double DownFail=iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,3,shift);

Они относятся к прибыльным позициям CALL (0), прибыльным позициям PUT (1), убыточным позициям CALL (2) и убыточным позициям PUT (3).

EMPTY_VALUE возвращается при отсутствии позиций такого типа на данном сдвиге.

Обращаем внимание на то, что результат позиции известен, только если сдвиг > истечения, т.е. если позиция истекла, и бар вступил в период тестирования на истории. В противном случае при неизвестном результате позиция будет записана в буфер 0 или 1.

ПРЕДУПРЕЖДЕНИЕ: если вы планируете применять эксперта в Тестере стратегий при сдвиге=1, необходимо моделирование внутреннего бара. Также должен быть включен режим Все тики! Все это необходимо потому, что iHP создает позиции на различных тиках после истечения времени бара при сдвиге=1.

Для получения статистики общее количество позиций (6 буфер) и прибыльные позиции (7 буфер), найденные в течение периода тестирования на истории, могут быть прочитаны следующим образом:

int TotalHistoryPos = int( iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,5,shift ) );
int TotalHistoryWon = int( iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,6,shift ) );

Например, мы можем оценить точность и проигнорировать последнюю предсказанную индикатором позицию, если точность неизвестна или ниже 70%:

if (TotalHistoryPos == 0 || double(TotalHistoryWon)/double(TotalHistoryPos) < 0.7) return;

Более того, значение p может быть прочитано из 8 буфера, например для исключения ненадежных условий:

double pvalue = iCustom(NULL,0,IndiName,HistoryDays,Threshold,Expiration,7,shift);
if (pvalue >= 0.1) return;
Oksana Machok
752
2017.02.08 14:14 
 

Пользователь не оставил комментарий к оценке

Ovidiu Caslariu
7845
2016.05.06 22:42 
 

Пользователь не оставил комментарий к оценке

Версия 1.9 - 2015.08.10
Советник оптимизирует и тестирует версии 2.4 и 2.5 индикатора Honest Predictor (платная версия) с возможностью обработки встроенного "самооптимизатора" (iHP) и управления временем подачи сигналов.

Добавлены параметры самооптмизиации (расчет порогового значения iHP, времени истечения и режима прогнозирования тренда):

- флаг Self-Optimization Enabled
- Self-Optimization Frequency (hours) - как часто индикатор перерисовывается при повторной оптимизации параметров
- Max Expiry Time in Self-Optimization (bars) - максимальное время истечения, регулируемое "самооптимизатором".

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

Все эти параметры передаются индикатору "как есть".

Это позволяет настраивать индикатор и экспериментировать с настройками. Внутреннее тестирование iHP на истории (а соответственно и самооптимизация) также может быть пропущено при установке Duration of the backtesting на ноль.
Это может быть необходимо, если вы собираетесь заменить внутреннее тестирование на истории долгосрочным тестированием с использованием советника Testing Honest Predictor.

Частая самооптимизация может существенно замедлить работу советника.

В комментариях к продукту будут публиковаться примеры использования советника.
Версия 1.8 - 2015.07.03
Теперь можно оптимизировать и тестировать версию 2.3 индикатора Honest Predictor (платная версия), которая имеет более быстрое (и надежное) исполнение по сравнению с предыдущими версиями.
Версия 1.7 - 2015.07.01
Оптимизация и тестирование версии 2.2 эксперта Honest Predictor (платная версия).

-Добавлен параметр Trend Prediction Mode (переходящий в индикатор iHP), который позволяет пользователю выбрать между режимами РАЗВОРОТА и ПРОДОЛЖЕНИЯ тренда (REVERSAL и CONTINUATION). А движение тренда прогнозирует индикатор iHP (он остается неизменным в течение работы iHP).

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

- Добавлен параметр Initial Balance.

- Добавлен параметр Single Position Investment. В нем указывается количество средств на каждую позицию, инвестирование которых имитирует эксперт.
Если Risk Factor имеет нулевое значение, эти инвестиции всегда будут неизменны. В противном случае, этот параметр игнорируется и количество инвестируемых средств определяется автоматически согласно параметру Risk Factor и балансу
(см. ниже).

- Добавлен параметр Risk Factor (в %). Если его значение больше 0, он представляет собой процент от баланса, который каждый раз будет добавляться экспертом к позиции.
Если он =0, инвестируемые средства останутся неизменными и всегда будут равны параметру Single Position Investment.

-Добавлены параметры Minimum Investment и Maximum Investment, которые позволяют пользователю установить минимальное и максимальное значения для автоматического определения инвестируемых средств (многие брокеры имеют минимальный порог инвеструемых средств).

-Теперь вместо профит-фактора при оптимизации увеличивается баланс.

-Теперь, если Verbosity=PRINT_BALANCE, помимо результатов позиций в журнале также будут указываться баланс и чистая прибыль после экспирации позиции.
Если Verbosity =SAVE_BALANCE, эта информация также записывается в файл.
Этот файл хранится в tester\files\TestHonestPredictor.csv и является CSV-файлом, каждая линия которого одновременно отображает время экспирации позиции, баланс, чистую прибыль и количество инвестируемых средств.
С помощью этого файла пользователь должен создать наглядное представление (например, в Excel) развития баланса, как это делается при тестировании эксперта для Форекс в Тестере стратегий.

Ожидаются комментарии по оптимизации.
Версия 1.6 - 2015.06.19
Оптимизация и тестирование версии 2.1 эксперта Honest Predictor (платная версия).

- ИСПРАВЛЕНА ЗНАЧИТЕЛЬНАЯ ОШИБКА: теперь при недостаточном количестве баров для тестирования на истории эксперт не прекращает работу. Он продолжает действие, пока не наберется достаточно большое количество баров. Это позволяет проводить тестирование на истории и оптимизацию на долгих временных интервалах (что обычно и делается при торговле на Форекс).

- Теперь вместо точности при оптимизации увеличивается профит-фактор (f). Здесь f - это коэффициент отношения конечного баланса к инвестиции в одиночный опцион (который условно всегда одинаковый). Он зависит от количества как прибыльных, так и убыточных позиций, а также от процента, выплачиваемого брокеру (см. ниже).
Попробуйте провести оптимизацию, изменяя "Indicator Threshold" ("Порог индикатора") и "Expiry Time" ("Время экспирации"), и посмотрите на результаты (строка "Оптимизация" в Тестере стратегий)!
Также интересно понаблюдать, как сильно спред влияет на прибыльность (см. ниже).

Ожидаются комментарии по оптимизации.

- Добавлен параметр "Spread" (спред в пипсах), который перейдет в индикатор iHP. См. https://www.mql5.com/ru/market/product/8700 (версия 2.1 секции "Что нового").

- Добавлен параметр по выплате "Out-of-the-money" (в %, зависит от брокера).

- Добавлен параметр по выплате "In-the-money" (в %, зависит от брокера).
Версия 1.5 - 2015.06.08
Добавлена возможность исключить внутреннее тестирование на истории индикатора Honest Predictor (iHP): если параметр Duration of backtesting in days равен 0, советник принимает все позиции, предложенные iHP.
Параметры Minimum Accuracy и Minimum Reliability Level игнорируются.

Это особенно полезно при тестировании iHP на небольших таймфреймах (меньше M15), на которых внутреннее тестирование на истории не может быть проведено на длинном промежутке времени, так как количество доступных на графике баров обычно невелико.
Версия 1.4 - 2015.05.29
- Теперь включает в себя бесплатный iHP (версия 2.0) для тестирования.
- Мелкие исправления.
Версия 1.3 - 2015.05.19
- Обновление включает в себя версию 1.9 бесплатной версии индикатора iHP.

Ознакомьтесь с моим комментарием от 7 мая 2015.
Версия 1.2 - 2015.05.11
- Включена версия 1.8 бесплатной версии iHP.
- Добавлена опция "Minimum Reliability Level", которая уточняет минимальный уровень надежности, на который указывает iHP. Позиции выставляются над этим уровнем.

Прочитайте мой комментарий от 7 мая 2015 г.