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

             В данной статье приведены результаты тестирования стратегии торговли на основе пробоя уровней сопротивления и поддержки.  Реализованный алгоритм не имеет параметров для оптимизации, поэтому на данной акции он не настраивался.

В качестве теста взята простая акция Сбербанка в период с 2 февраля 2010 года по 25 февраля 2010 года и с 25 февраля 2010 года по 5 марта 2010 года.

            Торговля только в Long и с постоянной величиной капитала в 10000 рублей.

Максимальное число открываемых позиций равно 1. Комиссионный сбор брокера 0.04%.

Период с 2 февраля 2010 года по 25 февраля 2010 года

 

 

 

 

 

 

 

Результаты тестирования акции Сбербанка в период с 2 февраля 2010 года по 25 февраля 2010 года

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 9851.33 9851.33 10000.00
Net Profit -148.67 -148.67 0.00
Net Profit % -1.49 % -1.49 % 0.00 %
Exposure % 61.99 % 61.99 % 0.00 %
Net Risk Adjusted Return % -2.40 % -2.40 % N/A
Annual Return % -21.16 % -21.16 % 0.00 %
Risk Adjusted Return % -34.13 % -34.13 % N/A

 
All trades 37 37 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss -4.02 -4.02 N/A
 Avg. Profit/Loss % -0.04 % -0.04 % N/A
 Avg. Bars Held 5.59 5.59 N/A

 
Winners 17 (45.95 %) 17 (45.95 %) 0 (0.00 %)
 Total Profit 1509.64 1509.64 0.00
 Avg. Profit 88.80 88.80 N/A
 Avg. Profit % 0.90 % 0.90 % N/A
 Avg. Bars Held 6.71 6.71 N/A
 Max. Consecutive 4 4 0
 Largest win 272.84 272.84 0.00
 # bars in largest win 4 4 0

 
Losers 20 (54.05 %) 20 (54.05 %) 0 (0.00 %)
 Total Loss -1658.31 -1658.31 0.00
 Avg. Loss -82.92 -82.92 N/A
 Avg. Loss % -0.84 % -0.84 % N/A
 Avg. Bars Held 4.65 4.65 N/A
 Max. Consecutive 5 5 0
 Largest loss -342.82 -342.82 0.00
 # bars in largest loss 9 9 0

 
Max. trade drawdown -374.85 -374.85 0.00
Max. trade % drawdown -3.76 % -3.76 % 0.00 %
Max. system drawdown -575.19 -575.19 0.00
Max. system % drawdown -5.60 % -5.60 % 0.00 %
Recovery Factor -0.26 -0.26 N/A
CAR/MaxDD -3.78 -3.78 N/A
RAR/MaxDD -6.10 -6.10 N/A
Profit Factor 0.91 0.91 N/A
Payoff Ratio 1.07 1.07 N/A
Standard Error 144.55 144.55 0.00
Risk-Reward Ratio -1.61 -1.61 N/A
Ulcer Index 2.74 2.74 0.00
Ulcer Performance Index -9.70 -9.70 N/A
Sharpe Ratio of trades -1.07 -1.07 0.00
K-Ratio -0.0018 -0.0018 -1.#IND

На первом интервале цена акции упала с 89.60 руб до  73.28 рублей, что составило 18% от максимального значения. 

Торговая система совершила 37 сделок и получила убыток  1.5%.

 Период  с 25 февраля 2010 года по 5 марта 2010 года

Результаты тестирования акции Сбербанка в период с 25 февраля 2010 года по 5 марта 2010 года

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 11288.25 11288.25 10000.00
Net Profit 1288.25 1288.25 0.00
Net Profit % 12.88 % 12.88 % 0.00 %
Exposure % 50.01 % 50.01 % 0.00 %
Net Risk Adjusted Return % 25.76 % 25.76 % N/A
Annual Return % 25081.50 % 25081.50 % 0.00 %
Risk Adjusted Return % 50156.48 % 50156.48 % N/A

 
All trades 20 20 (100.00 %) 0 (0.00 %)
 Avg. Profit/Loss 64.41 64.41 N/A
 Avg. Profit/Loss % 0.65 % 0.65 % N/A
 Avg. Bars Held 4.60 4.60 N/A

 
