Author Archive

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

При тестировании торговых алгоритмов на истории я задаю следующие условия:

————————————————

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

Поэтому исследования провожу на ликвидных акциях, в частности на акции сбербанка.

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

Исходя из сказанного, я задаю начальный размер депозита в 100 тысяч рублей (Очевидно, что для сбербанка эта сумма может быть раз в 10 больше).

————————————————-

2)      Многие разработчики, особенно начинающие, предпочитают тестировать алгоритмы с совершением каждой последующей сделки на всю накопленную на депозите сумму, включающую накопленную в предыдущих сделках прибыль.

Считаю такой подход далеким от реальности.  Помимо геометрического роста депозита, такой подход предполагает, что Вы никогда не забираете деньги с депозита.  Т е фактически работаете на брокера.

Кроме того, при такой модели тестирования вероятность  потерять весь депозит для каждой открытой позиции одинаковая как в начале торговли, так и через 6 лет. Но суммы этих потерь существенно разные. Очевидно, что было бы очень досадно потерять весь депозит , который накопился бы за шесть лет  с такой же вероятностью, как и потерять депозит в начале торговой эпопеи.

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

————————————————————

Теперь я приведу наглядный результат тестирования чернового варианта построенного мною торгового робота на истории с 2008 года по настоящее время.

Алгоритм реверсивный.  Комиссия брокера 0.035%

———————————————————

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

—————————————————————-

Результат на графике и в таблице:

kamnik_2014_5_002

 

 

 

All trades Long trades Short trades
Initial capital 100000.00 100000.00 100000.00
Ending capital 234178988.85 140498730.16 93780258.70
Net Profit 234078988.85 140398730.16 93680258.70
Net Profit % 234078.99 % 140398.73 % 93680.26 %
Exposure % 27.34 % 12.51 % 14.83 %
Net Risk Adjusted Return % 856105.41 % 1122209.61 % 631635.03 %
Annual Return % 242.01 % 215.41 % 195.83 %
Risk Adjusted Return % 885.10 % 1721.75 % 1320.40 %
Total transaction costs 24895497.18 12736301.02 12159196.15
All trades 2251 1125 (49.98 %) 1126 (50.02 %)
 Avg. Profit/Loss 103988.89 124798.87 83197.39
 Avg. Profit/Loss % 0.69 % 0.74 % 0.65 %
 Avg. Bars Held 70.50 63.59 77.40
Winners 1096 (48.69 %) 549 (24.39 %) 547 (24.30 %)
 Total Profit 386095375.34 208382366.30 177713009.04
 Avg. Profit 352276.80 379567.15 324886.67
 Avg. Profit % 2.27 % 2.31 % 2.24 %
 Avg. Bars Held 94.60 89.62 99.59
 Max. Consecutive 16 9 12
 Largest win 10473445.21 10473445.21 10014591.45
 # bars in largest win 518 518 347
Losers 1155 (51.31 %) 576 (25.59 %) 579 (25.72 %)
 Total Loss -152016386.48 -67983636.15 -84032750.34
 Avg. Loss -131615.92 -118027.15 -145134.28
 Avg. Loss % -0.80 % -0.75 % -0.85 %
 Avg. Bars Held 47.63 38.78 56.44
 Max. Consecutive 10 10 10
 Largest loss -4454553.27 -2593807.75 -4454553.27
 # bars in largest loss 74 409 74
