0
<code>
//+------------------------------------------------------------------+
//|                                                        DT_ZZ.mq4 +
//|                                                                  +
//|                           20.03.16 добавил звук поручик          +
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, klot."
#property link      "klot@mail.ru"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrMagenta
#property indicator_color2 clrDeepPink
#property indicator_color3 clrDodgerBlue

#property indicator_width2 1
#property indicator_width3 1 


//---- indicator parameters
extern int    ExtDepth        = 12;
extern bool   alertsOn        = true;
extern bool   alertsOnCurrent = true;
extern bool   alertsMessage   = true;
extern bool   alertsSound     = true;
extern bool   alertsEmail     = false;

extern bool use_sound = true;
extern string up_sound = "Пробой_вверх";
extern string down_sound = "Пробой_вниз";



double zzL[];
double zzH[];
double zz[];


int init()
  {
   
   SetIndexBuffer(0,zz);  SetIndexStyle(0,DRAW_SECTION);  
   SetIndexBuffer(1,zzH); SetIndexStyle(1,DRAW_ARROW);   
   SetIndexBuffer(2,zzL); SetIndexStyle(2,DRAW_ARROW);   
   
   SetIndexArrow(1,236);
   SetIndexArrow(2,238);
   
   
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);
     

   IndicatorShortName("DT_ZZ("+ExtDepth+")");

   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int    i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;
   double curlow,curhigh,lasthigh,lastlow;
   double min, max;
   ArrayInitialize(zz,0.0);
   ArrayInitialize(zzL,0.0);
   ArrayInitialize(zzH,0.0);
   
   lasthighpos=Bars; lastlowpos=Bars;
   lastlow=Low[Bars];lasthigh=High[Bars];
  for(shift=Bars-ExtDepth; shift>=0; shift--)
    {
      curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);
      curlow=Low[curlowpos];
      curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);
      curhigh=High[curhighpos];
      //------------------------------------------------
      if( curlow>=lastlow ) { lastlow=curlow; }
      else
         { 
            //идем вниз
            if( lasthighpos>curlowpos  ) 
            { 
            zzL[curlowpos]=curlow;
              ///*
              min=100000; pos=lasthighpos;
               for(i=lasthighpos; i>=curlowpos; i--)
                  { 
                    if (zzL[i]==0.0) continue;
                    if (zzL[i]<min) { min=zzL[i]; pos=i; }
                    zz[i]=0.0;
                  } 
               zz[pos]=min;
               //*/
            } 
          lastlowpos=curlowpos;
          lastlow=curlow; 
         }
      //--- high
      if( curhigh<=lasthigh )  { lasthigh=curhigh;}
      else
         {  
            // идем вверх
            if( lastlowpos>curhighpos ) 
            {  
            zzH[curhighpos]=curhigh;
           ///*
               max=-100000; pos=lastlowpos;
               for(i=lastlowpos; i>=curhighpos; i--)
                  { 
                    if (zzH[i]==0.0) continue;
                    if (zzH[i]>max) { max=zzH[i]; pos=i; }
                    zz[i]=0.0;
                  } 
               zz[pos]=max;
           //*/     
            }  
         lasthighpos=curhighpos;
         lasthigh=curhigh;    
         } 
         }      
    //---------------------------------------------------------------------

   if (alertsOn)
   {
      if (alertsOnCurrent)
         int whichBar = 0;
      else   whichBar = 1;
      if (zzH[whichBar] > 0) PlaySound("Пробой_вверх.wav");
  
      if (zzL[whichBar] > 0) PlaySound("Пробой_вниз.wav");
    
   }   
   return(0);
}

//+------------------------------------------------------------------+
//
//
//
//
//

void doAlert(string doWhat)
{
   static string   previousAlert="nothing";
   static datetime previousTime;
   string message;
   
      if (previousAlert != doWhat || previousTime != Time[0]) {
          previousAlert  = doWhat;
          previousTime   = Time[0];

         //

          message =  StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," DT_ZZ ",doWhat);
             if (alertsMessage) Alert(message);
             if (alertsEmail)   SendMail(StringConcatenate(Symbol()," DT_ZZ "),message);
             if (alertsSound)   PlaySound("alert2.wav");
      }
}



</code>
avatar

poruchik

  • 11 декабря 2016, 08:51
0
Для торговой системы подойдет любая торговая платформа, поскольку индикаторы Билла Вильямса уже давно стали стандартом и есть в любом терминале. Применять стратегию можно на любом таймфрейме, но автор стратегии рекомендует именно дневной график.

