Оптимизация! Поделитесь опытом плз. - страница 6

 


Для примера ... график советника за 7 лет... ( профит 10 п)  стоп 300  но профит плавающий плывет за ценой даже если в убыток. .. соотношение прибыль к просадке около 25 за семь лет.. в принципе это не много... но где то 200 годовых можно снимать.
 
AndyGri:
Здорово! Согласен. Кривая доходности должна быть прямой. Спасибо за идейку.То же так хочу, но боюсь не хватит опыта напрограмить :(
Она не может быть прямой (разве что в истории была только 1 сделка). На самом деле кривая доходности - ломаная линия. Поэтому я и допетрил, что для нее нужно считать коэффициент линейной корреляции. Чем ближе такой коэффициент по абсолютному значению к 1, тем более линейна кривая доходности.

А что касаемо того, как соорудить, то проще, если я сделаю и выложу. Принцип ведь универсален и не зависит от торговой системы, т. к. кривая берется из истории сделок. Весь алгоритм закладывается в событие советника deinit(), откуда результаты прямо во время оптимизации записываются в файл формата csv. Останется только взять этот самый файл, отсортировать по коэффициенту линейной кореляции, т.е. найти наибольшее значение (абсолютное значение коэффициента не может быть больше 1) и выудив соответствующие ему внешние параметры советника, задать эксперту. Формат csv можно и в Exel отсортировать.
 
Reshetov:
Поэтому я и допетрил, что для нее нужно считать коэффициент линейной регрессии. Чем ближе такой коэффициент по абсолютному значению к 1, тем более линейна кривая доходности.
Хотелось бы (для тех, кто изучал арифметику в церковно-приходской школе) понять о каком таком коэффициенте линейной регрессии, равном 1, идёт речь? Уравнение линейной регрессии - это уравнение прямой y=a*x+c. По оси X у нас, я так понимаю, идут номера сделок (1,2,3.....N), по оси Y y нас откладывается баланс в валюте депозита (1000USD, 10000USD, 100000USD..... и т.д.). По какой такой формуле получается, что a=1 или же стремится к ней? Какой принцип нормировки используется при этом?
 
На самом деле тут нужно считать два параметра:
  • коэффициент крутизны (параметр а в уравнении y=a*x+c.) , назовем его MO , инетересуют только те, где MO>0
  • стандартное отклонение от линейной регрессии , назовем его S, интересуют те, что как можно ближе к нулю.
В выходноме файл получим двумерный массив, на которм будем искать эти области.
 
Rosh:
На самом деле тут нужно считать два параметра:
  • коэффициент крутизны (параметр а в уравнении y=a*x+c.) , назовем его MO , инетересуют только те, где MO>0
  • стандартное отклонение от линейной регрессии , назовем его S, интересуют те, что как можно ближе к нулю.
В выходноме файл получим двумерный массив, на которм будем искать эти области.

Не совсем понятно. Вы могли бы выложить более подробный пример?
У нас по итогам оптимизации есть ряд парных значений a и S для каждого из проведённых прогонов оптимизации. Мы можем построить эти точки на графике приняв оси двумерного графика за данные a и S. Предполагаю, что у нас получится какое-то размазанное пятно отсчётов (как вариант просто какая-то кривулина, имеющая свои экстремумы). Ну и как здесь может выплыть коэффициент, равный 1, если у нас размерности по осям весьма сильно разнятся? Как он получается? И что именно по этой кривулине результатов мы можем сказать кроме того, что она имеет экстремумы? Экстремумы видны и в отчётах тестера без построения дополнительного графика - достаточно просто нажать кнопку сортировки результатов оптимизации.
 
Про коэффициент равный 1 я ничего не говорил. Я лишь описал как я это вижу - использования аппроксимации результатов тестирования с помощью линейной реггресси. Могу лишь проиллюстрировать рисуноком из статьи 20. Массивы и технические индикаторы на них


 

Рисунок показывает только как раз начальную стадию Вашего предложения (получение значений a и S). То есть на рисунке представлен результат одного прогона в тестере. Несложно получить для данного графика параметры a - коэффициент линейной регрессии и СКО. Таких графиков по результатам оптимизации допустим у нас 1000. В результате имеем массив значений 1000x2, где первый индекс является номером прогона, а второй индекс - это значения a и S соответственно. Далее что может показать вывод полученных значений a и S на двумерный график по осям кроме экстремумов, которых может быть несколько штук? Просто хотелось бы разобраться что Вы имели ввиду?

 
solandr:
Reshetov:
Поэтому я и допетрил, что для нее нужно считать коэффициент линейной РЕГРЕССИИ. Чем ближе такой коэффициент по абсолютному значению к 1, тем более линейна кривая доходности.
Хотелось бы (для тех, кто изучал арифметику в церковно-приходской школе) понять о каком таком коэффициенте линейной регрессии, равном 1, идёт речь? Уравнение линейной регрессии - это уравнение прямой y=a*x+c. По оси X у нас, я так понимаю, идут номера сделок (1, 2,3.....N), по оси Y y нас откладывается баланс в валюте депозита (1000USD, 10000USD, 100000USD..... и т.д.). По какой такой формуле получается, что a=1 или же стремится к ней? Какой принцип нормировки используется при этом?
Пардон, речь идет о коэффициенте линейной корреляции. Извиняюсь, что неправильно выразился.
 
Reshetov:
AndyGri:
Здорово! Согласен. Кривая доходности должна быть прямой. Спасибо за идейку.То же так хочу, но боюсь не хватит опыта напрограмить :(
Она не может быть прямой (разве что в истории была только 1 сделка). На самом деле кривая доходности - ломаная линия. Поэтому я и допетрил, что для нее нужно считать коэффициент линейной корреляции. Чем ближе такой коэффициент по абсолютному значению к 1, тем более линейна кривая доходности.

А что касаемо того, как соорудить, то проще, если я сделаю и выложу. Принцип ведь универсален и не зависит от торговой системы, т. к. кривая берется из истории сделок. Весь алгоритм закладывается в событие советника deinit(), откуда результаты прямо во время оптимизации записываются в файл формата csv. Останется только взять этот самый файл, отсортировать по коэффициенту линейной кореляции, т.е. найти наибольшее значение (абсолютное значение коэффициента не может быть больше 1) и выудив соответствующие ему внешние параметры советника, задать эксперту. Формат csv можно и в Exel отсортировать.

Очень хочется!! :) А то забадало анализировать глазами результаты оптимизации и через прогон советника отбирать по кривой доходности. Долго... и путанница вечная...
 
nchnch:


Для примера ... график советника за 7 лет... ( профит 10 п) стоп 300 но профит плавающий плывет за ценой даже если в убыток. .. соотношение прибыль к просадке около 25 за семь лет.. в принципе это не много. .. но где то 200 годовых можно снимать.

Профит плавающий, это как? И как он за ценой ходит? От меня наверное что-то скрывают?! :)