Делаем интересности бесплатно - страница 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! :))

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

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

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

вот это чудо

Файлы:
 
DDEEDD:

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

вот это чудо


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

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

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

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



[Deleted]  

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

 

Нашел интересный индикатор в 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 от автора ветки.

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

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