Система: случайный вход + стоп + трал - страница 3

 
drknn >>:
Эх, сколько людей - столько мнений. Мне понравилась идея топикстартера. Готов включиться в работу. Думаю, трал по фракталам тут подошёл бы лучше всего. Плюс к этому я бы добавил в торговую систему сброс лотов. Только вот какая идея сейчас мелькнула - сброс лотов сделать "обратным". То есть. Обычно мы как думаем? Цена проехала в профит некое количество пунктов, значит пора сбросить лот и подтянуть к рынку стоп. Ну так вот, я бы предлложил иную систему: если стоп подтянулся к очередному фракталу, то смотрим, если стоп в безубытке или в зоне положительного профита, то сбрасываем, скажем, 1 минимальный лот. И так всякий раз, когда происходит модификация стопа. При этом, если лот ордера равен минимально-допустимому, то сбросы прекращаем и тупо тралим ордер по рынку до тех пор, пока его ни вышибет. Иными словами, признаком, по которому мы определяем что пришёл момент сброса лотов является модификация стопа.
Тейк-профит предлагаю не устанавливать вообще - при удачном входе появляется возможность забрать весь тренд, а не кусочек, обрезанный тейком.
  Теперь о входах. Когда-то я пробовал такую штуку - если на трёх последних свечках лоу поднимаются, то открываем лонг. Если хай опускаются, то открываем шорт. Даже сделал несколько версий советника. Идея была хорошая - депозит стремительно уезжал кверху. Потом понадобились деньги и поскольку идея небыла доведена до конца, пришлось программить на заказчика, потом на другого, третьего, потом идея забылась и вот только сегодня, спустя несколько лет, вспомнилась.
Я даже готов сюда код выложить, если кому-то интересно будет...

если не жалко, то будет интересно посмотреть/покрутить код

 
Vitya >>:

если не жалко, то будет интересно посмотреть/покрутить код


Не жалко. Советник к посту приложен. Описание параметров работы внутри кода.
И поскольку три вподряд-повышающиеся/понижающиеся хай/лоу это штука практически случйная для входов в рынок (случайная потому, что будь она бы предсказуема на все сто, Форекса не существовало бы), то условия входа в рынок, указанные топикстартером, соблюдены.
Честно говоря, меня мой подход разочаровал. Нужно чем-то отфильтровывать сделки. Например, той же скользящей.

P.S. Забыл сказать - я в советника не стал встраивать "защиту от дурака" и отслеживание торговых потоков - это же просто тестовая версия. Поэтому смотрите внимательно, какие параметры будете вводить.
Файлы:
 
drknn >>:
Эх, сколько людей - столько мнений. Мне понравилась идея топикстартера. Готов включиться в работу. Думаю, трал по фракталам тут подошёл бы лучше всего. Плюс к этому я бы добавил в торговую систему сброс лотов. Только вот какая идея сейчас мелькнула - сброс лотов сделать "обратным". То есть. Обычно мы как думаем? Цена проехала в профит некое количество пунктов, значит пора сбросить лот и подтянуть к рынку стоп. Ну так вот, я бы предлложил иную систему: если стоп подтянулся к очередному фракталу, то смотрим, если стоп в безубытке или в зоне положительного профита, то сбрасываем, скажем, 1 минимальный лот. И так всякий раз, когда происходит модификация стопа. При этом, если лот ордера равен минимально-допустимому, то сбросы прекращаем и тупо тралим ордер по рынку до тех пор, пока его ни вышибет. Иными словами, признаком, по которому мы определяем что пришёл момент сброса лотов является модификация стопа.
Тейк-профит предлагаю не устанавливать вообще - при удачном входе появляется возможность забрать весь тренд, а не кусочек, обрезанный тейком.
  Теперь о входах. Когда-то я пробовал такую штуку - если на трёх последних свечках лоу поднимаются, то открываем лонг. Если хай опускаются, то открываем шорт. Даже сделал несколько версий советника. Идея была хорошая - депозит стремительно уезжал кверху. Потом понадобились деньги и поскольку идея небыла доведена до конца, пришлось программить на заказчика, потом на другого, третьего, потом идея забылась и вот только сегодня, спустя несколько лет, вспомнилась.
Я даже готов сюда код выложить, если кому-то интересно будет...


Идея действительно не нова, и уже давно реализована. Лично мной обозвана как "дискретный" трал. По достижении определенного уровня закрывается половина позы (можно взять любую другую долю) и подтягивается стоп в безубыток. По достижении следующего уровня опять половина и подтяжка стопа. И т.д. пока не закроется вся поза. Эмпирически доказано - вытягивает даже очень сливную ТС. Возможно есть и другие реализации подобного... Я выкладываю свою. Кому надо забираем и юзаем.
void tral (int tr,double ml,int mn)
{
int cnt;
int k;
int x;
datetime last_time;
double close_lot;
for (cnt=OrdersTotal()-1;cnt>=0;cnt--)
   {
   OrderSelect(cnt,SELECT_BY_POS);
   if (OrderMagicNumber()!=mn) continue;
   close_lot=NormalizeDouble(OrderLots()/2,2);
   if (close_lot<ml) close_lot=ml;
   if (OrderType()==OP_BUY)
      {
      if (OrderStopLoss()==0||OrderStopLoss()<OrderOpenPrice())
         {
         if (MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice()>tr*MarketInfo(OrderSymbol(),MODE_POINT))
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),10000);
            }
         }
      else
         {
         if (MarketInfo(OrderSymbol(),MODE_BID)-OrderStopLoss()>tr*MarketInfo(OrderSymbol(),MODE_POINT)*2)
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),10000);
            }
         }
      }
   if (OrderType()==OP_SELL)
      {
      if (OrderStopLoss()==0||OrderStopLoss()>OrderOpenPrice())
         {
         if (OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK)>tr*MarketInfo(OrderSymbol(),MODE_POINT))
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),10000);
            }
         }
      else
         {
         if (OrderStopLoss()-MarketInfo(OrderSymbol(),MODE_ASK)>tr*MarketInfo(OrderSymbol(),MODE_POINT)*2)
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),10000);
            }
         }
      }
   
   
   }
