TDW on FX, как фильтр (на примере системы)

Стратегии, тактики и правила торговли. Ручные и автоматические торговые системы. Обсуждаем новые идеи торговли.

TDW on FX, как фильтр (на примере системы)

Сообщение alx84 » 04 фев 2010, 14:11

Около года тому, после прочтения книги Л.Вильямса, я пытался провести некого рода исследование, подобное тому, что проводил Ларри, целью которого был поиск закономерностей поведения цены в зависимости от дня недели.
Т.е. я просто покупал на открытии и продавал на закрытии дня, после чего вычислял вероятность падения/роста пары в определенный день недели.
Результатов этой попытки в точности не помню, помню только, что особо значимого стат. преимущества на какой-либо паре я так и не смог выявить (результаты были прибл.=50+/-2,4%), ну и не найдя всему этому никакого применения, я эту идею так и забросил.

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

Тему я начал на БВ: http://forum.forex.ua/viewtopic.php?f=42&t=10088
Здесь процитирую часть своего поста с описанием системы:
alx84 писал(а):

Довольно интересными мне показались эти системки:
http://www.forexfactory.com/showthread.php?t=183582
http://www.forexfactory.com/showthread.php?t=103682

Я, правда, их немного переделал.

Инструмент – GBP, ТФ – интрадей, я беру 5мин.

Суть:

1.Строим канал за период 22:00-8:00 (GMT+1) (открытие Тихоокеанской сессии – открытие Лондона) по максимумам/минимумам.

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

3.Тут 2 варианта:

a) Просто ставим трейлинг-стоп (в 15пп, например).


b) Ставим ТП 60п, СЛ=ТП/2, Безубыток=ТП/2.

Изображение


Опуская подробности, лишь скажу, что впоследствии пришел к выводу, что наиболее приемлемыми есть такие настройки: ТП=СЛ=30пп.

Вот исходник для Омеги:
Код: выделить все
Input: R_Start(2200),R_End(755),TP(30),NoTrade(0);
Vars: signal(0),StBar(0),EndBar(0),Counter(0),BuyPrice(0),SellPrice(0),OneTick(MinMove/PriceScale),Exit(0),SL(0);

signal=1;
Counter=Counter+1;


If NoTrade=1 then begin
   If Month(Date)>=7 and Month(Date)<=8 then
       signal=0;
end;


If time>=R_Start or time<=R_End then begin
   signal=0;
   Counter=0;
   if time=R_Start then
      StBar=BarNumber;
   if time=R_End then
      EndBar=BarNumber;
end;   



Value1=EndBar-StBar;

BuyPrice=Highest(H,value1) of Counter bars ago+OneTick;
SellPrice=Lowest(L,value1) of Counter bars ago-OneTick;

   


if signal=1 and MarketPosition=0 then begin
   if EntriesToday(Date)=0 then begin
      Sell ("Dn") SellPrice Stop;
      Buy ("Up") BuyPrice Stop;
   end;

   if EntriesToday(Date)=1 then begin
      if MarketPosition(1)=1 then
         Sell ("Dn2") SellPrice Stop;
        if MarketPosition(1)=-1 then
         Buy ("Up2") BuyPrice Stop;
   end;
end;


if MarketPosition=1 then begin
   Exit=EntryPrice+TP*OneTick;
   ExitLong Exit limit;
   SL=EntryPrice-TP*OneTick;
   ExitLong SL stop;
end;

if MarketPosition=-1 then begin
   Exit=EntryPrice-TP*OneTick;
   ExitShort Exit limit;
   SL=EntryPrice+TP*OneTick;
   ExitShort SL stop;
end;


if date<>entrydate then begin
   exitlong;
   exitshort;
end;


Вот отчет:

Изображение Изображение Изображение Изображение

Как видно, система приносит неплохой, казалось бы, результат, но средняя прибыль на сделку крайне мала: в шортах она составляет 10,16, а в лонгах всего 4,29...
И если прогнать тот же тест с учетом комиссий, спрэда и сплитаджа (я просто ставлю показатель commission amount равным 5 per transaction, возможно это не совсем корректно, но весьма наглядно :) ), то резалт выходит не столь хорош, как хотелось бы (лонги вообще в итоге оказались убыточными).

Изображение Изображение Изображение Изображение

Понаблюдав несколько недель за работой системы в риал тайме, обратил внимание на то, что с большей вероятностью и меньшим временем пребывания в рынке, прибыльные сделки имеют место быть по понедельникам и четвергам. В среду же и пятницу наблюдалась обратная закономерность, т.е. цена, только вырвавшись из коридора и сорвав лимитник, тут же возвращалась обратно и щелкала стопы.
Но, конечно пара недель – это слишком малый срок, чтобы говорить о каких-то закономерностях и я решил провести небольшое исследование, целью которого было определить % профитных сделок системы в зависимости от дня недели. Система просто торговалась в определенный день недели, после чего результат записывался в таблицу.

В следующей таблице приведены результаты:

Изображение


И по итогам я провел некоторого рода рейтинг (который, впрочем, весьма субъективен) сигналов:
Зеленый – сигналы с высокой вероятностью положительного исхода.
Желтый – средняя вер-ть.
Красный – слабые сигналы, при поступлении которых лучше вообще воздержаться от входа в рынок.

Вот код системы, которая работает только при поступлении «зеленых сигналов», т.е. открывает шорты только по понедельникам и вторникам при пробитии канала вниз, а лонги – по средам и четвергам при пробитии вверх:
Код: выделить все
Input: R_Start(2200),R_End(755),TP(30),NoTrade(0);
Vars: signal(0),StBar(0),EndBar(0),Counter(0),BuyPrice(0),SellPrice(0),OneTick(MinMove/PriceScale),Exit(0),SL(0);

signal=1;
Counter=Counter+1;


If NoTrade=1 then begin
   If Month(Date)>=7 and Month(Date)<=8 then
       signal=0;
end;


If time>=R_Start or time<=R_End then begin
   signal=0;
   Counter=0;
   if time=R_Start then
      StBar=BarNumber;
   if time=R_End then
      EndBar=BarNumber;
end;   



Value1=EndBar-StBar;

BuyPrice=Highest(H,value1) of Counter bars ago+OneTick;
SellPrice=Lowest(L,value1) of Counter bars ago-OneTick;

   


if signal=1 and MarketPosition=0 then begin
   if EntriesToday(Date)=0 then begin
      if DayOfWeek(date)=1 or DayOfWeek(date)=2 then
         Sell ("Dn") SellPrice Stop;
      If DayOfWeek(date)=3 or DayOfWeek(date)=4 then
         Buy ("Up") BuyPrice Stop;
   end;
end;


if MarketPosition=1 then begin
   Exit=EntryPrice+TP*OneTick;
   ExitLong Exit limit;
   SL=EntryPrice-TP*OneTick;
   ExitLong SL stop;
end;

if MarketPosition=-1 then begin
   Exit=EntryPrice-TP*OneTick;
   ExitShort Exit limit;
   SL=EntryPrice+TP*OneTick;
   ExitShort SL stop;
end;


if date<>entrydate then begin
   exitlong;
   exitshort;
end;


Отчеты:

1.с учетом комиссии, спрэда, сплит.

Изображение Изображение Изображение Изображение

2. без.

Изображение Изображение Изображение Изображение

Код системы, которая работает при поступлении «зеленых» и «желтых» сигналов:

Код: выделить все
Input: R_Start(2200),R_End(755),TP(30),NoTrade(0);
Vars: signal(0),StBar(0),EndBar(0),Counter(0),BuyPrice(0),SellPrice(0),OneTick(MinMove/PriceScale),Exit(0),SL(0);

signal=1;
Counter=Counter+1;


If NoTrade=1 then begin
   If Month(Date)>=7 and Month(Date)<=8 then
       signal=0;
end;


If time>=R_Start or time<=R_End then begin
   signal=0;
   Counter=0;
   if time=R_Start then
      StBar=BarNumber;
   if time=R_End then
      EndBar=BarNumber;
end;   


Value1=EndBar-StBar;

BuyPrice=Highest(H,value1) of Counter bars ago+OneTick;
SellPrice=Lowest(L,value1) of Counter bars ago-OneTick;

   


if signal=1 and MarketPosition=0 then begin
   if EntriesToday(Date)=0 then begin
      if DayOfWeek(date)=1 or DayOfWeek(date)=2 or DayOfWeek(date)=4 then
         Sell ("Dn") SellPrice Stop;
      If DayOfWeek(date)=1 or DayOfWeek(date)=3 or DayOfWeek(date)=4 then
         Buy ("Up") BuyPrice Stop;
   end;

   if EntriesToday(Date)=1 then begin
      if DayOfWeek(date)=1 or DayOfWeek(date)=4 then begin
         if MarketPosition(1)=1 then
            Sell ("Dn2") SellPrice Stop;
           if MarketPosition(1)=-1 then
            Buy ("Up2") BuyPrice Stop;
      end;
   end;
end;


if MarketPosition=1 then begin
   Exit=EntryPrice+TP*OneTick;
   ExitLong Exit limit;
   SL=EntryPrice-TP*OneTick;
   ExitLong SL stop;
end;

if MarketPosition=-1 then begin
   Exit=EntryPrice-TP*OneTick;
   ExitShort Exit limit;
   SL=EntryPrice+TP*OneTick;
   ExitShort SL stop;
end;


if date<>entrydate then begin
   exitlong;
   exitshort;
