Author Archive

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

Данная статья посвящена новому авторскому принципу оценки эффективности торговых стратегий и роботов.

В настоящее время оценку эффективности торговых стратегий помимо расчета различных коэффициентов , осуществляют путем сравнения с результатом стратегии «купил и держи».

При этом, стратегия «купил и держи» фактически отражает движение цены и малопригодна для количественной оценки эффективности созданной стратегии.

 Кроме того, применяемые числовые коэффициенты , такие как:

Net Profit %, Exposure %, Net Risk Adjusted Return %,Annual Return %,Risk Adjusted Return %, Avg. Profit %, Avg. Loss %,Max. Consecutive,Max. trade % drawdown,Max. system % drawdown,Recovery Factor,CAR/MaxDD,RAR/MaxDD,Profit Factor,Payoff Ratio,Risk-Reward Ratio,Ulcer Index,Ulcer Performance Index,Sharpe Ratio of trades,K-Ratio не позволяют оценить эффективность торгового робота или стратегии при его работе на различных рынках,таймах и инструментах.

Например, если робот на ациях сбербанка показал прибыль в 100%, а другой робот на акциях газпрома показал прибыль в 90%, то как сравнить эффективность торговых алгоритмов между собой.

Мною разработана  новая авторская концепция , позволяющая оценивать эффективность роботов для различных рынков и таймов.

Данная концепция основана на сравнении эффективности работы робота или стратегии с идельным алгоритмом торговли.

Для этой цели , я ввел понятие «идеальная стратегия» и назвал ее —NKIS.

В настоящее время алгоритм  NKIS на языке С++  следующий:

//NKIS сигнал Buy=Cover — «купить или  закрыть шорт»:

if (j-iS->x.last()==1) {

if (iS->x.pref()>=iR->x.last() && iS->y.pref()>iS->y.last() ) Buy[iS->x.pref()]=0;

            Buy[iS->x.last()]=1;   BuyPrice[iS->x.last()]=iS->y.last();

}

//NKIS  сигнал Sell=Short — «продать или  открыть шорт»:

if (j-iR->x.last()==1) {

if (iR->x.pref()>=iS->x.last() && iR->y.last()>iR->y.pref() ) Sell[iR->x.pref()]=0;

            Sell[iR->x.last()]=1; SellPrice[iS->x.last()]=iR->y.last();

}

где j — текущее время;

iS->x.last(),iS->y.last()  — время и значение последнего локального минимума;

iR->x.last(),iR->y.last()  — время и значение последнего локального максимума;

iS->x.pref(),iS->y.pref()   — время и значение предыдущего локального минимума;

iR->x.pref(),iR->y.pref() — время и значение предыдущего локального максимума

Проведем оценку параметров алгоритма NKIS для акции сбербанка,

на истории сделок с 01.01.2007 г по 25.06.2012.

Условия торговли примем следующие:

Комиссия — 0.

Сумма депозита постоянная для любой сделки и равна  100 000.

Cделка на всю сумму депозита.

Без плеча.

Без реинвестирования прибыли.

Тайм — 5 минут

All trades

Long trades

Short trades

Net Profit %

34255.55 %

17269.95 %

16985.60 %

Exposure %

1.79 %

0.87 %

0.92 %

Net Risk Adjusted Return %

1916787.03 %

1981175.21 %

1855474.59 %

Annual Return %

191.21 %

157.04 %

156.26 %

Risk Adjusted Return %

10699.47 %

18014.81 %

17069.56 %

All trades

43915

21958 (50.00 %)

21957 (50.00 %)

 Avg. Profit/Loss

780.04

786.50

773.58

 Avg. Profit/Loss %

0.78 %

0.79 %

0.77 %

 Avg. Bars Held

3.96

3.94

3.98

Winners

43810 (99.76 %)

21899 (49.87 %)

21911 (49.89 %)

 Avg. Profit %

0.78 %

0.79 %