return (0); 
}
Входные параметры:
int tr- шаг трейла в пунктах
double ml - минимальный лот разрешенный ДЦ.
int mn - магик
 
lexandros >>:


Идея действительно не нова, и уже давно реализована. Лично мной обозвана как "дискретный" трал. По достижении определенного уровня закрывается половина позы (можно взять любую другую долю) и подтягивается стоп в безубыток. По достижении следующего уровня опять половина и подтяжка стопа. И т.д. пока не закроется вся поза. Эмпирически доказано - вытягивает даже очень сливную ТС. Возможно есть и другие реализации подобного... Я выкладываю свою. Кому надо забираем и юзаем. Входные параметры:
int tr- шаг трейла в пунктах
double ml - минимальный лот разрешенный ДЦ.
int mn - магик


Беда у Вашего трала (как и у тех, которые встраивал в своих советников я) в том, что нужно дождаться некоего профита. А при случайных входах поза не всегда едет в профит и тем более не всегда достигает заранее заданного количества пунктов. Поэтому я в вышевыложенном советнике организовал трал малость не так, как его описывал. Суть работы: как только возникает новый фрактал - стоп подтягивается к нему. Если при этом цена находится в зоне положительного профита, то сбрасывается указанный лот. Чего я этим добился? Ясно дело - добился минимизации убытков. Если стоп всё ещё лежит в зоне отрицательного профита, то лот ордера уже менее того, который был и значит при отлове лося убыток уже будет поменьше, чем мог бы быть. Тем более, что мы ещё и малость профита поимели, который тоже сглаживает возможный убыток.
 
Реализация любых идей по фракталам - лично мне кажется огромным заблуждением. ведущим к многочисленным сливам... Так же доказано эмпирически...
Фракталы считаю величайшим злом... Ничего не доказывающим, и ничего не говорящим... А только вводящим в заблуждение... Поэтому как либо отталкиваться от фракталов - давно забросил... слив это... гарантированный

IMHO
 
lexandros >>:
Реализация любых идей по фракталам - лично мне кажется огромным заблуждением. ведущим к многочисленным сливам... Так же доказано эмпирически...
Фракталы считаю величайшим злом... Ничего не доказывающим, и ничего не говорящим... А только вводящим в заблуждение... Поэтому как либо отталкиваться от фракталов - давно забросил... слив это... гарантированный

IMHO


Я пробовал реализовывать трал не по пунктам профита, а по деньгам. Этот тип трала показал себя получше прочих, но и у него тот же самый недостаток - поза должна достичь некоего профита, что не всегда удаётся при случайных входах.
Что я имею ввиду под этим типом трала?
Как работает обычный трал? Достигли некоего профита - подтянули стоп в безубыток. Прошли некий шаг в профит - снова подтянули. Ну так вот, долларовый трал делает то же самое, но отслеживает не пункты профита, а количество долларов профита. И он не подтягивает ни куда стоп ордера. У него в памяти есть некий стоповый уровень денег - вот его то он и подтягивает в плюс по прохождении некоего количества денег в большую сторону. Как только профит ордера падает до уровня этого виртуального стопа баксов, так сразу ордер закрывается принудительно.
На быстром рынке недостатком этого трала является скорость изменения цены. Тогда как стандартный трал, имея стоп-приказ на сервере, сработает куда безотказнее.
 
насколько я понял вашу реализацию - вы фиксируете убыток на этапе когда поза еще не "обрела силу" (чисто мое определение). 
Очень часто. Практически всегда - по ТА - после открытия позы - идет незначительный откат. И на этом этапе фиксировать убыток - это просто добровольно дарить рынку свои кровные... Если есть уверенный сигнал - цена "должна" (должна, но не обязана) пойти в нужном направлении - фиксировать убытки на откате - просто глупость... надо немного подождать... Чтобы не врюхаться по полной - есть страховочный стоп, который не даст этого сделать...

опять же IMHO
 
Есть реализация трала такого же дискретного - не в пунктах а имено в деньгах... Собственно суть не меняется... Тут смотрим в зависимости от ТС и инструментов... Реализация в денежном выражении даже гораздо проще... Просто смотрим на параметр OrderProfit()... Не везде и не всегда подходит... В некоторых советниках, на одном из моих паммов - стоит именно такая реализация
 
Согласен - метод не совершенен. Есть масса способов работать по другому.
Автор этой ветки поставил вопрос о том, насколько эффективен трал при случайных входах. Я включился в работу и предоставил в качестве эксперимента свой вариант. Допустим, вариант дал отрицательный результат. Чтож, это уже не плохо. Это сужает нам круг поиска.
Попробуйте предолжить свой вариант советника с Вашим тралом и Вашими входами в рынок. Возможно у Вас получится лучше, или не получится... В любом случае у нас будет уже 2 точки отсчёта...
 
Коллега - я уже представил свою точку видения... и выложил функцию тралла... не беру стопроцентное авторство, поэтому не называю "трал имени lexandros" наверняка где то и как то уже реализовано до меня и не только мной... я лишь сказал - что этот трал вытаскивает потенциально сливные тс. вывод эмпирический.
Поэтому и выложил - кому надо пользуйтесь... не жалко...
Причина обращения: