Алгоритм оптимального робота для QUIK

15 марта, 2010

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

Написание торговых роботов относится к области создания программ обработки данных в реальном времени.

Отличительной особенностью таких программ является повторное исполнение программы для каждого отсчета(сделки).  Время исполнения в идеале не должно превышать времени до следующей сделки.  

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

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

 Максимальное быстродействие я реализую следующим образом:

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

Если время изменилось, то читается значение свечи и индикаторов для времени последней  сделки.

 Эти значения записываются в коллекции свечей и индикаторов.

Таким образом, сделка порождает выполнение последовательности действий:

1) Чтение свечи и запись в коллекцию свечи;

2) Чтение индикатора 1 и запись в коллекцию 1-го индикатора;

3)Чтение индикатора N-го и запись в коллекцию N-го индикатора;

После этого исполняются условные операторы для выдачи торговых операций:

4)Проверка условий исполнения торговых операций;

5)Если условия верны, послать торговую операцию;

6) Проверить состояние счета и позиций

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

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

Таким образом, торговые роботы,  использующие для принятия решений графики функций, имеют одинаковую структуру.  При этом при исполнении п.1-3 производится контроль неизменности интервала времени графика, если интервал изменился ( пользователь QUIK решил его переключить), то программа очищает историю и загружает ее заново c новым интервалом. Таким образом, исключается возможность ошибки принятия решений при разном масштабе времени в исторических данных)

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

ТОРГОВЫЙ РОБОТ (МТС ) В AMIBROKER (ОПТИМИЗАЦИЯ)

12 марта, 2010

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

       Следующим шагом в исследовании алгоритма торгового робота на основе пробоя поддержки и сопротивления был процесс оптимизации параметров.

      Фактически оптимизация заключалась в установке порога  Stop-Loss и take-profit.

Оптимальными для простой акции сбербанка оказались следующие параметры:

      Stop-Loss=0.5 руб (при средней цене акции 88 рублей)

      Take-profit определен двумя порогами ,

Первый уровень — минимальный, при котором позиция закрывается, если был пробой поддержки составляет 0.1 руб.

Второй уровень – минимальное значения максимума прибыли от момента открытия позиции, составляет 0.5 руб.

      Для оценки эффективности оптимизированного алгоритма был выбран интервал падения рынка в период с 11.12.2007 года (High=107.6 руб) до 27.02.2009 года (low=14.28 руб ) На дневном графике интервал ограничен вертикальными линиями.

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

Позиция открывается на постоянную сумму 10000 рублей. Плечо не используется. Одновременно открывается не более одной позиции. Комиссия составляет 0.04% от суммы трейда.

Результаты для различных временных интервалов приведены ниже:

Интервал 60 минут(Long) 

Cделок 231, прибыльных 48%, прибыль 132%, максимальная просадка 22%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 23382.31 23382.31 10000.00
Net Profit 13382.31 13382.31 0.00
Net Profit % 133.82 % 133.82 % 0.00 %
Exposure % 48.59 % 48.59 % 0.00 %
Net Risk Adjusted Return % 275.40 % 275.40 % N/A
Annual Return % 101.03 % 101.03 % 0.00 %
Risk Adjusted Return % 207.91 % 207.91 % N/A

 
All trades 231 231 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 57.93 57.93 N/A
 Avg. Profit/Loss % 0.58 % 0.58 % N/A
 Avg. Bars Held 8.71 8.71 N/A

 
Winners 108 (46.75 %) 108 (46.75 %) 0 (0.00 %)
 Total Profit 36608.16 36608.16 0.00
 Avg. Profit 338.96 338.96 N/A
 Avg. Profit % 3.40 % 3.40 % N/A
 Avg. Bars Held 10.25 10.25 N/A
 Max. Consecutive 9 9 0
 Largest win 5745.57 5745.57 0.00
 # bars in largest win 23 23 0

 
Losers 123 (53.25 %) 123 (53.25 %) 0 (0.00 %)
 Total Loss -23225.85 -23225.85 0.00
 Avg. Loss -188.83 -188.83 N/A
 Avg. Loss % -1.89 % -1.89 % N/A
 Avg. Bars Held 7.35 7.35 N/A
 Max. Consecutive 6 6 0
 Largest loss -1342.79 -1342.79 0.00
 # bars in largest loss 4 4 0

 
