А есть ли у Вас тактика разруливания лока? - страница 62

 
Stells:

Добрый день.

Игорь, мне кажется что Ваш так называемый ММ, это тот же советник, при чем он должен быть прибыльнее чем тот советник куда добавляется ваша функция, что бы отыграть проигрышные позиции.

Поэтому вопрос, почему бы вам не использовать свой ММ как самостоятельный советник ?


ну наконец-то светлая мысль.... - да Вы правы это слишком измененная лавина, от лавины осталась тока идея локировать лок на лок..., даже понятие "коридор/канал цены" и то изменил, за основу взял текущую валотильность рынка, а не дистанция для следующего лока

самостоятельным советником в жизни не запущу советник в основе которого постоянное увеличение лотности для достижения прибыли, но вместе с тем если вести постоянный контроль за свободными средствами перед выставлением очередного лока то результаты весьма "фантастические", ну и обязательный трал по эквити, т.к. имхо уж лучше прибыль в районе спреда если цена начала возвращаться не достигнув ТР, чем высоко подняв голову принимать "лосей", принцип включения моей лавины я писал - если допускаем убыток(я пока в фиксированных числах выставляю 300$) то включаем лавину, ну или нечто подобное

 
Игорь, а не моглибы вы немножко подробней про это - "обязательный трал по эквити" а, то не совсем понимаю как такой трал должен работать...
 
renoshnik:
Игорь, а не моглибы вы немножко подробней про это - "обязательный трал по эквити" а, то не совсем понимаю как такой трал должен работать...
/жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//|Трал по эквити                                                    |
//+------------------------------------------------------------------+
/*
Функция вызывается в самом начале эксперта сразу за int Start(), вызов происходит таким образом :

//удаляем запрет на торговлю после удаления всех ордеров 
  if(OrdersTotal()<1){
    if(GlobalVariableCheck("stop")){GlobalVariableDel("stop");}  
    gEqviti=AccountBalance(); 
  } 
//тралим эквити
  if(EcvitiTral3(EqwTralStep)){return(0);}
  if(GlobalVariableCheck("stop")){return(0);}

если еквити поднялась над балансом, то она блокирует все стальные функции эксперта и тралит.
теперь по переменным : в глобальных переменных static double gEqviti;
во внешних переменных extern double EqwTralStep=0.03; 
шаг трейлинга в процентах от эквити extern bool WithoutLoss=false; разрешение на применение метода безубытка
работа фунции : при превышении эквити над балансом она запоминает уровень баланса как нулевой, 
при котором надо закрывать- это работа с безубытком, при дальнейшем превышении эквити 
на размер EqwTralStep в прцентах она передвигает уровень закрытия выше, 
если скорость превышения большая то функция увеличивает шаг квадратично .

*/
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
bool EcvitiTral3(double EqvTralStep){
//if(GlobalVariableCheck("stop")){GlobalVariableDel("stop");}  
if(OrdersTotal()<1){gEqviti=AccountBalance();return(false);}

   if(WithoutLoss){
    if(AccountEquity()>=AccountBalance()){mlots = 0.01;CloseAllFirstProfit();
       WithoutLoss=false;Print("CloseAll");GlobalVariableDel("stop");return(false);}
    return(true);
   }
   
   if(AccountEquity()>AccountBalance()){
      if(AccountEquity()-AccountBalance()>((AccountBalance()/100)*(EqvTralStep*2))){EqvTralStep=EqvTralStep+EqwTralStep;}      
      if(AccountEquity()>(gEqviti+(gEqviti/100*EqvTralStep))){
        gEqviti=gEqviti+(gEqviti/200*EqvTralStep);
        if(!GlobalVariableCheck("stop")){GlobalVariableSet("stop",0);}
      }
      if(AccountEquity()<=gEqviti){mlots = 0.01;CloseAllFirstProfit();
         Print("CloseAll");GlobalVariableDel("stop");return(false);}
      else{Comment(AccountFreeMargin()+AccountMargin(),"\n",
                 "EQUITY TRALING MODE\n",
                 "EQUITY TRALING STEP   =",EqvTralStep," %",
                 "\nACCOUNT BALANS         = ",AccountBalance(),
                 "\nCLOSE LEVEL                  = ",gEqviti,
                 "\nACCOUNT EQUITY        = ",AccountEquity(),
                 "\nNEXT STEP                     = ",gEqviti+(gEqviti/100*EqvTralStep));
               //  Print("AccountEquity() = ",(AccountBalance()/100)*(EqvTralStep));
                 return(true);
      }
    }else{GlobalVariableDel("stop");}  

return(false);
}

