Моделируем лимитированную сделку в Амиброкер

8 августа, 2010

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

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

Однако, в Амиброкере можно смоделировать и лимитированный ордер.

Вот один из вариантов моделирования сделки по заданной цене:

Допустим, мы хотим купить или продать  по цене Price , определенной в момент i,

Для совершения сделки со следующего бара,  надо в цикле с начала

установить условие исполнения сделки, а затем определить цену Price :

Примерно так:

В начале программы

Price=0;  //начальное условие цена сделки равна нулю, если заявки нет

….

В цикле пишем условие совершения сделки следующим образом:

Buy[i]=Buy[i-1]; Sell[i]=Sell[i-1];  BuyPrice[i]=BuyPrice[i-1]; SellPrice[i]=SellPrice[i-1];

if (  Price>=Low[i]  AND High[i]>=Price AND Buy[i]==0  ) { Buy[i]=1; BuyPrice[i]=Price; Price=0; Sell[i]=0;  }  //покупка

if (  Price>=Low[i]  AND High[i]>=Price AND Sell[i]==0 ) { Sell[i]=1; SellPrice[i]=Price; Price=0; Buy[i]=0;  }  //продажа

Таким образом, если указанная Вами цена сделки попадает в диапазон

свечи, то сделка исполнится по заданной цене Price.

Далее следует правило определения цены Price

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

формирования заявки на сделку, т.е. установки Price.

Более сложный алгоритм предполагает учет объема свечи.

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

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

Попробую объяснить.
Есть две реалии:
1)  Торговля  на реальном счете. В этом случая я часто использую рыночную заявку .
2) Тестирование различных моделей торговых систем на  истории.
В действительности сделки на исторических данных получаются всегда по определенной цене и строго говоря  относятся к лимитированным.
Даже, если не реализовывать алгоритм, который  я написал ранее , сделки будут совершаться по вполне определенной цене Low,High,Open,close, по крайней мере в Амиброкере.
В  МТ4 есть возможность моделировать рыночные сделки, а в Амиброкер такой возможности нет
Поэтому системы, результаты которых я привожу в Амиброкере всегда реализуют лимированную заявку.

РОБОТ или ЧЕЛОВЕК для меня ответ очевиден, а для Вас?

8 августа, 2010

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

Предлагаю Вашему вниманию результаты тестирования торговой системы.

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

Скептики скажут, что это не реальный счет, а исторические данные.

Но, никто и не говорит обратное.

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

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

Исходные условия:

Система работает на временных интервалах от 5 до 60 минут.

Результаты не сильно отличаются.

В системе нет подгоняемых параметров.

Для определенности возьмем тайм фрейм 10 минут.

Система работает по неизменному алгоритму на интервале от 2007 года по настоящее время.

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

Депозит 10 000 рублей.  Комиссия брокера 0.03%

Торгуем акциями Сбербанка.

На рис приведены сигналы системы  с 30 июля по 7 августа текущего года.

За период с 1.01.2010 по 07.08.2010 система совершила 773 сделки, из них прибыльных 40%.

Прибыль составила 69%.

Максимальная просадка составила 4%.

Интересен результат торговли системы за период с 2007 по н.в.

Т.е. начало торговли до кризиса.

Система совершила 4146 сделок, из них прибыльных 40%

Прибыль составила 590%.

Максимальная просадка составила 14%.

На рисунки приведен график цены и прибыльности системы

Серым цветом отображена величина депозита, зеленым – свободная прибыль системы.