Max. trade drawdown -2523.95 -2523.95 0.00
Max. trade % drawdown -22.14 % -22.14 % 0.00 %
Max. system drawdown -3906.91 -3906.91 0.00
Max. system % drawdown -20.29 % -20.29 % 0.00 %
Recovery Factor 3.43 3.43 N/A
CAR/MaxDD 4.98 4.98 N/A
RAR/MaxDD 10.25 10.25 N/A
Profit Factor 1.58 1.58 N/A
Payoff Ratio 1.80 1.80 N/A
Standard Error 824.17 824.17 0.00
Risk-Reward Ratio 13.93 13.93 N/A
Ulcer Index 4.39 4.39 0.00
Ulcer Performance Index 21.78 21.78 N/A
Sharpe Ratio of trades 1.67 1.67 0.00
K-Ratio 0.0997 0.0997 -1.#IND

 Интервал 30 минут(Long)

Cделок 378, прибыльных 48%, прибыль 159%, максимальная просадка 14%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 25976.51 25976.51 10000.00
Net Profit 15976.51 15976.51 0.00
Net Profit % 159.77 % 159.77 % 0.00 %
Exposure % 53.90 % 53.90 % 0.00 %
Net Risk Adjusted Return % 296.41 % 296.41 % N/A
Annual Return % 119.19 % 119.19 % 0.00 %
Risk Adjusted Return % 221.13 % 221.13 % N/A

 
All trades 378 378 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 42.27 42.27 N/A
 Avg. Profit/Loss % 0.43 % 0.43 % N/A
 Avg. Bars Held 10.22 10.22 N/A

 
Winners 182 (48.15 %) 182 (48.15 %) 0 (0.00 %)
 Total Profit 49563.66 49563.66 0.00
 Avg. Profit 272.33 272.33 N/A
 Avg. Profit % 2.73 % 2.73 % N/A
 Avg. Bars Held 11.73 11.73 N/A
 Max. Consecutive 7 7 0
 Largest win 4793.27 4793.27 0.00
 # bars in largest win 25 25 0

 
Losers 196 (51.85 %) 196 (51.85 %) 0 (0.00 %)
 Total Loss -33587.15 -33587.15 0.00
 Avg. Loss -171.36 -171.36 N/A
 Avg. Loss % -1.72 % -1.72 % N/A
 Avg. Bars Held 8.83 8.83 N/A
 Max. Consecutive 9 9 0
 Largest loss -1342.79 -1342.79 0.00
 # bars in largest loss 5 5 0

 
Max. trade drawdown -1483.11 -1483.11 0.00
Max. trade % drawdown -14.85 % -14.85 % 0.00 %
Max. system drawdown -4410.75 -4410.75 0.00
Max. system % drawdown -24.12 % -24.12 % 0.00 %
Recovery Factor 3.62 3.62 N/A
CAR/MaxDD 4.94 4.94 N/A
RAR/MaxDD 9.17 9.17 N/A
Profit Factor 1.48 1.48 N/A
Payoff Ratio 1.59 1.59 N/A
Standard Error 1677.66 1677.66 0.00
Risk-Reward Ratio 8.87 8.87 N/A
Ulcer Index 4.86 4.86 0.00
Ulcer Performance Index 23.41 23.41 N/A
Sharpe Ratio of trades 1.90 1.90 0.00
K-Ratio 0.0465 0.0465 -1.#IND

Интервал 10 минут(Long)

Cделок 719, прибыльных 47%, прибыль 334%, максимальная просадка 16%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 43447.02 43447.02 10000.00
Net Profit 33447.02 33447.02 0.00
Net Profit % 334.47 % 334.47 % 0.00 %
Exposure % 40.13 % 40.13 % 0.00 %
Net Risk Adjusted Return % 833.51 % 833.51 % N/A
Annual Return % 234.54 % 234.54 % 0.00 %
Risk Adjusted Return % 584.48 % 584.48 % N/A

 
All trades 719 719 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 46.52 46.52 N/A
 Avg. Profit/Loss % 0.47 % 0.47 % N/A
 Avg. Bars Held 15.82 15.82 N/A

 
Winners 339 (47.15 %) 339 (47.15 %) 0 (0.00 %)
 Total Profit 72305.97 72305.97 0.00
 Avg. Profit 213.29 213.29 N/A
 Avg. Profit % 2.14 % 2.14 % N/A
 Avg. Bars Held 19.50 19.50 N/A
 Max. Consecutive 8 8 0
 Largest win 2151.76 2151.76 0.00
 # bars in largest win 14 14 0

 
Losers 380 (52.85 %) 380 (52.85 %) 0 (0.00 %)
 Total Loss -38858.95 -38858.95 0.00
 Avg. Loss -102.26 -102.26 N/A
 Avg. Loss % -1.03 % -1.03 % N/A
 Avg. Bars Held 12.54 12.54 N/A
 Max. Consecutive 9 9 0
 Largest loss -1352.21 -1352.21 0.00
 # bars in largest loss 31 31 0

 
Max. trade drawdown -1669.93 -1669.93 0.00
Max. trade % drawdown -16.70 % -16.70 % 0.00 %
Max. system drawdown -3052.49 -3052.49 0.00
Max. system % drawdown -9.96 % -9.96 % 0.00 %
Recovery Factor 10.96 10.96 N/A
CAR/MaxDD 23.55 23.55 N/A
RAR/MaxDD 58.69 58.69 N/A
Profit Factor 1.86 1.86 N/A
Payoff Ratio 2.09 2.09 N/A
Standard Error 2542.69 2542.69 0.00
Risk-Reward Ratio 11.28 11.28 N/A
Ulcer Index 1.75 1.75 0.00
Ulcer Performance Index 131.30 131.30 N/A
Sharpe Ratio of trades 4.58 4.58 0.00
K-Ratio 0.0347 0.0347 -1.#IND

Интервал 5 минут(Long)

Cделок 1005, прибыльных 46.8%, прибыль 420%, максимальная просадка 17%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 52069.38 52069.38 10000.00
Net Profit 42069.38 42069.38 0.00
Net Profit % 420.69 % 420.69 % 0.00 %
Exposure % 38.24 % 38.24 % 0.00 %
Net Risk Adjusted Return % 1100.24 % 1100.24 % N/A
Annual Return % 288.22 % 288.22 % 0.00 %
Risk Adjusted Return % 753.79 % 753.79 % N/A

 
All trades 1005 1005 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 41.86 41.86 N/A
 Avg. Profit/Loss % 0.42 % 0.42 % N/A
 Avg. Bars Held 22.93 22.93 N/A

 
Winners 471 (46.87 %) 471 (46.87 %) 0 (0.00 %)
 Total Profit 88353.53 88353.53 0.00
 Avg. Profit 187.59 187.59 N/A
 Avg. Profit % 1.88 % 1.88 % N/A
 Avg. Bars Held 28.14 28.14 N/A
 Max. Consecutive 7 7 0
 Largest win 5484.82 5484.82 0.00
 # bars in largest win 13 13 0

 
Losers 534 (53.13 %) 534 (53.13 %) 0 (0.00 %)
 Total Loss -46284.15 -46284.15 0.00
 Avg. Loss -86.67 -86.67 N/A
 Avg. Loss % -0.87 % -0.87 % N/A
 Avg. Bars Held 18.33 18.33 N/A
 Max. Consecutive 8 8 0
 Largest loss -1238.26 -1238.26 0.00
 # bars in largest loss 13 13 0

 
Max. trade drawdown -1760.50 -1760.50 0.00
Max. trade % drawdown -17.62 % -17.62 % 0.00 %
Max. system drawdown -3138.06 -3138.06 0.00
Max. system % drawdown -7.32 % -7.32 % 0.00 %
Recovery Factor 13.41 13.41 N/A
CAR/MaxDD 39.38 39.38 N/A
RAR/MaxDD 102.99 102.99 N/A
Profit Factor 1.91 1.91 N/A
Payoff Ratio 2.16 2.16 N/A
Standard Error 3868.63 3868.63 0.00
Risk-Reward Ratio 10.09 10.09 N/A
Ulcer Index 1.55 1.55 0.00
Ulcer Performance Index 182.32 182.32 N/A
Sharpe Ratio of trades 4.39 4.39 0.00
K-Ratio 0.0221 0.0221 -1.#IND