код не мой, пока даже не разбирался с ним - но работает на 100%
 
renoshnik:
Игорь, а не моглибы вы немножко подробней про это - "обязательный трал по эквити" а, то не совсем понимаю как такой трал должен работать...
Трал по эквити не обязательный, - можно с тем же эффектом после выхода в зону прибыли закрыть перекрытые и тралить обычным тралом оставшийся ордер.
 
khorosh:
Трал по эквити не обязательный, - можно с тем же эффектом после выхода в зону прибыли закрыть перекрытые и тралить обычным тралом оставшийся ордер.


возможно, но пока была идея сделать универсальную функцию, для "вытягивания" в положительные результаты сливных советников, с тарлом по эквити просто меньше возни - не надо учитывать 4-х(5-ти)знак, минимальные стопы и т.п. - просто подключил функцию и все

ЗЫ: ну и как  идея? renoshnik у Вас в кодобазе есть еще один советник который не хочет у Вас работать в тестере, времени сегодня у меня нет, но переделать sllep() в советнике можно примерно так:

      ..................
      datetime opentim=OrderOpenTime();
      ........
// в start()
      if ((TimeLocal()-opentim)<1000) return(0);

примерно так Вы можете сделать sleep() на одну секунду

думаю на таком советнике результаты будут Граальные :) 

 
IgorM:


ЗЫ: ну и как  идея? renoshnik у Вас в кодобазе есть еще один советник который не хочет у Вас работать в тестере, времени сегодня у меня нет, но переделать sllep() в советнике можно примерно так:

примерно так Вы можете сделать sleep() на одну секунду

думаю на таком советнике результаты будут Граальные :) 

Эту проблему я уже решил, http://voloshin-fxcci.blogspot.com/ собетник с января работает на реале, пока (тьфу,тьфу, тьфу что бы не сглазить) каждый месяц в профите... Вот кстати картинка с начала этого месяца, даже "локи" (усредняющий ордер) успели сработать...

 

О том как борюсь с "просевшими" позициями в этом советнике я давал ссылку выше, но хочется сделать там, что-то "лавинистое" но пока еще не придумал как. 

И если конкретно по этому советнику то тут трал по эквити думаю не прокатит. Трал по эквити, насколько я понял, используется если в работе только ОДНА позиция, а если у меня открыто много позиций и у большинства есть небольшая просадка из-за "шума" с которой я пока не собираюсь бороться в расчете на разворот цены. Но среди этих всех позиций есть ОДНА или ДВЕ которые просели на "критический" уровень и нет расчета на то, что цена сможет откатиться на такое большое расстояние. Вот только эти несколько позиций и нужно "локировать" - тогда трал по эквити не прокатит....

 

Вот нашел в архивах "кодебейса" ==  Представляю Вам программу Анти-Лось

 
renoshnik:

Вот нашел в архивах "кодебейса" ==  Представляю Вам программу Анти-Лось

 


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

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

 
IgorM:


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

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


Можно маленькое предложение... Если делать "антилося" - то думаю, что это должен быть скрипт и хорошобы было если при запуске этого скрипта можно было задать "тикет" ордера который нужно выести в безубыток чтобы не трогать другие ордера ....
 
renoshnik:

Можно маленькое предложение... Если делать "антилося" - то думаю, что это должен быть скрипт и хорошобы было если при запуске этого скрипта можно было задать "тикет" ордера который нужно выести в безубыток чтобы не трогать другие ордера ....


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

- лок должен выставлять по другой стратегии/индикатору

- изучение локирования "на голом месте" (без стратегии)  неэффективно

- выставление стоповых отложенных ордеров - то же не выход, т.к. рассчитать уровень стопового ордера надо в зависимости от валотильности инструмента

но и как итог - применяя свою стратегию локирования случайного убытка пока наблюдаю 5 "переворотов" на истории, пока подбираю эффективный к-т для увеличения объемов следующего лока, но четко прослеживается связь время-деньги, чем больше увеличение к-та лока, тем быстрее он распутается, но и больше просадки

тут уже просадки поменьше, т.к. перешел на арифметическую прогрессию увеличения к-та локирования в зависимости от уже выставленных объемов  на рынке

Причина обращения: