Продолжается испытания Робота Вася.

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

РоботВася не пользует  Фибо и фильтр  КАМА.

Добавлены объемы.

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

январь 2012 прибыль 6.6%  просадка 3.6%
февраль  2012 прибыль 10.6% просадка 4.2%
март 2012 прибыль 15.8%  просадка 4.7%
апрель  2012 прибыль 34.8% просадка  2.6%

 За 2011 год  прибыль 240% просадка 6%
За период с 01.01.2007  по 01.01.2012 Прибыль  составила 1262%, а максимальная просадка составила до 40% внутри тренда и  до 12% по графику прибыли на всем интервале.
Ниже приведены более подробные результаты:

Январь 2012            All trades      Long trades Short trades
Net Profit %                       6.64 %                     9.14 %                     -2.50 %
Exposure %                        87.30 %                   52.34 %                   34.96 %


All trades                           25                             12 (48.00 %)           13 (52.00 %)
Avg. Profit/Loss %         0.27 %                     0.77 %                     -0.19 %


Winners                           12 (48.00 %)           7 (28.00 %)             5 (20.00 %)
Avg. Profit %                          1.25 %                     1.83 %                     0.44 %
Max. Consecutive                 4                               3                               2
# bars in largest win             244                          244                           61


Losers                                 13 (52.00 %)           5 (20.00 %)             8 (32.00 %)
Avg. Loss %                           -0.64 %                    -0.71 %                    -0.59 %
Max. Consecutive                   3                               2                               3
# bars in largest loss                24                             24                             63


Max. trade % drawdown             -2.80 %                    -2.80 %                    -1.59 %
Max. system % drawdown          -3.59 %                    -4.25 %                    -3.10 %
Recovery Factor                          1.80                         2.07                          -0.80
Profit Factor                                   1.80                         3.56                          0.47
Payoff Ratio                                  1.95                         2.55                          0.75
Sharpe Ratio of trades                3.59                         7.51                          -7.45
K-Ratio                                       0.0327                     0.0359                     -0.0108
 Февраль 2012                    All trades      Long trades Short trades
Net Profit %                                 10.61 %                   10.99 %                   -0.38 %
Exposure %                                 93.51 %                   47.95 %                   45.57 %


All trades                          30                             15 (50.00 %)           15 (50.00 %)
Avg. Profit/Loss %           0.35 %                     0.73 %                     -0.03 %


Winners                      17 (56.67 %)           11 (36.67 %)           6 (20.00 %)
Avg. Profit %                      1.11 %                     1.30 %                     0.78 %
Max. Consecutive                     9                               7                               4
# bars in largest win              185                          185                           163


Losers                       13 (43.33 %)           4 (13.33 %)             9 (30.00 %)
Avg. Loss %                   -0.64 %                    -0.81 %                    -0.56 %
Max. Consecutive                     4                               2                               3
# bars in largest loss               25                             25                             106


Max. trade % drawdown          -1.97 %                    -1.97 %                    -1.65 %
Max. system % drawdown       -4.22 %                    -2.44 %                    -3.09 %
Profit Factor                                   2.28                         4.38                          0.93
Payoff Ratio                                      1.74                         1.59                          1.39
Ulcer Index                                      1.59                         0.89                          1.52
Sharpe Ratio of trades                   6.25                         11.78                        -0.99
K-Ratio                                          0.0408                     0.0560                     0.0088

 Март 2012               All trades      Long trades Short trades
Net Profit %                           15.79 %                   5.91 %                     9.88 %
Exposure %                             92.57 %                   41.49 %                   51.08 %


All trades                             29                       14 (48.28 %)           15 (51.72 %)
Avg. Profit/Loss %              0.54 %                     0.42 %                     0.66 %


Winners                      14 (48.28 %)           9 (31.03 %)             5 (17.24 %)
Avg. Profit %                   1.79 %                     1.14 %                     2.96 %
Max. Consecutive                   3                               5                               1
# bars in largest win              328                          76                             328


Losers                                15 (51.72 %)           5 (17.24 %)             10 (34.48 %)
Avg. Loss %                         -0.62 %                    -0.87 %                    -0.49 %
Max. Consecutive                 5                               4                               2
# bars in largest loss               25                             25                             41


Max. trade % drawdown         -2.77 %              -2.77 %                    -1.33 %
Max. system % drawdown     -4.72 %             -4.10 %                    -2.33 %
Profit Factor                                  2.70                     2.36                          3.00
Payoff Ratio                                    2.89                   1.31                          6.00
Ulcer Performance Index       333.35                54.87                        311.00
Sharpe Ratio of trades                6.20                   6.92                          6.07
K-Ratio                                         0.0537                0.0281                     0.0568

 Апрель 2012             All trades            Long trades           Short trades
Net Profit %                            34.82 %                   16.95 %                   17.87 %
Exposure %                          85.49 %                   45.62 %                   39.87 %


All trades                             33                             17 (51.52 %)           16 (48.48 %)
Avg. Profit/Loss %            1.06 %                     1.00 %                     1.12 %


Winners                             26 (78.79 %)           15 (45.45 %)           11 (33.33 %)
Avg. Profit %                         1.47 %                     1.21 %                     1.81 %
Max. Consecutive                   11                             7                               5
# bars in largest win               366                          101                           366


Losers                                  7 (21.21 %)             2 (6.06 %)                5 (15.15 %)
Avg. Loss %                            -0.48 %                    -0.63 %                    -0.42 %
Max. Consecutive                 3                               1                               2
# bars in largest loss             12                             21                             12


Max. trade % drawdown           -1.62 %                    -1.12 %                    -1.62 %
Max. system % drawdown       -2.57 %                    -1.85 %                    -1.63 %
Recovery Factor                            11.67                       8.42                          9.36
Profit Factor                                     11.41                       14.35                        9.61
Payoff Ratio                                   3.07                         1.91                          4.37
Sharpe Ratio of trades                 17.20                       21.25                        15.41
K-Ratio                                       0.1793                     0.1249                     0.1391
 2011 год                    All trades                 Long trades            Short trades
Net Profit %                       240.93 %                  111.69 %                  129.25 %
Exposure %                     60.84 %                    27.48 %                    33.37 %
Annual Return %           255.45 %                  117.15 %                  135.80 %


All trades                       319                            160 (50.16 %)          159 (49.84 %)
Avg. Profit/Loss %           0.76 %                      0.70 %                       0.81 %


Winners                      157 (49.22 %)          85 (26.65 %)            72 (22.57 %)
Avg. Profit %                     2.24 %                      1.99 %                       2.54 %
Max. Consecutive              9                                7                                 8
# bars in largest win             328                            90                              328


Losers                        162 (50.78 %)          75 (23.51 %)            87 (27.27 %)
Avg. Loss %                      -0.68 %                     -0.76 %                     -0.61 %
Max. Consecutive                 12                              7                                 6
# bars in largest loss          27                              27                              10


Max. trade % drawdown      -5.55 %                     -5.55 %                     -3.83 %
Max. system % drawdown       -6.09 %                     -6.86 %                     -4.20 %
Recovery Factor                     27.50                        11.42                         16.08
Profit Factor                            3.18                           2.95                           3.42
Payoff Ratio                               3.28                           2.60                           4.14
Sharpe Ratio of trades             5.83                           6.41                           5.42
K-Ratio                                    0.0195                      0.0159                       0.0211

История 2007-2011 гг
All trades                 Long trades            Short trades
Net Profit %                       1262.82 %               678.15 %                  584.67 %
Exposure %                      22.90 %                    11.55 %                    11.35 %


All trades                        1439                         720 (50.03 %)          719 (49.97 %)
Avg. Profit/Loss %         0.88 %                      0.94 %                       0.81 %


Winners                        688 (47.81 %)          375 (26.06 %)          313 (21.75 %)
Avg. Profit %                   2.89 %                      2.86 %                       2.92 %
Max. Consecutive              17                              17                              11
# bars in largest win        181                            181                            96


Losers                           751 (52.19 %)          345 (23.97 %)          406 (28.21 %)
Avg. Loss %                  -0.96 %                     -1.14 %                     -0.81 %
Max. Consecutive             9                                6                                 9
# bars in largest loss          541                            541                            44


Max. trade % drawdown     -41.27 %                   -41.27 %                   -15.84 %
Max. system % drawdown       -12.45 %                   -20.91 %                   -8.63 %
CAR/MaxDD                               5.52                           2.43                           5.45
RAR/MaxDD                           24.11                        21.05                         47.99
Profit Factor                           2.75                           2.73                           2.78
Payoff Ratio                               3.00                           2.51                           3.60
Risk-Reward Ratio                2.58                           2.90                           1.98
Ulcer Index                              1.66                           2.28                           2.08
Sharpe Ratio of trades         4.04                           4.13                           3.95
K-Ratio                                   0.0110                      0.0124                       0.0085

Встроенный в торговый терминал QUIK интерпретатор языка QPILE имеет одно несомненное преимущество – прямой и простой доступ ко всей торговой информации.

В остальном же, язык программирования QPILE имеет множество ограничений.

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

Кроме того, так как интерпретатор работает с текстом программы, то скорость исполнения программы в десятки и сотни раз меньше, чем скорость исполнения машинного кода.

Указанные ограничения  создают определенную специфику написания программ на QPILE.

Если Вы освоите эту специфику, то сможете создавать торговых роботов на QPILE быстро, а работать они будут шустро.

Язык QPILE , среди современных языков программирования  —  это нечто  подобное ненормативной лексики в русском языке.

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

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

Я расскажу лишь некоторые приемы программирования на QPILE. По мере освоения языка, вы сами сможете развить их множество.

И так , начнем .

Все начинают с функций обработки даты и времени.

При этом рекомендую считать, что в любом месяце 31 день.

Это допущение существенно  упрощает функции  расчета даты, так как если полученной даты не существует, то нет и торгов:

Т е программы получаются проще и никаких проблем не возникает.

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

Дело в том, что понятие функций в языках программирования введено для экономии памяти, занимаемой программами и переменными. Для экономии памяти под переменные в других языках используется передача их в функцию через стек. Но в интерпретаторе QPILE этот механизм отсутствует. Поэтому применение функций в программе на QPILE лишь замедляет ее исполнение.

Для справки:

     ОГРАНИЧЕНИЯ QPILE
————————
Ограничение по количеству переменных составляет 1000.Каждый параметр функции задает переменную, которая занимает память в течение одной итерации, данные переменные не отображаются в окне отладчика, количество функций не ограничено.
Если функция не используется — переменные места не занимают и не создаются. Ограничение действует в рамках одного портфеля. Ограничений на размер подключаемых файлов нет.
1. Максимальное количество функций 150.
2. Максимальная глубина рекурсии 25, максимальное количество переменных 1000. Размер кода портфеля не ограничен.
3. Максимальное количество аргументов 8.
4. Максимальная длина строки 2000 символов.
Ограничение длины строковой переменной составляет 600 кбайт, данное ограничение распространяется на коллекции и ассоциативные массивы. Ограничение 2000 символов — это ограничение на длину строки в коде портфеля QPILE, которую считывает интерпретатор.
5. Длина названия переменной ограничена только максимальной длиной строки.

~~~~~~~~~~~~~~~~~~~~~~~~~

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

Работа интерпретатора QPILE организована таким образом, что программа робота циклически исполняется через заданный в параметре “время расчета “  интервал.

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

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

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

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

Теперь посмотрим, как это сделать.

Во-первых, нам надо обнаружить появление новой свечи.

Для этого, определим переменную , которая будет хранить время последней прочитанной свечи и используем функцию чтения свечи с графика, которому присвоим идентификатор “GRAF”.

Алгоритм наших действий сведется к следующему.

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

Для фьючерсов и акций надо прочитать различные параметры, поэтому в зависимости о того, что у нас фьючерс или акция , определяем имя времени последней сделки

NEW_GLOBAL(T_LAST,0)  ‘время последней свечи на графике

~~~~~~~~~~~~~~

x=GET_TRADE_DATE ()                                                                ‘дата торговой сессии

D= SUBSTR (x,6,4) + SUBSTR (x,3,2) + SUBSTR (x,0,2)     ‘дата в формате YYYYMMDD‘

~~~~~~~~~~~~~~

_4=»TIME»                                        ‘время последней сделки для акции

IF FIND(CLASSCODE,0,»FUT»)  >=0

_4=»CHANGETIME»                       ‘время последней сделки для фьючерса

END IF

T=GET_VALUE(GET_PARAM_EX(CLASSCODE,SECCODE,_4),»param_value»)         ‘время последней сделки

cnd=GET_CANDLE_EX(“GRAF”,D,T)   ‘читаем график с идентификатором  “GRAF”

T=Get_Value (cnd,»TIME»)              ‘читаем время свечи на графике

if cnd !=»» AND T-T_Last!=0

T_Last=T

…..

‘ здесь размещаем операторы программы, которые надо исполнять при появлении новой свечи

…..

END IF

Результаты тестирования робота за период 2007-2011 гг.

График

Синия линия — стратегия «купил и держи»

Таблица
All trades                 Long trades            Short trades
Net Profit %              559.13 %                  326.26 %                  232.87 %
Exposure %              40.65 %                22.09 %                 18.56 %


All trades      1543                  772 (50.03 %)          771 (49.97 %)
Avg. Profit/Loss %        0.36 %              0.42 %                    0.30 %


Winners          605 (39.21 %)       310 (20.09 %)        295 (19.12 %)
Avg. Profit %             2.82 %                  2.89 %                  2.74 %
Max. Consecutive           7                       6                       9
# bars in largest win         13                     13                    83


Losers      938 (60.79 %)        462 (29.94 %)      476 (30.85 %)
Avg. Loss %            -1.22 %              -1.23 %             -1.21 %
Max. Consecutive            11                 10                    17
# bars in largest loss       172               172                   148


Max. trade % drawdown        -38.25 %            -38.25 %                -24.23 %
Max. system % drawdown        -27.82 %       -26.16 %                   -22.13 %
Recovery Factor            9.64               7.22                           3.80
Profit Factor               1.49              1.57                           1.41
Payoff Ratio                2.31              2.34                           2.27
Risk-Reward Ratio           1.95            2.17                           1.17
Ulcer Performance Index      7.11            6.28                           1.98
Sharpe Ratio of trades       1.69             1.73                           1.64