Система Profitunity состоит из индикаторов: Аллигатор, Awesome Oscillator (AO) и Фракталы. Также используется паттерн «Бар Бычьего/Медвежьего разворота». Различают 3 сигнала на вход, каждый из которых Билл Уильямс называет «мудрецом».

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

Первый мудрец — бар бычьего/медвежьего разворота
Это первый сигнал для входа в сделку.
avatar

poruchik

  • 1 декабря 2016, 15:53
0
Не пробовал. Спрашивали про такой индикатор, написал 27.11 его.
По отзывам вроде неплох
avatar

poruchik

  • 30 ноября 2016, 05:14
0
Что то криво в топике прикрепился индикатор

<code>

//|------------------------------------------------------------------|
//|                                               Indicator Arrow.mq4|
//|                                    Copyright © 2013, Mr.SilverKZ |
//|                                                 SilverKZ@mail.kz |
//|                                                                  |
//| 
//|                                                                  |
//|                                                                  |
//|  свечи в коде идут  3-2-1-0                                        |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "SilverKZ"

#property description " * * * * * * "

#property description " Ищет разворотный бар по Вильямсу "

#property description "  "

#property description " * poruchik * 27.11.16"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrRed
#property indicator_color2 clrBlue
#property indicator_color3 clrRed
#property indicator_color4 clrBlue

double buf_1[];
double buf_2[];
double buf_3[];
double buf_4[];


//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer(0,buf_1);
   SetIndexBuffer(1,buf_2);
   SetIndexBuffer(2,buf_3);
   SetIndexBuffer(3,buf_4);
   

   SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 1);
   SetIndexArrow (0,233);
   SetIndexArrow (1,234);
   
   SetIndexStyle (2,DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexStyle (3,DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow (2,171);
   SetIndexArrow (3,171);
   
   
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);
   SetIndexEmptyValue(3,0.0);
   
   
   
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if (Bars <= 100) return(0);
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0) return(-1);
   if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=Bars-ExtCountedBars-1; i>=0; i--)
     { 
      bool DOWN  = Close[i+0] < Open[i+0] && Close[i+1] > Open[i+1] && High[i+0]> High[i+1]&& Close[i+0] < ((High[i+0]+Low[i+0])/2);   
                    
      
      bool UP =   Close[i+0] > Open[i+0] && Close[i+1] < Open[i+1] && Low[i+0]< Low[i+1] && Close[i+0] > ((High[i+0]+Low[i+0])/2);  
      
       
      if (UP)       buf_1[i+0] = Low[i+0]-3*Point;
      if (UP)       buf_3[i+1] = Low[i+1]-2*Point ; 
      //if (UP)       buf_3[i+3] = High[i+3]+2*Point;
      
      if (DOWN)     buf_2[i+0] = High[i+0]+3*Point;
      if (DOWN)     buf_4[i+1] = High[i+1]+2*Point ; 
     // if (DOWN)     buf_4[i+3] = High[i+3]+2*Point;
      
      
      
     }
   return(0);
 }
  //  ---- end

//Бар бычьего разворота показывает более низкий минимум относительно предыдущего бара и закрывается выше своей середины. Это говорит о том, что в начале формирования бара силы были на стороне медведей, но затем власть перешла к быкам.

//В противоположность бычьему бару, также существует бар медвежьего разворота. Данный бар показывает новый максимум и закрывается в своей нижней половине. То есть, вначале правили быки, но под конец медведи одержали победу

//http://tradelikeapro.ru/torgovyiy-haos-profitunity/</code>
avatar

poruchik

  • 29 ноября 2016, 19:51
+1


А я думал вона в Корее ходит
avatar

poruchik

  • 29 ноября 2016, 18:24
Закрытая группа  Комментарий в закрытой группе / Закрытые архивы  
:: комментарий доступен только участникам закрытой группы "Закрытые архивы" - Читать ::
avatar

poruchik

  • 28 ноября 2016, 17:54
Закрытая группа  Комментарий в закрытой группе / Закрытые архивы  
:: комментарий доступен только участникам закрытой группы "Закрытые архивы" - Читать ::
avatar

poruchik

  • 28 ноября 2016, 15:56
+1
ЧТО КУРИМ?
avatar

poruchik

  • 25 ноября 2016, 23:44
0
Да, то же хотел написать для исправления.
==========
Трал так и просится :) 

Стопы может на концы свечи сигнальной?
avatar

poruchik

  • 12 октября 2016, 21:22
0


2 LWMA + что еще. Первоначально стрелка была при пересечении первой линии, для надежности переделали на 2-ую.
avatar

poruchik

  • 12 октября 2016, 05:22