Max. trade drawdown -4713458.18 -4616353.47 -4713458.18
Max. trade % drawdown -15.91 % -15.91 % -10.43 %
Max. system drawdown -9806466.20 -5958457.55 -10225479.88
Max. system % drawdown -23.92 % -41.20 % -26.97 %
Recovery Factor 23.87 23.56 9.16
CAR/MaxDD 10.12 5.23 7.26
RAR/MaxDD 37.01 41.79 48.96
Profit Factor 2.54 3.07 2.11
Payoff Ratio 2.68 3.22 2.24
Standard Error 23385452.60 16503545.10 7500596.87
Risk-Reward Ratio 1.58 1.38 1.89
Ulcer Index 2.56 3.85 5.87
Ulcer Performance Index 92.59 54.54 32.44
Sharpe Ratio of trades 3.61 3.60 3.76
K-Ratio 0.0073 0.0064 0.0087

 Как видим из таблицы, полученная за 6 лет и 4 месяца прибыль составила бы астрономическую сумму в 234 млн.руб, при начальном депозите в 0.1 млн.руб. т е прибыль в процентах составила бы 234 тысячи %.

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

———————————————————-

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

 kamnik_2014_5_001

 

  All trades Long trades Short trades
Initial capital 100000.00 100000.00 100000.00
Ending capital 1661762.23 931515.57 830246.66
Net Profit 1561762.23 831515.57 730246.66
Net Profit % 1561.76 % 831.52 % 730.25 %
Exposure % 13.79 % 5.82 % 7.97 %
Net Risk Adjusted Return % 11326.58 % 14294.64 % 9160.72 %
Annual Return % 56.12 % 42.43 % 39.86 %
Risk Adjusted Return % 406.98 % 729.44 % 499.99 %
Total transaction costs 157541.86 79036.83 78505.03
All trades 2251 1125 (49.98 %) 1126 (50.02 %)
 Avg. Profit/Loss 693.81 739.12 648.53
 Avg. Profit/Loss % 0.69 % 0.74 % 0.65 %
 Avg. Bars Held 70.50 63.59 77.40
Winners 1096 (48.69 %) 549 (24.39 %) 547 (24.30 %)
 Total Profit 2488016.06 1265496.02 1222520.04
 Avg. Profit 2270.09 2305.09 2234.95
 Avg. Profit % 2.27 % 2.31 % 2.24 %
 Avg. Bars Held 94.60 89.62 99.59
 Max. Consecutive 16 9 12
 Largest win 64342.89 64342.89 34597.19
 # bars in largest win 267 267 89
Losers 1155 (51.31 %) 576 (25.59 %) 579 (25.72 %)
 Total Loss -926253.83 -433980.45 -492273.38
 Avg. Loss -801.95 -753.44 -850.21
 Avg. Loss % -0.80 % -0.75 % -0.85 %
 Avg. Bars Held 47.63 38.78 56.44
 Max. Consecutive 10 10 10
 Largest loss -11069.89 -11069.89 -6801.48
 # bars in largest loss 409 409 317
Max. trade drawdown -25575.71 -25575.71 -11874.91
Max. trade % drawdown -15.91 % -15.91 % -10.43 %
Max. system drawdown -32954.56 -31317.28 -23929.78
Max. system % drawdown -9.74 % -10.64 % -8.16 %
Recovery Factor 47.39 26.55 30.52
CAR/MaxDD 5.76 3.99 4.88
RAR/MaxDD 41.77 68.58 61.27
Profit Factor 2.69 2.92 2.48
Payoff Ratio 2.83 3.06 2.63
Standard Error 193641.03 108624.41 88058.23
Risk-Reward Ratio 1.02 1.05 0.96
Ulcer Index 1.00 1.50 1.26
Ulcer Performance Index 50.95 24.64 27.42
Sharpe Ratio of trades 3.61 3.60 3.76
K-Ratio 0.0047 0.0048 0.0044

 В этом случае за 6 лет и 4 месяца мы могли бы заработать 1,6 млн. рублей при открытии позиции на сумму не более 0.1 млн.руб.

Т е прибыль составила бы 1660 %.

Т е результаты вполне правдоподобны.

————————————————

Но как быть, если необходимо торговать на сумму более 1 млн. рублей в месяц.

Возможны различные варианты торгового алгоритма.

От запуска нескольких роботов до создание пирамидальной позиции.

Но в любом случае, торговый алгоритм для большого депозита существенно отличается от торгового алгоритма для малых сумм.