0.78 %

 Avg. Bars Held

3.95

3.93

3.97

 Max. Consecutive

2022

2377

1781

 # bars in largest win

6

2

6

Losers

105 (0.24 %)

59 (0.13 %)

46 (0.10 %)

 Avg. Loss %

-0.29 %

-0.29 %

-0.29 %

 Avg. Bars Held

7.62

7.64

7.59

 Max. Consecutive

1

1

1

 # bars in largest loss

13

10

13

Max. trade % drawdown

-5.33 %

-3.69 %

-5.33 %

Max. system % drawdown

-1.13 %

-1.64 %

-0.37 %

Recovery Factor

5959.61

4620.16

2955.07

CAR/MaxDD

169.07

95.66

425.50

RAR/MaxDD

9460.36

10973.49

46481.15

Profit Factor

1123.76

1002.86

1280.78

Payoff Ratio

2.69

2.70

2.69

Risk-Reward Ratio

3.90

3.89

3.91

Ulcer Index

0.01

0.01

0.00

Ulcer Performance Index

25068.62

14924.67

33942.83

Sharpe Ratio of trades

71.80

71.19

72.46

K-Ratio

0.0171

0.0170

0.0171

Для наглядности приведу результаты Робота Вася при тех же условиях:

All trades

Long trades

Short trades

Net Profit %

3156.91 %

1597.34 %

1559.57 %

Exposure %

12.79 %

7.62 %

5.17 %

Net Risk Adjusted Return %

24678.85 %

20963.42 %

30152.32 %

Annual Return %

89.20 %

67.92 %

67.23 %

Risk Adjusted Return %

697.30 %

891.41 %

1299.85 %

All trades

2773

1387 (50.02 %)

1386 (49.98 %)

 Avg. Profit/Loss

1138.44

1151.65

1125.23

 Avg. Profit/Loss %

1.14 %

1.15 %

1.13 %

 Avg. Bars Held

47.67

54.98

40.35

Winners

1873 (67.54 %)

907 (32.71 %)

966 (34.84 %)

 Avg. Profit %

2.03 %

2.18 %

1.90 %

 Avg. Bars Held

53.36

63.62

43.73

 Max. Consecutive

50

31

34

 # bars in largest win

88

48

88

Losers

900 (32.46 %)

480 (17.31 %)

420 (15.15 %)

 Avg. Loss %

-0.72 %

-0.78 %

-0.66 %

 Avg. Bars Held

35.82

38.67

32.58

 Max. Consecutive

6

8

5

 # bars in largest loss

285

285

72

Max. trade % drawdown

-15.33 %

-15.33 %

-12.06 %

Max. system % drawdown

-4.55 %

-6.30 %

-3.31 %

Recovery Factor

132.71

89.10

128.40

CAR/MaxDD

19.59

10.79

20.30

RAR/MaxDD

153.11

141.59

392.44

Profit Factor

5.84

5.25

6.66

Payoff Ratio

2.81

2.78

2.90

Risk-Reward Ratio

2.78

3.00

2.48

Ulcer Index

0.36

0.55

0.45

Ulcer Performance Index

232.68

113.56

137.60

Sharpe Ratio of trades

9.05

8.15

10.20

K-Ratio

0.0121

0.0131

0.0108

Эффективность роботВася относительно NKIS:

Net Profit= 3156/34255= 9%

Profit Factor    =5.8/1120 =0.5%

Max. trade % drawdown

для NKIS составляет 5.3%, для робота Вася 15.3%,что в 3 раза хуже,

и так далее.

Таким образом, предложена новая концепция оценки эффективности торговых стратегий и роботов.

Предложен базовый алгоритм идеальной торговой стратегии NKIS.

Концепция позволяет сравнивать по единой методике различные алгоритмы на различных рынках,  различных таймах и различных условиях торговли, путем сравнительной оценки результаов с результатами идеальной стратегии NKIS.