Делаем интересности бесплатно - страница 32

 
inoy:

Здравствуйте. Возможно кого-нибудь заинтересует написание оригинального трала. Ничего похожего в инете не нашёл. Собственно ТЗ : двигается как стоп, так и профит(TralTP), но всегда только по направлению К ЦЕНЕ, т.е. диапазон с обеих сторон только сужается. Это всё просто, а "изюминка" в том, что трал меняется в % (а НЕ в пунктах) от СЛ или ТП. Пример: имеется открытая позиция СЛ=300, ТП=100 (итого 400п = 100%, СЛ =75%, ТП-25% диапазона). Цена прошла +50, стоп переносится на расст. 150 п. от цены, т.е. в -100. Итого изначальное соотношение 3/1 сохранено. Цена вернулась в точку открытия (0), до СЛ 100п, значит ТП переносим в +33. Ну и т.д.

Цена не ходит какими-то фантастическими рывками (+50, -50)... Техническое задание не решаемо. Точнее оно решаемо, но получится не то, что Вы хотите. Трал будет реагировать на каждый тик и диапазон сузится быстрее, чем Вам этого хочется. Я не пишу, что на каждом тике будет сужаться, но как только прошли несколько пунктов, диапазон сразу сузится. А про пятизнак Я вообще молчу, трал будет ещё более чувствителен к котировкам и диапазон ещё быстрее сузится.

 
Я об этом сразу подумал, именно для этого и вводится переменная Step. Трал должен двигаться не через "несколько пунктов", а через заданный % от диапазона, например 25% от текущего расст. СЛ - ТП. Либо, ТЗ вообще можно решить по другому (как вариант): делать проверку изначального соотношения П/Л через заданный пользователем интервал времени в минутах. Смысл не поменяется и суть идеи сохранится. А ещё лучше предусмотреть оба варианта.
 
inoy:
Я об этом сразу подумал, именно для этого и вводится переменная Step. Трал должен двигаться не через "несколько пунктов", а через заданный % от диапазона, например 25% от текущего расст. СЛ - ТП. Либо, ТЗ вообще можно решить по другому (как вариант): делать проверку изначального соотношения П/Л через заданный пользователем интервал времени в минутах. Смысл не поменяется и суть идеи сохранится. А ещё лучше предусмотреть оба варианта.

Блин... Извиняюсь... Не так понял этот параметр Step! :))

Но всё же напишу мысль вслух. Тралить надо не от балды, а опираясь на тех. анализ...

 
Возможно, Вы правы. Но, кроме ТА, существует также вероятностный анализ, решающий проблему выбора при различных соотношениях риска. На идею трала меня натолкнул тест Шапиро, описанный Элдером.
 

Добрый день! Нашел не плохой индикатор, дает четкий сигнал на 20 пунктов как минимум, но сигналы приходят очень редко и внезапно, не успеваю отслеживать. Пытался вставить алерт(сигнал звуковой) не получается если кто сможет помогите, и советника на нем тоже неплохо было бы сделать! Пол года им пользуюсь хорошая штука! Помогите за ранее спасибо.

вот это чудо

Файлы:
 
DDEEDD:

Добрый день! Нашел не плохой индикатор, дает четкий сигнал на 20 пунктов как минимум, но сигналы приходят очень редко и внезапно, не успеваю отслеживать. Пытался вставить алерт(сигнал звуковой) не получается если кто сможет помогите, и советника на нем тоже неплохо было бы сделать! Пол года им пользуюсь хорошая штука! Помогите за ранее спасибо.

вот это чудо


индикатор подсматривает на 1 бар.

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

вот то что он анализирует - пересечение цены закрытия с линией трала (на расстоянии nPips) от последнего переворота

вы на флете сольетесь



 

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

 

Нашел интересный индикатор в CodeBase хотелось бы немого его переделать а именно

Выводит в правый верхний угол значения
рабочий ТФ
ApPrise
DnPrise

Расстояние между линиями в пунктах

Может кто сможет его переделать?

Файлы:
 
