Применение библиотеки ALGLIB для оптимизации стратегий по линейной регрессии
В статье "Оптимизация стратегий на основе минимизации ошибки управления ПАММ счётом" говорится о важности вида кривой доходности для инвестиционной привлекательности ПАММ счёта для инвесторов. Наиболее рациональный способ достижения такого вида кривой состоит в подборе параметров советника, соответствующих наиболее прямолинейному виду кривой доходности. И как уже было сказано для оптимизации параметров необходимо использовать коэффициент корреляции линейной регрессии. Поскольку штатных средств, рассчитывающий данный параметр, в тестере МТ4 нет, то было предложено вместо коэффициента корреляции линейной регрессии применять фактор восстановления в классическом его определении, как отношение полученной прибыли к просадке. Было показано, что такая замена позволяет в некоторой степени улучшить прямолинейность графика кривой доходности.
Физический смысл коэффициента корреляции линейной регрессии состоит в том, что он показывает степень универсальности выбранных параметров для всех участков тестирования. Иными словами можно например провести оптимизацию советника на основе критерия максимизации итогового баланса, но в итоге выйдет так, что на разных участках рост доходности будет сильно отличаться друг от друга. То есть весьма удачный участок будет сменяться не совсем удачным. В применимости к ПАММ сервису смена удачного участка не совсем удачным может активировать в сознании инвестора мем "система сломалась" с принятием соответствующего инвестиционного решения.
В случае же выбора параметров советника по линейной регрессии разброс в размерах доходности разных участков будет менее выраженным. И поскольку никто не знает какой участок выпадет на ближайший инвестиционный период, то будет меньше разочарований инвесторов и соответственно меньше поспешных бегств инвесторов с ПАММ счёта.
В случае оптимизации советника по линейной регрессии, а не по итоговому балансу в подавляющем большинстве случаев итоговый баланс окажется заметно меньшим. Соответственно математическое ожидание (МО) стратегии также упадёт. И здесь уже каждый управ должен самостоятельно принять решение о выборе в пользу итогового баланса и максимума МО, либо в угоду инвесторам выбирать красивую плавную кривую графика доходности, которая нравится инвесторам.
К радости разработчиков торговых систем не так давно появилась возможность воспользоваться библиотекой численного анализа ALGLIB, которая была адаптирована для применения в МТ4 build 555 и выше. Наряду с массой полезных математических функций анализа данных библиотека содержит и необходимую нам функцию расчёта LR Correlation и LR Standard Error.
Библиотеку ALGLIB можно скачать с сайта разработчиков терминала. Копия библиотеки приложена к данной статье (на всякий случай).
Для работы нужно распаковать архив в папку: каталог_данных_терминала.
Шаблон, на примере которого можно использовать библиотеку для расчёта LR Correlation и LR Standard Error, находится в файле Template_for_LR_optimization.mq4. Шаблон показывает код, который нужно внести в оптимизируемый советник.
Некоторые моменты, на которые следует обратить внимание при переносе шаблона в оптимизируемый эксперт:
1. Вставка инклюдников
#include <Math\Alglib\alglib.mqh>#include <Arrays\ArrayDouble.mqh>
2. В файл optimization_results.txt записываются следующие данные:
write_result=FileWrite(handle_optimization_results,DoubleToStr(optimization_parameter,2),DoubleToStr(LR_correlation,4),DoubleToStr(LR_standard_error,4),DoubleToStr(LR_correlation/LR_standard_error,4));
а) необходимо вместо optimization_parameter вписать тот параметр, который будет оптимизироваться в тестере МТ4. Но это не принципиально и необходимо лишь для удобства последующего чтения результатов;
б) значение LR Correlation;
в) значение LR Standard Error;
г) целевая функция LR_correlation/LR_standard_error. Она просто объединяет параметры LR Correlation и LR Standard Error в целевую функцию, что даёт некое удобство при оптимизации.
3. Вид файла optimization_results.txt
4. Файл optimization_results.txt анализируется в Excel на предмет максимизации целевой функции LR_correlation/LR_standard_error.
Solandr Test Drive
- 1
2 Comments
Recommended Comments