0
<code>
//+------------------------------------------------------------------+
//|                                                 Two_Fractals.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern bool   ShowSignal = true;
extern bool   DrawRecs=true;
extern string note0="Минимальное тело свечи в пп";
extern int    min_candle = 3;
extern string note1="Разница между длиной теней в пп";
extern int    Razn = 3;
extern string note2="Цвет и толщина прямоугольника";
extern color  BuyColor = Red;
extern color  SellColor = PowderBlue;
extern color  NoSignalColor = Orange;
extern int RectangleWidth = 2;
extern string note3=" =0 для просмотра всей истории";
extern int    Bars_Count = 600;
extern string SoundFile = "Trumpet";

extern string sep0 = "";
extern string note4 = "Следить за:";
extern string pair00 = "EURUSD";
extern string pair01 = "GBPUSD";
extern string pair02 = "NZDUSD";
extern string pair03 = "USDCHF";
extern string pair04 = "USDJPY";
extern string pair05 = "USDCAD";
extern string pair06 = "AUDUSD";
extern string pair07 = "EURGBP";
extern string pair08 = "EURCHF";
extern string pair09 = "EURJPY";
extern string pair10 = "GBPCHF";
extern string pair11 = "GBPJPY";
extern string pair12 = "";
extern string pair13 = "";
extern string pair14 = "";
extern string pair15 = "";
extern string pair16 = "";
extern string pair17 = "";
extern string pair18 = "";
extern string pair19 = "";
extern string pair20 = "";
extern string sep1= "";
extern string note5 = "Проверять ТФ:";
extern string TF1   = "1";
extern string TF2   = "5";
extern string TF3   = "15";
extern string TF4   = "30";
extern string TF5   = "60";
extern string TF6   = "240";
extern string TF7   = "1440";
extern string TF8   = "10080";
extern string TF9   = "43200";