Winners 12 (60.00 %) 12 (60.00 %) 0 (0.00 %)
 Total Profit 1694.92 1694.92 0.00
 Avg. Profit 141.24 141.24 N/A
 Avg. Profit % 1.42 % 1.42 % N/A
 Avg. Bars Held 4.92 4.92 N/A
 Max. Consecutive 6 6 0
 Largest win 305.65 305.65 0.00
 # bars in largest win 9 9 0

 
Losers 8 (40.00 %) 8 (40.00 %) 0 (0.00 %)
 Total Loss -406.67 -406.67 0.00
 Avg. Loss -50.83 -50.83 N/A
 Avg. Loss % -0.51 % -0.51 % N/A
 Avg. Bars Held 4.13 4.13 N/A
 Max. Consecutive 2 2 0
 Largest loss -100.74 -100.74 0.00
 # bars in largest loss 4 4 0

 
Max. trade drawdown -135.55 -135.55 0.00
Max. trade % drawdown -1.36 % -1.36 % 0.00 %
Max. system drawdown -174.87 -174.87 0.00
Max. system % drawdown -1.57 % -1.57 % 0.00 %
Recovery Factor 7.37 7.37 N/A
CAR/MaxDD 15929.68 15929.68 N/A
RAR/MaxDD 31855.22 31855.22 N/A
Profit Factor 4.17 4.17 N/A
Payoff Ratio 2.78 2.78 N/A
Standard Error 125.44 125.44 0.00
Risk-Reward Ratio 557.02 557.02 N/A
Ulcer Index 0.55 0.55 0.00
Ulcer Performance Index 45761.27 45761.27 N/A
Sharpe Ratio of trades 21.65 21.65 0.00
K-Ratio 0.3011 0.3011 -1.#IND

 

На втором интервале цена акций выросла с 73.28 рублей до 86.97 рублей, что составило рост к последней цене 15.74%. По отношению к максимальной цене двух периодов конечная цена меньше на 2.93%.

Торговая система совершила 20 сделок и получила прибыль   12.88%.

 

В итоге на интервале с 2 февраля 2010 года по 5 марта 2010 года система получила прибыль в 11.38%. Стратегия “Купил и держи” дала бы убыток в 2.93%.

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

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

  All trades Long trades Short trades
Initial capital 10000.00 10000.00 10000.00
Ending capital 12085.75 11146.00 10939.75
Net Profit 2085.75 1146.00 939.75
Net Profit % 20.86 % 11.46 % 9.40 %
Exposure % 91.35 % 54.49 % 36.85 %
Net Risk Adjusted Return % 22.83 % 21.03 % 25.50 %
Annual Return % 830.48 % 258.75 % 187.93 %
Risk Adjusted Return % 909.16 % 474.84 % 509.92 %

 
All trades 108 54 (50.00 %) 54 (50.00 %)
 Avg. Profit/Loss 19.31 21.22 17.40
 Avg. Profit/Loss % 0.19 % 0.21 % 0.17 %
 Avg. Bars Held 4.63 5.31 3.94

 
Winners 56 (51.85 %) 28 (25.93 %) 28 (25.93 %)
 Total Profit 5251.41 3118.97 2132.43
 Avg. Profit 93.78 111.39 76.16
 Avg. Profit % 0.94 % 1.12 % 0.76 %
 Avg. Bars Held 4.98 6.04 3.93
 Max. Consecutive 6 6 11
 Largest win 305.65 305.65 242.01
 # bars in largest win 9 9 2

 
Losers 52 (48.15 %) 26 (24.07 %) 26 (24.07 %)
 Total Loss -3165.65 -1972.97 -1192.69
 Avg. Loss -60.88 -75.88 -45.87
 Avg. Loss % -0.61 % -0.76 % -0.46 %
 Avg. Bars Held 4.25 4.54 3.96
 Max. Consecutive 5 5 6
 Largest loss -342.82 -342.82 -121.48
 # bars in largest loss 9 9 4

 