Интервал 1 минута (Long 

Cделок 1704, прибыльных 46%, прибыль 494%, максимальная просадка 17.8%

Величина комиссионных составила 136%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 59498.94 59498.94 10000.00
Net Profit 49498.94 49498.94 0.00
Net Profit % 494.99 % 494.99 % 0.00 %
Exposure % 40.07 % 40.07 % 0.00 %
Net Risk Adjusted Return % 1235.22 % 1235.22 % N/A
Annual Return % 333.21 % 333.21 % 0.00 %
Risk Adjusted Return % 831.52 % 831.52 % N/A

 
All trades 1704 1704 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 29.05 29.05 N/A
 Avg. Profit/Loss % 0.29 % 0.29 % N/A
 Avg. Bars Held 72.53 72.53 N/A

 
Winners 775 (45.48 %) 775 (45.48 %) 0 (0.00 %)
 Total Profit 115466.38 115466.38 0.00
 Avg. Profit 148.99 148.99 N/A
 Avg. Profit % 1.49 % 1.49 % N/A
 Avg. Bars Held 83.58 83.58 N/A
 Max. Consecutive 10 10 0
 Largest win 5951.52 5951.52 0.00
 # bars in largest win 60 60 0

 
Losers 929 (54.52 %) 929 (54.52 %) 0 (0.00 %)
 Total Loss -65967.45 -65967.45 0.00
 Avg. Loss -71.01 -71.01 N/A
 Avg. Loss % -0.71 % -0.71 % N/A
 Avg. Bars Held 63.31 63.31 N/A
 Max. Consecutive 10 10 0
 Largest loss -1717.61 -1717.61 0.00
 # bars in largest loss 22 22 0

 
Max. trade drawdown -1791.21 -1791.21 0.00
Max. trade % drawdown -17.87 % -17.87 % 0.00 %
Max. system drawdown -3921.27 -3921.27 0.00
Max. system % drawdown -7.10 % -7.10 % 0.00 %
Recovery Factor 12.62 12.62 N/A
CAR/MaxDD 46.92 46.92 N/A
RAR/MaxDD 117.08 117.08 N/A
Profit Factor 1.75 1.75 N/A
Payoff Ratio 2.10 2.10 N/A
Standard Error 6352.91 6352.91 0.00
Risk-Reward Ratio 7.84 7.84 N/A
Ulcer Index 1.78 1.78 0.00
Ulcer Performance Index 184.08 184.08 N/A
Sharpe Ratio of trades 4.53 4.53 0.00
K-Ratio 0.0077 0.0077 -1.#IND

Интервал 10 минут ( LONG и SHORT ) 

Cделок 1437, прибыльных 59%,  

прибыль 834% (Long 334%,Short- 500%)

Максимальная просадка 21%

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 93462.73 43451.40 60011.33
Net Profit 83462.73 33451.40 50011.33
Net Profit % 834.63 % 334.51 % 500.11 %
Exposure % 32.95 % 26.38 % 6.56 %
Net Risk Adjusted Return % 2533.12 % 1267.84 % 7619.08 %
Annual Return % 527.96 % 234.57 % 336.28 %
Risk Adjusted Return % 1602.39 % 889.04 % 5123.10 %

 
All trades 1437 719 (50.03 %) 718 (49.97 %)
 Avg. Profit/Loss 58.08 46.52 69.65
 Avg. Profit/Loss % 0.58 % 0.47 % 0.70 %
 Avg. Bars Held 10.10 15.82 4.37

 
Winners 847 (58.94 %) 339 (23.59 %) 508 (35.35 %)
 Total Profit 130949.48 72313.61 58635.88
 Avg. Profit 154.60 213.31 115.42
 Avg. Profit % 1.55 % 2.14 % 1.16 %
 Avg. Bars Held 10.62 19.50 4.70
 Max. Consecutive 13 8 20
 Largest win 2151.76 2151.76 1672.94
 # bars in largest win 14 14 9

 
Losers 590 (41.06 %) 380 (26.44 %) 210 (14.61 %)
 Total Loss -47486.76 -38862.20 -8624.55
 Avg. Loss -80.49 -102.27 -41.07
 Avg. Loss % -0.81 % -1.03 % -0.41 %
 Avg. Bars Held 9.35 12.54 3.57
 Max. Consecutive 6 9 4
 Largest loss -1352.21 -1352.21 -1244.01
 # bars in largest loss 31 31 3

 
Max. trade drawdown -2372.15 -1669.93 -2372.15
Max. trade % drawdown -21.32 % -16.70 % -21.32 %
Max. system drawdown -2188.48 -3052.49 -2913.87
Max. system % drawdown -4.16 % -9.96 % -8.38 %
Recovery Factor 38.14 10.96 17.16
CAR/MaxDD 126.94 23.56 40.11
RAR/MaxDD 385.27 89.28 611.13
Profit Factor 2.76 1.86 6.80
Payoff Ratio 1.92 2.09 2.81
Standard Error 6529.57 2542.55 4083.48
Risk-Reward Ratio 10.86 11.29 10.34
Ulcer Index 0.69 1.74 0.89
Ulcer Performance Index 754.45 131.43 373.30
Sharpe Ratio of trades 8.70 4.58 24.07
K-Ratio 0.0333 0.0347 0.0317