string pairs[21], TFr[9];
int keys[20][9];
int delta, uf, lf;
double l_shadow, u_shadow;
bool HistoryViewer, draw, Play;
double high5, high4, high3, high2, high1, low5, low4, low3, low2, low1, open3, close3;
string signal, symbol;
color BS_color;
//+------------------------------------------------------------------+
int init()  {
  delta=Razn*Point;
  if(Bars_Count==0) Bars_Count=Bars;
  pairs[0]=pair00;
  pairs[1]=pair01;
  pairs[2]=pair02;
  pairs[3]=pair03;
  pairs[4]=pair04;
  pairs[5]=pair05;
  pairs[6]=pair06;
  pairs[7]=pair07;
  pairs[8]=pair08;
  pairs[9]=pair09;
  pairs[10]=pair10;
  pairs[11]=pair11;
  pairs[12]=pair12;
  pairs[13]=pair13;
  pairs[14]=pair14;
  pairs[15]=pair15;
  pairs[16]=pair16;
  pairs[17]=pair17;
  pairs[18]=pair18;
  pairs[19]=pair19;
  pairs[20]=pair20;
  TFr[0]=TF1;
  TFr[1]=TF2;
  TFr[2]=TF3;
  TFr[3]=TF4;
  TFr[4]=TF5;
  TFr[5]=TF6;
  TFr[6]=TF7;
  TFr[7]=TF8;
  TFr[8]=TF9;
  return(0);
}
//+------------------------------------------------------------------+
int deinit()  {  for(int a=0; a<Bars; a++)   ObjectDelete("DF_" + a);  return(0);  }
//+------------------------------------------------------------------+
int start()  {
  int tf, time, key;
  if(!HistoryViewer)  DrawHistory(); 
  if(Play) { PlaySound(SoundFile);  Play=false;  } 

  for(int i=0;i<ArraySize(pairs);i++)   {
    if(pairs[i]=="") continue;
    symbol=pairs[i];
    for(int p=0;p<ArraySize(TFr);p++)     {
      if(TFr[p]=="") continue;
      tf=StrToInteger(TFr[p]);
      key=keys[i][p];
      time =iTime(symbol, tf, 0);
      if(keys[i][p]!=time)  {
        InitialData(symbol, tf);
        if(high3>MathMax(MathMax(high4,high5), MathMax(high1,high2)) &&
          low3<MathMin(MathMin(low4,low5),MathMin(low1,low2)) && 
          MathAbs(open3-close3)>min_candle*Point)  { 
            l_shadow=MathMin(open3, close3)-low3;
            u_shadow=high3-MathMax(open3, close3);
            if(l_shadow-u_shadow>delta)   {  signal="продажа по 2-F";  BS_color=BuyColor;  }
            if(u_shadow-l_shadow>delta)   {  signal="покупка по 2-F";  BS_color= SellColor;     }
            if(MathAbs(l_shadow-u_shadow)<=delta) {  BS_color= NoSignalColor;  }
            if(ShowSignal)  { Alert(symbol,"   ",tf," мин  ", signal); Play = true;  }
            int    time1=iTime(symbol, tf, 4);
            double price1=iHigh(symbol, tf, 3);  
            int    time2=iTime(symbol, tf, 2);
            double price2=iLow(symbol, tf, 3);  
            if(DrawRecs)  DrawRec(StringConcatenate("DF_",i), time1,price1,time2,price2, BS_color);
        }
        keys[i][p]=time;
  } } } 
  return(0); 
}
//+------------------------------------------------------------------+
void DrawRec(string name, int time1, double price1, int time2, double price2, color color1)  {
   ObjectCreate(name, OBJ_RECTANGLE, 0, time1, price1, time2, price2, 0, 0);
   ObjectSet(name, OBJPROP_WIDTH, RectangleWidth);
   ObjectSet(name, OBJPROP_BACK, false);
   ObjectSet(name, OBJPROP_COLOR, color1);
}
//+------------------------------------------------------------------+
void DrawHistory()  {
   for(int i=0; i<Bars_Count-3; i++)  {
     if(High[i+3]>MathMax(MathMax(High[i+4],High[i+5]), MathMax(High[i+1],High[i+2])) &&
       Low[i+3]<MathMin(MathMin(Low[i+4],Low[i+5]),MathMin(Low[i+1],Low[i+2])) &&
       MathAbs(Open[i+3]-Close[i+3])>min_candle*Point)  { 
       l_shadow=NormalizeDouble(MathMin(Open[i+3], Close[i+3])-Low[i+3],Digits);
       u_shadow=NormalizeDouble(High[i+3]-MathMax(Open[i+3], Close[i+3]),Digits);
       if(l_shadow-u_shadow>delta)   {  signal="продажа";  color BS_colors=BuyColor;  }
       if(u_shadow-l_shadow>delta)   {  signal="покупка";        BS_colors= SellColor;     }
       if(MathAbs(l_shadow-u_shadow)<=delta) {  BS_colors= NoSignalColor;  }
       int    time1=Time[i+4];
       double price1=High[i+3]+5*Point;  
       int    time2=Time[i+2];
       double price2=Low[i+3]-5*Point;  
       if(DrawRecs)  DrawRec(StringConcatenate("DF_",i), time1,price1,time2,price2, BS_colors);
   } }
   HistoryViewer=true;
   return; 
}
//+------------------------------------------------------------------+
void InitialData(string para, int per)  {
  high5=iHigh(para, per, 5);
  high4=iHigh(para, per, 4);
  high3=iHigh(para, per, 3);
  high2=iHigh(para, per, 2);
  high1=iHigh(para, per, 1);

  low5=iLow(para, per, 5);
  low4=iLow(para, per, 4);
  low3=iLow(para, per, 3);
  low2=iLow(para, per, 2);
  low1=iLow(para, per, 1);
  
  open3= iOpen(para, per, 3);
  close3=iClose(para, per, 3);

  uf=0;  lf=0;
  draw=false;
}
//+------------------------------------------------------------------+



</code>


Индикатор 2 фракталов, смотрит несколько пар

За сову — спасибо!
avatar

poruchik

  • 12 октября 2016, 05:03
0


Андрей, сов пропускает 2-х фракталки пока ТП не достигнут? Так и задумано?
Правда у меня 4-znak, еще не подстроил под себя
avatar

poruchik

  • 12 октября 2016, 04:55
+1
Получил. Спасибо, Наталика! Проходил верификацию, 2 фото паспорта + фото с паспортом в руках :) 
avatar

poruchik

  • 7 октября 2016, 15:12
0

Не все дни красит ( 

Скачивал готовый файл
avatar

poruchik

  • 18 сентября 2016, 20:29
0
точно, > 0
Это я в программировании так разбираюсь :) 
avatar

poruchik

  • 3 июля 2016, 10:25
0
speed=NormalizeDouble((p2-p1)/(Point*(n1-n2+0.0000001)),1);

не понял твой совет

сделал (подсмотрел у кого то такой финт) — добавляем малое число, оно ни на что не влияет, зато 0 не будет
avatar

poruchik

  • 3 июля 2016, 09:57
0
сегодня во вкладке эксперты заметил —
2016.07.03 07:07:48.232 Trend Speed EURUSD,H4: zero divide in 'TrendSpeed.mq4' (74,46)

speed=NormalizeDouble((p2-p1)/(Point*(n1-n2)),1);

последняя запятая (перед 1)
avatar

poruchik

  • 3 июля 2016, 07:25