Max. trade drawdown -374.85 -374.85 -288.12
Max. trade % drawdown -3.76 % -3.76 % -2.83 %
Max. system drawdown -568.48 -575.43 -402.23
Max. system % drawdown -5.10 % -5.59 % -3.55 %
Recovery Factor 3.67 1.99 2.34
CAR/MaxDD 162.75 46.26 52.99
RAR/MaxDD 178.17 84.90 143.79
Profit Factor 1.66 1.58 1.79
Payoff Ratio 1.54 1.47 1.66
Standard Error 206.37 274.74 181.44
Risk-Reward Ratio 111.32 34.94 73.71
Ulcer Index 1.62 2.48 1.38
Ulcer Performance Index 509.86 102.17 132.14
Sharpe Ratio of trades 6.12 5.18 7.87
K-Ratio 0.1379 0.0433 0.0913

В этом случае прибыль системы составила 20.86% ( LONG — 11.46% , SHORT-  9.4%).

 

Tags: ,

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

 Определение интервала на графике реализуется по следующему алгоритму
Читается свеча по заданной дате и времени.
После этого время изменяется ( увелич или уменьшается) и читается следубшая свеча до тех пор пока время первой свечи и новой совпадают
При несовпадении Интервал равен разности времени новой свечи и первой.

FUNC  FIND_INTERVAL( ) ‘определение интервала на графике
   TEMP=start_time ‘ время начала сессии
     DATEBar=DateTrade ‘дата торгов
 FOR _J FROM 1 TO 240 ‘ поиск правой свечи от времени start_time
  MAP=Get_Candle_Ex (NameS,DATEBar,TEMP)
  IF MAP !=»»
  TEMP=0+GET_VALUE(MAP, «TIME») ‘время первой свечи
   IF TEMP==0
   INTERVAL_G=1440
   RETURN
   END IF
  BREAK
  END IF
  IncTIME(1) ‘время для графика смещаем на 1 мин вперед
  IF TEMP>stop_time
  INTERVAL_G=0
  RETURN
  END IF
  END FOR
‘——————
  HHMMSS_TO_MIN_SEC(TEMP)  ‘время в минуты’
    T0=MIN2 ‘ время в минуты
 FOR _J FROM 1 TO 240
    IncTIME(1) ‘время для графика смещаем на 1 мин вперед
  IF TEMP>Time_Last ‘ выход из цикла.время больше, чем время последней сделки
   INTERVAL_G=0  ‘ только один бар’
   RETURN
        END IF
 T1=0+GET_VALUE(Get_Candle_Ex (NameS,DATEBar,TEMP), «TIME») ‘время второй свечи
 HHMMSS_TO_MIN_SEC(T1) 
 T1=MIN2-T0 ‘ время в минуты
  IF T1>0 ‘ нашли интервал
   INTERVAL_G=T1  ‘ интервал графика в минутах
   RETURN
  END IF
 END FOR
END FUNC

Tags: ,

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

FUNC SERV_INFO()                                     ‘ параметры связи

SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)             ‘время сервера

LASTRECORDTIME=GET_INFO_PARAM(«LASTRECORDTIME»)     ‘время последней записи

LOCALTIME=GET_INFO_PARAM(«LOCALTIME»)               ‘локальное время

NUMRECORDS=GET_INFO_PARAM(«NUMRECORDS»)             ‘Число записей

LASTRECORD=GET_INFO_PARAM(«LASTRECORD»)             ‘Последняя запись

LATERECORD =GET_INFO_PARAM(«LATERECORD»)            ‘Отставшая запись

CONNECTION=GET_INFO_PARAM(«CONNECTION»)             ‘Соединение

SESSIONID=GET_INFO_PARAM(«SESSIONID»)               ‘Идентификатор сессии

USERID=GET_INFO_PARAM(«USERID»)                     ‘ID пользователя

LASTPINGDURATION=GET_INFO_PARAM(«LASTPINGDURATION») ‘Задержка данных при обмене с сервером

AVGPINGDURATION=GET_INFO_PARAM(«AVGPINGDURATION»)   ‘Средняя задержка данных

AVGSENT=GET_INFO_PARAM(«AVGSENT»)                   ‘Средняя скорость передачи

LASTPINGTIME=GET_INFO_PARAM(«CONNECTIONTIME»)       ‘Время последней проверки связи

CONNECTIONTIME=GET_INFO_PARAM(«CONNECTIONTIME»)     ‘Время на связи

END FUNC

Tags: ,