Всем привет. Задумал сделать для советника быстрый зигзаг по теме XLab_ZZ от автора ветки. Но XLab_ZZ считает с начала истории, а мне нужны два первых перелома справа. Написал, но что то он глючит и не пойму где . Посмотрите незамыленным взглядом, может увидите где ошибка. Смотреть по ценам открытия.
//+------------------------------------------------------------------+
//|                                                   1+FZZ_test.mq4 |
//+------------------------------------------------------------------+

 int Step=30;
 string tmp,line[4]; int last_time_signal_ss,last_time_signal_bs;
 double p1,p2,p3,p4,p5; int mp, t1,t2,t3,t4,t5;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
     mp=1; if(Digits==3 || Digits==5)mp=10; 
     for (int i=0;i<4;i++)line[i]="Line"+Symbol()+"_"+i+"_ZZ";
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   DeleteObjects("ZZ");Comment("");
//----
   return(0);
  }

void DeleteObjects(string text) {
   string name;
   for (int i = ObjectsTotal() - 1; i >= 0; i--) {
      name = ObjectName(i);
      if (StringFind(name,text) > -1) ObjectDelete(name);
   }
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  
  Signal();
 //_ObjectSet(line[0], p2,t2,Close[1],Time[0]);
 _ObjectSet(line[1], p3,t3,p2,t2);
 _ObjectSet(line[2], p4,t4,p3,t3);
 _ObjectSet(line[3], p5,t5,p4,t4);
//----
   return(0);
  }
//+------------------------------------------------------------------+
int Signal(){
int x,n;
p1=0;p2=0;p3=0;p4=0;p5=0; t1=0;t2=0;t3=0;t4=0;t5=0;
double hi=High[1], lo=Low[1], c=Close[1]; int th=0,tl=0;

for(int i=1; i<500;i++)
   {
    
    if(p2==0)
    {
    if(High[i]>hi){hi=High[i]; th=Time[i];}
    if(Low [i]<lo){lo=Low [i]; tl=Time[i];}
    if(hi-lo>Step*Point*mp)
      {
       if(c>lo && c<hi ){
                          if(th>tl){p2=hi;t2=th;p3=lo;t3=tl;}
                          if(tl>th){p2=lo;t2=tl;p3=hi;t3=th;}
                          continue;
                         }
       }
    }
    
    if(p2>0 && p4==0)
     {
     n=i;
       if(p3>p2){
                 if(p3-Low [n]>Step*Point*mp){p4=Low [n];t4=Time[n];continue;}
                 if(High[n]>p3)if(p3-Low [n]< Step*Point*mp){p3=High[n];t3=Time[n];}
                }  
       if(p3<p2){
                 if(High[n]-p3>Step*Point*mp){p4=High[n];t4=Time[n];continue;}
                 if(Low[n]<p3){p3=Low[n];t3=Time[n];}
                }  
     }
    
    if(p4>0)
      {
       x=i;
       if(p4>p3){
                 if(p4-Low [x]>Step*Point*mp){p5=Low [x];t5=Time[x];break;}
                 if(High[x]>p4){p4=High[x];t4=Time[x];}
                 
                }  
       if(p4<p3){
                 if(High[x]-p4>Step*Point*mp){p5=High[x];t5=Time[x];break;}
                 if(Low[x]<p4){p4=Low[x];t4=Time[x];}
                 
                }  
      }
    if(p5>0)break;
    
    }

return(0);}

void _ObjectSet(string name, double price1, int time1, double price2,int time2) {
   if(ObjectFind(name)!= -1)ObjectDelete(name); 
   ObjectCreate(name,OBJ_TREND,0,0,0,0,0);
   ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet(name,OBJPROP_COLOR,DodgerBlue);
   ObjectSet(name, OBJPROP_TIME1, time1);
   ObjectSet(name, OBJPROP_PRICE1, price1);
   ObjectSet(name, OBJPROP_TIME2, time2);
   ObjectSet(name, OBJPROP_PRICE2, price2);
   ObjectSet(name,OBJPROP_RAY,false); 
}
 
FION:
Задумал сделать для советника быстрый зигзаг по теме XLab_ZZ от автора ветки.

Ну во-первых вы считаете не в ту сторону, во-вторых убили весь смысл моего зигзага вообще :)

Переносите в советник код с индюка прямо как есть. Ничего с советником не станет, если он при запуске посчитает всю историю (или с заданного бара), посчитает шустро.

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