Торговая система Luxor

Описание системы

Luxor – торговая система, описанная в книге [JaekleTomasini2009]. Авторы используют две скользящие средние с периодами 3 и 30 (для 30-минуток GBP/USD).

Длинная позиция открывается (и закрывается короткая) ордером buy stop на 1 пункт выше хая сигнальной свечи (но не выше 5 пунктов). Сигнальная свеча – на которой быстрая скользящая средняя пересекла медленную снизу вверх.

Короткая позиция открывается (и закрывается длинная) ордером sell stop на 1 пункт ниже лоу сигнальной свечи (но не ниже 5 пунктов). Сигнальная свеча – на которой быстрая скользящая средняя пересекла медленную сверху вниз.

Скрипт для Zorro

Текст программы на языке Lite-C для Zorro:

#include <profile.c>     // Подключили заголовочный файл для plotMonthProfit().

function run() {
  StartDate = 20021021;  // Начальная дата для тестового периода, указанного в книге.
  EndDate = 20080704;    // Конечная дата.
  BarPeriod = 30;        // Таймфрейм M30.
  LookBack = 30;         // Расчёт индикаторов требует максимум 30 баров истории.
  asset("GBP/USD");      // Торгуем фунт.
  Hedge = 1;             // Автоматически закрывать противоположный ордер.

  // В книге результаты теста приведены для случая с нулевыми издержками.
  Spread = 0;  // Спред.
  Slippage = 0;  // Проскальзывание.
  RollLong = RollShort = 0;   // Ролловер за перенос позиций через ночь.

  vars Price = series(priceClose()),  // Серия цен закрытия.
       Fast = series(SMA(Price,3)),   // Серия значений быстрой скользящей средней.
       Slow = series(SMA(Price,30));  // Серия значений медленной скользящей средней.

  static var BuyLimit, SellLimit, BuyStop, SellStop; // Уровни для открытия ордеров.

  if(crossOver(Fast, Slow)) {   // Если быстрая средняя пересекла медленную вверх.
    BuyStop = priceHigh() + 1*PIP;   // На 1 пункт выше хая свечи.
    BuyLimit = priceHigh() + 5*PIP;  // Но не выше, чем на 5 пунктов.
  }
  if(crossUnder(Fast, Slow)) {  // Если быстрая средняя пересекла медленную вниз.
    SellStop = priceLow() - 1*PIP;   // На 1 пункт ниже лоу свечи.
    SellLimit = priceLow() - 5*PIP;  // Но не ниже, чем на 5 пунктов.
  }

  if(!NumOpenLong && Fast[0] > Slow[0] && Price[0] < BuyLimit)
    enterLong(1, BuyStop);    // Стоп-ордер на покупку.
  if(!NumOpenShort && Fast[0] < Slow[0] && Price[0] > SellLimit)
    enterShort(1, SellStop);  // Стоп-ордер на продажу.

  PlotWidth = 1000; // Ширина графика для отчёта.
  plot("MA1", Fast, 0, LIGHTBLUE); // Быстрая скользящая средняя поверх цены.
  plot("MA2", Slow, 0, DARKBLUE);  // Медленная скользящая средняя поверх цены.
  plotMonthProfit();               // Гистограмма помесячной прибыли.
}

Результаты тестирования

Результаты теста (рис.1):

BackTest Luxor GBP/USD - performance report

Test period         21.10.2002-04.07.2008
Monte Carlo cycles  200
Lookback time       30 bars (15 hours)
Assumed slippage    0.0 sec
Spread              0.0 pips (roll 0.00/0.00)
Contracts per lot   1000.0

Gross win/loss      5294$ / -4491$ (+10035p)
Average profit      141$/year, 12$/month, 0.54$/day
Max drawdown        -133$ 17% (MAE -137$ 17%)
Total down time     86% (TAE 94%)
Max down time       40 weeks from Oct 2004
Largest margin      7.00$
Trade volume        3575588$ (626678$/year)
Transaction costs   0.00$ spr, 0.00$ slp, 0.00$ rol
Capital required    104$

Number of trades    2442 (428/year, 9/week, 2/day)
Percent winning     34%
Max win/loss        45$ / -20$
Avg trade profit    0.33$ 4.1p (+79.6p / -34.8p)
Avg trade slippage  0.00$ 0.0p (+0.0p / -0.0p)
Avg trade bars      29 (+53 / -16)
Max trade bars      177 (3 days)
Time in market      104%
Max open trades     1
Max loss streak     22 (uncorrelated 20)

Annual return       136%
Profit factor       1.18 (PRR 1.11)
Sharpe ratio        1.19
Kelly criterion     1.04
R2 coefficient      0.953
Ulcer index         5.6%
Prediction error    45%

Confidence level     AR   DDMax  Capital

 10%                166%   107$  85$
 20%                150%   120$  94$
 30%                140%   129$  100$
 40%                129%   141$  109$
 50%                123%   148$  114$
 60%                118%   155$  119$
 70%                111%   165$  127$
 80%                104%   177$  136$
 90%                 89%   209$  159$
 95%                 78%   240$  181$
100%                 55%   344$  257$

Portfolio analysis  OptF  ProF  Win/Loss  Wgt%

GBP/USD             .075  1.18  831/1611 100.0
GBP/USD:L           .120  1.27  444/777   71.6
GBP/USD:S           .038  1.10  387/834   28.4
../_images/ZorroLuxor-01.png

Рис. 1. Результаты тестирования торговой системы Luxor: кривая эквити, просадка, график цены и гистограмма помесячной прибыли

Чтобы проверить правильность входов, сузим период тестирования, например с 27 по 30 мая 2004 года, чтобы было видно отдельные свечи (рис.2).

../_images/ZorroLuxor-02.png

Рис. 2. Проверяем правильность входов

Также можно оставить период тестирования прежним, но установить начальную дату, соответствующую левой границе графика (переменная PlotDate), и количество отображаемых баров (переменная PlotBars).

К сожалению, после 2008 года результаты этой системы катастрофически ухудшились. Остаётся только гадать, что послужило причиной: либо авторы подогнали параметры под историю, либо после выхода книги слишком много трейдеров стали использовать эту систему, в результате она перестала работать. Нам кажется, что верно первое, но это всего лишь интуиция...

Ссылки


Теги: Торговые системы, Zorro




Комментарии

Комментариев пока нет.

* Обязательные поля
(Не публикуется)
 
Жирный Курсив Подчеркнутый Перечеркнутый Степень Индекс Код PHP Код Кавычки Вставить линию Вставить маркированный список Вставить нумерованный список Вставить ссылку Вставить e-mail Вставить изображение Вставить видео
 
Улыбка Печаль Удивление Смех Злость Язык Возмущение Ухмылка Подмигнуть Испуг Круто Скука Смущение Несерьёзно Шокирован
 
1000
Captcha
Refresh
 
Введите код:
 
Запомнить информацию введенную в поля формы.