Методика тестирования систем

23 сентября, 2011

Автор: Николай Камынин

Я расскажу каким образом, по моему мнению, надо тестировать системы автоматической торговли.

Несколько слов  относительно объема исторических данных.

Считаю, что чем больше объем , тем лучше.

В моих исследованиях объем исходных данных ограничивается лишь временем вычислений.

Обычно я использую историю за 10 лет  для Сбербанка с таймом 5 минут. Примерно 300 тысяч отсчетов.

Обработка таймов 1 минута за 10 лет занимает слишком много времени (1.5 млн. отсчетов)

Обработка тиков практически невозможна (примерно 15 миллионов отсчетов).

Как минимум история берется за 1 год.

методика тестирования

Вариант 1:  Основана на принципах тестирования систем распознавания образов.

Суть ее состоит в том, что исходную последовательность данных разделяем на две части – обучающую и контрольную.

В нашем случае  , обучающая часть – это данные для оптимизации.

Контрольная – для тестирования системы.

Далее возможна модификация методики следующим образом.

После проведения оптимизации и контроля, меняете местами исходные данные.

Контрольная – для оптимизации. Обучающая – для контроля.

Полученные результаты используете для анализа устойчивости системы.

Вариант 2: Часто я применяю следующую методику.

Систему оптимизирую на исходных данных за 5-10 лет.

После этого провожу тестирование с постоянными параметрами по годам или месяцам.

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

Просто параболик, а какой результат! Amibroker

18 сентября, 2011

Автор: Николай Камынин

Зачастую сложность той или иной торговой стратегии обусловлена не объективной необходимостью,
а недостаточными знаниями свойств того или иного индикатора.
В качестве примера приведу результаты моделирования классической стратегии параболик.

acc = Optimize(«Acceleration», 0.19, 0.02, 0.3, 0.01 );
accm = Optimize(«Max.acceleration», 0.05, 0.01, 0.2, 0.01 );
filt3=SAR( acc,accm);

Buy=Cross(C,filt3);  Sell=Cross(filt3,C);  Short=Sell;  Cover=Buy;
~~~~~~~~~~~~~~~~~~~~~~~

Результаты покажу на сбербанке обычке, период 2011 год
Тайм 30 минут.

All trades                 Long trades            Short trades
Initial capital                                               100000.00               100000.00                100000.00
Ending capital                                           152723.51               113750.60                138972.91
Net Profit                                                    52723.51                  13750.60                  38972.91
Net Profit %                                               52.72 %                    13.75 %                    38.97 %
Exposure %                                               78.63 %                    38.89 %                    39.73 %
Net Risk Adjusted Return %                    67.06 %                    35.35 %                    98.09 %
Annual Return %                                       86.97 %                    20.97 %                    62.63 %
Risk Adjusted Return %                           110.61 %                  53.92 %                    157.64 %


All trades 220                            110 (50.00 %)          110 (50.00 %)
Avg. Profit/Loss                                       239.65                      125.01                       354.30
Avg. Profit/Loss %                                   0.24 %                      0.13 %                       0.35 %
Avg. Bars Held                                         14.16                        14.11                         14.21


Winners 90 (40.91 %)            43 (19.55 %)            47 (21.36 %)
Total Profit                                                137485.15               60645.58                  76839.57
Avg. Profit                                                 1527.61                    1410.36                    1634.88
Avg. Profit %                                            1.53 %                      1.41 %                       1.64 %
Avg. Bars Held                                         24.52                        25.33                         23.79
Max. Consecutive                                    7                                7                                 5
Largest win                                               7695.85                    7695.85                    7273.25
# bars in largest win                                87                              87                              38


Losers 130 (59.09 %)          67 (30.45 %)            63 (28.64 %)
Total Loss                                                 -84761.64                -46894.98                 -37866.66
Avg. Loss                                                  -652.01                     -699.93                     -601.06
Avg. Loss %                                             -0.65 %                     -0.70 %                     -0.60 %
Avg. Bars Held                                         6.98                           6.91                           7.06
Max. Consecutive                                    11                              8                                 7
Largest loss                                              -3916.68                   -3916.68                   -3230.81
# bars in largest loss                               6                                6                                 2


Max. trade drawdown                               -6173.90                   -6025.60                   -6173.90
Max. trade % drawdown                          -5.74 %                     -5.74 %                     -5.59 %
Max. system drawdown                            -16049.79                -11719.14                 -8347.21
Max. system % drawdown                       -12.01 %                   -10.17 %                   -5.85 %
Recovery Factor                                       3.28                           1.17                           4.67
CAR/MaxDD                                             7.24                           2.06                           10.70
RAR/MaxDD                                             9.21                           5.30                           26.94
Profit Factor                                              1.62                           1.29                           2.03
Payoff Ratio                                               2.34                           2.02                           2.72
Standard Error                                          4895.39                    3612.06                    4217.35
Risk-Reward Ratio                                   13.31                        5.29                           10.92
Ulcer Index                                                 3.69                           4.34                           2.55
Ulcer Performance Index                         22.11                        3.59                           22.48
Sharpe Ratio of trades                             2.50                           1.23                           3.77
K-Ratio                                                       0.0479                      0.0190                       0.0393

Таким образом, получили прибыль всего:  52.72 %
Много это или мало?
Предлагаю пересчитать это на фьючерсы:
При торговле на фьючерсе сбербанка плечо составляет в среднем 8(восемь)
Это означает, что прибыль в пересчете на фьючерс составит 416%.
По-моему, хорошая прибыль и оптимизировать надо всего два параметра.
Из основ аппроксимации функций полиномами известно,
что чем больше степень полинома тем более точно можно получить результат,
но тем менее надежным будет этот результат.
Поэтому, априори следует считать, что та система лучше,
которая при меньшем числе подбираемых параметров достигает лучших результатов.
Поэтому в своих разработках, я применяю те или иные индикаторы,
если их применение существенно улучшает результат работы системы.