#86926 - Tue Apr 06 2021 05:49 PM
Re: Кубик "Period Statistic"
[Re: AleksandrGanov]
|
member
Registered: Fri Jun 02 2017
Записи: 183
Loc: Kamchatka
|
Произведены следующие доработки:- обновлена сервисная библиотека: добавлен метод-расширение по расчету стандартного отклонения данных коллекции. Имеется расчет в двух режимах: отклонение от среднего значения в обе стороны (как при расчете коэффициента Шарпа) и отклонение от среднего значения только в сторону ниже среднего значения (как при расчете коэффициента Сортино). Можно было бы использовать отличную библиотеку математических расчетов для C#, но это потребует добавления дополнительных DLL в папку Handlers, поэтому был добавлен самописный метод, чтобы не превращать использование кубика в процедуру с дополнительными сложностями.
- добавлена настройка "Вывод в оптимизацию: PeriodsData". При установленной опции в оптимизацию выводятся параметры на основании тестов каждого временного периода:
- процент положительных периодов из общего числа протестированных периодов,
- средняя доходность в пунктах и процентах,
- максимальная просадка в пунктах и процентах,
- среднее кол-во сделок,
- уточненный коэффициент MAR,
- стандартное отклонение доходности по периодам,
- стандартное отклонение доходности по периодам в "отрицательную сторону" (сторону ниже среднего значения выборки),
- коэффициент риска (по сути коэф. Шарпа, рассчитанный на основании данных каждого тестового периода),
- просадка кривой доходности, то есть не так просадка, что считает платформа, а именно просадка доходности без учета начального депо - характеризует свойство системы "терять" накопленную доходность, рассчитывает на основании стандартного отклонения только в область отрицательных значений

Просадки и доходности по периодам считаются корректно в независимости от указания начального депо, расчет использует фактическое начальное депо, требуемое для открытие необходимого кол-ва сделок на каждом из тестируемых периодов. В настоящее время в качестве периодов используются только года. Данные переходных между периодами сделок не учитываются, то есть параметры перформанса стратегии с текущим набором параметров считаются по фактически совершенным в течение тестируемого интервала сделкам, в связи с чем рекомендуется для теста использовать кубик CloseEveryPeriod чтобы учитывать внутри периода "цельные" сделки, то есть которые и открылись и закрылись внутри периода.

В данном случае есть еще один положительный момент, выражающий в том, что все периоды будут протестированы независимо друг от друга, каждый со своими сделками без переноса сделок на другой период, в общем случае данный тест является одним из видов кросс-валидации на разных периодах, когда параметры подбираются на одном периоде и тестируются на другом.
- добавлена настройка "Настройки PeriodsData: Вывод PL за каждый период". При установленной опции в оптимизацию будут выведены данные по PL за каждый период. По умолчанию опция снята. При снятой опции "Вывод в оптимизацию: PeriodsData" данная настройка не имеет значения - данные не выводится.
- добавлена настройка "Настройки PeriodsData: Вывод PL% за каждый период". При установленной опции в оптимизацию будут выведены данные по PL% за каждый период. По умолчанию опция снята. При снятой опции "Вывод в оптимизацию: PeriodsData" данная настройка не имеет значения - данные не выводится.
- добавлена настройка "Настройки PeriodsData: Вывод MaxDD за каждый период". При установленной опции в оптимизацию будут выведены данные по MaxDD за каждый период. По умолчанию опция снята. При снятой опции "Вывод в оптимизацию: PeriodsData" данная настройка не имеет значения - данные не выводится.
- добавлена настройка "Настройки PeriodsData: Вывод MaxDD% за каждый период". При установленной опции в оптимизацию будут выведены данные по MaxDD% за каждый период. По умолчанию опция снята. При снятой опции "Вывод в оптимизацию: PeriodsData" данная настройка не имеет значения - данные не выводится.
- добавлена настройка "Настройки PeriodsData: Вывод кол-ва сделок за каждый период". При установленной опции в оптимизацию будут выведены данные по количеству сделок за каждый период. По умолчанию опция снята. Примечание: здесь необходимо помнить, что в каждом периоде учитываются только те сделки, которые были открыты и закрыты внутри данного периода, переходные сделки не учитываются. Полное описание данного момента приведено в описании настройки "Вывод в оптимизацию: PeriodsData". При снятой опции "Вывод в оптимизацию: PeriodsData" данная настройка не имеет значения - данные не выводится.
Пример вывода детальных параметров по периодам:
 Примечания:=========== - При включении каждой настройки по выводу данных в оптимизацию следует ожидать увеличения общего времени оптимизации в силу присутствия намного бОльшего кол-ва расчетов. Где можно было оптимизировать расчеты - это сделано, использованы, в том числе, рекомендации документации платформы ТСЛаб. На тестах загрузка процессора ровная в пределах 100% с небольшими просадками, то есть явных огрехов в оптимизации использования ресурсов не имеется, но при появлении новых мыслей в код будут вноситься изменения и дополнения.
Attachments
Общие параметры периодов.jpg (1078 downloads)Детальные параметры по периодам.jpg (1062 downloads)Закрытие сделок в конце периода.jpg (1049 downloads)Test. CloseEveryPeriod.zip (101 downloads)gaaStatData_PeriodStatistic.zip (98 downloads)gaaCommon_ServiceLib.zip (91 downloads)
Отредактировано AleksandrGanov (Tue Apr 06 2021 06:08 PM)
|
Наверх
|
|
|
|
|
|