end;


Отчеты:

1.с учетом комиссии, спрэда, сплит.

Изображение Изображение Изображение Изображение

2.без.

Изображение Изображение Изображение Изображение

Как видно из вышеприведенных тестов, точность системы значительно возросла вместе со значением средней прибыли на сделку одновременно со значительным уменьшением количества сделок (с 483 до 286, или на 41 %), что, впрочем, не может не настораживать... Также, в связи с небольшой выборкой (~ 350 случаев на TDW за 4,5 года и по ~ 150 случаев на лонг/шорт), возникает сомнение, а не будет ли использование такого подхода обычной подгонкой под историю? В то же время, если брать более длительный период (>4.5 лет), то возникает сомнение на счет актуальности происходящих в тот период времени процессов на рынке в нынешних условиях.
Ну, я, конечно, понимаю, что наиболее точный ответ на вопрос мне может дать только время :) , но, все же, господа трейдеры, хочу узнать Вашу точку зрения (подкрепленную Вашими собственными наблюдения, что было бы замечательно), касаемо целесообразности использования закономерностей поведения цены в зависимости от дня недели, как в рамках данной системы, так и в принципе...
Также, хотелось бы услышать Ваши советы по, возможно, методам более углубленного анализа исследуемых процессов, т.к. полагаю, приведенные мною наблюдения покажутся весьма примитивными для трейдеров, использующих методы мат. и стат. анализа.
Аватар пользователя
alx84
Старожил
 
Сообщений: 143
Зарегистрирован: 27 дек 2009, 23:14
Откуда: Киев
Пункты репутации: 27

Re: TDW on FX, как фильтр (на примере системы)

Сообщение Pupkinus­­® » 05 фев 2010, 12:20

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

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

успехов!
Аватар пользователя
Pupkinus­­®
-=Господин КРУПЬЕ=-
 
Сообщений: 359
Зарегистрирован: 18 дек 2009, 09:12
тех.анализ: Excel, Omega, Matlab, Руки
рынок: Futures
Пункты репутации: 105

Re: TDW on FX, как фильтр (на примере системы)

Сообщение alx84 » 05 фев 2010, 12:49

Спасибо за столь высокую оценку моей скромной работы :)
Особенно приятно, что эта оценка дана уважаемым мною человеком, чьё мнение для меня авторитетно.
Потому, надо полагать, мои изыскания ведутся в правильном направлении :)
Спасибо за подсказку, буду дальше рыть...
Сейчас вот еще работаю над выходами, хочу прикрутить тайминг вместо стандартного СЛ в 30п., если что-нибудь толковое из этого выйдет, выложу резалт на форуме.
Аватар пользователя
alx84
Старожил
 
Сообщений: 143
Зарегистрирован: 27 дек 2009, 23:14
Откуда: Киев
Пункты репутации: 27

Re: TDW on FX, как фильтр (на примере системы)

Сообщение Pupkinus­­® » 05 фев 2010, 13:25

Спасибо за добрые слова.

Выходы по фиксированному стопу для таких систем - самые плохие. почти правило. у них есть еще тот недостаток что оптимальный фиксированный стоп со времен дрейфует и это может просто сводить с ума при использовании такой системы.

Советую посмотреть или выход по времени или выход по фиксированной комбинации свечей (присмотритесь при каких свечных наборах прорыв который мы пытаемся торговать - "захлебывается", думаю можно выявить 2-3 набора при появлении которых позу можно резать немедленно, избегая "зацепа" фиксированного стопа.

Кстати, с выходами, ситуация такая же ;)

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

Успехов!
Аватар пользователя
Pupkinus­­®
-=Господин КРУПЬЕ=-
 
Сообщений: 359
Зарегистрирован: 18 дек 2009, 09:12
тех.анализ: Excel, Omega, Matlab, Руки
рынок: Futures
Пункты репутации: 105

Re: TDW on FX, как фильтр (на примере системы)

Сообщение alx84 » 05 фев 2010, 13:55

Ну, со временем, конечно, легче будет, вот могу предварительно сказать (исходя из имеющихся сейчас набросок), что при положительном исходе время удержания открытой позиции, как правило, не превышает одного часа (при этом СЛ я ставил на противоположную границу канала)... А со свечными наборами - тут сложнее, чтобы заложить это в код, наверняка без некоторых познаний в области комбинаторики, чем я, к сожалению, похвастаться не могу, будет нелегко... Хотя, явно такой подход будет более эффективным, так что буду пытаться осилить, спасибо!
Аватар пользователя
alx84
Старожил
 
Сообщений: 143
Зарегистрирован: 27 дек 2009, 23:14
Откуда: Киев
Пункты репутации: 27


Вернуться в Торговые системы и стратегии. Советники и МТС.

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


cron