Индикаторы: VR---FIGURA - страница 3

 

Странно, у меня нарисовало абракадабру. Начал разбираться с кодом и нашел несколько ошибок. (не всегда в сутках 24 часовых бара!!!).  Исправил и слегка подправил код(поиск min и max упростил и убыстрил):

//+------------------------------------------------------------------+
//|                            VR---FIGURA                           |
//|                                                                  |
//|                  http://www.trading-go.ru                        |
//+------------------------------------------------------------------+
// Индикатор по четырех угольным паттернам , предназначен для работы 
// на часовых таймфремах. Индикатор отображает четырех угольную фигуру
// углами которой являются 
// 1 открытие дня 
// 2 максимум дня 
// 3 закрытие дня 
// 4 минимум  дня
// Суть системы в визуальном пределении последующего движения
// Если последняя фигура имеет сужение и сужение меньше основания фигуры ПРОГНОЗИРУЕТСЯ ПРОДОЛЖЕНИЕ ТЕНДЕНЦИИ  (минимум на размер основания)
// Если последняя фигура имеет расширение больше чем основание фигуры ПРОГНОЗИРУЕТСЯ ВОЗМОЖНАЯ СМЕНА ТЕНДЕНЦИИ (минимум на размер основания)
// Если основание и конец фигуры визуально равны ПРОГНОЗИРУЕТСЯ КОРРЕКЦИЯ
//
#property copyright " Trading-go "
#property link      " www.trading-go.ru "
#property indicator_chart_window
 
extern int   Days  = 20  ;                      // Колличество дней для обработки
extern int   WIDTH =  3  ;                      // Толщина линий
int deinit ()
{ for(int x=0;x<Days;x++)  
 {
ObjectDelete("opma"+x);
ObjectDelete("opmu"+x);                         //Удаление линий при деинициализации
ObjectDelete("opmq"+x);
ObjectDelete("opms"+x);
 }
}
int start()
  {
 
int timup=0;
int timdw=0;
if (Period()!=60)
{
Comment("УСТАНОВИТЕ ЧАСОВОЙ ПЕРИОД");
for(int P=0;P<Days;P++)  
 {
ObjectDelete("opma"+P);
ObjectDelete("opmu"+P);                         //Удаление линий при деинициализации
ObjectDelete("opmq"+P);
ObjectDelete("opms"+P);
 }
return(0);}
 for(int x=0;x<Days;x++)  
 {
int  t_day_end,t_day_begin;
t_day_begin = iTime(Symbol(),1440,x);  //Время начала дня
if   (x==0) t_day_end=iTime(Symbol(),1,x);
else        t_day_end= iTime(Symbol(),1440,x-1); //Время конца  дня
double price_day_end = NormalizeDouble(iClose (Symbol(),60,(iBarShift(NULL,60,t_day_end,FALSE)+1)),Digits);
if (x==0) price_day_end = NormalizeDouble(iClose (Symbol(),1,0),Digits);
double price_day_start  = NormalizeDouble(iOpen (Symbol(),1440,x  ),Digits); 
 
 
double max=0;
double min=0;
 int te=iBarShift(NULL,60,t_day_end,FALSE);
 int tb=iBarShift(NULL,60,t_day_begin,FALSE);
 int i_max=ArrayMaximum(High,tb-te,te+1);
 int i_min=ArrayMinimum(Low,tb-te,te+1);
 max  =High[i_max];    //Поиск максимума в нутри дня
 timup=Time[i_max];    //Время максимума внутри дня
 min=Low[i_min];      //Поиск минимума в нутри дня
 timdw=Time[i_min];   //Время минимума внутри дня
if (Period()==60){ 
ObjectCreate("opma"+x,OBJ_TREND,0,t_day_end,price_day_end,timup,max);  //Отрисовка линий
ObjectSet   ("opma"+x,OBJPROP_RAY,false);
ObjectSet   ("opma"+x,OBJPROP_COLOR,Blue);
ObjectSet   ("opma"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opmu"+x,OBJ_TREND,0,timup,max,t_day_begin,price_day_start);
ObjectSet   ("opmu"+x,OBJPROP_RAY,false);
ObjectSet   ("opmu"+x,OBJPROP_COLOR,Red);
ObjectSet   ("opmu"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opmq"+x,OBJ_TREND,0,t_day_end,price_day_end,timdw,min);
ObjectSet   ("opmq"+x,OBJPROP_RAY,false);
ObjectSet   ("opmq"+x,OBJPROP_COLOR,LawnGreen);
ObjectSet   ("opmq"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opms"+x,OBJ_TREND,0,timdw,min,t_day_begin,price_day_start);
ObjectSet   ("opms"+x,OBJPROP_RAY,false);
ObjectSet   ("opms"+x,OBJPROP_COLOR,Blue);
ObjectSet   ("opms"+x,OBJPROP_WIDTH,WIDTH);
}
 }
 }
 

Наглядность

 Ну так, для наглядности)) Хотела ещё и темплейт выложить, но чёт не поняла как.... 

 

Похоже автору эта тема стала безразлична, а жаль. Процентовка VR---OTKAT может быть поинтересней.................Аксель..............Мюррей...+ - ~= //\\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 
1235813213455:

Похоже автору эта тема стала безразлична, а жаль. Процентовка VR---OTKAT может быть поинтересней.................Аксель..............Мюррей...+ - ~= //\\ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


Привет ! Мне не безразлично я частенько захожу сюда ... Я Вас слушаю .
 
Привет! А что если его переделать в двойной зигзаг: 1) макс-мини-макс, 2) мини-макс-мини. + вилы Эндрюса(вкл/выкл)
 
1235813213455:
Привет! А что если его переделать в двойной зигзаг: 1) макс-мини-макс, 2) мини-макс-мини. + вилы Эндрюса(вкл/выкл)


На картинке(Н4) - двойной зигзаг и MTF_FractalsChannel с тф1440.

 
1235813213455:
1235813213455:
Привет! А что если его переделать в двойной зигзаг: 1) макс-мини-макс, 2) мини-макс-мини. + вилы Эндрюса(вкл/выкл)


На картинке(Н4) - двойной зигзаг и MTF_FractalsChannel с тф1440.


Каким образом переделать ???
 
Привет это не работает на МТ4.  "'[' - expressions are not allowed on a global scope    VR---FIGURA.mq4    87    1
 
rossiya:
Привет это не работает на МТ4.  "'[' - expressions are not allowed on a global scope    VR---FIGURA.mq4    87    1
 
VOLDEMAR:
//+------------------------------------------------------------------+
//|                            VR---FIGURA                           |
//|                                                                  |
//|                  http://www.trading-go.ru                        |
//+------------------------------------------------------------------+
// Индикатор по четырех угольным паттернам , предназначен для работы 
// на часовых таймфремах. Индикатор отображает четырех угольную фигуру
// углами которой являются 
// 1 открытие дня 
// 2 максимум дня 
// 3 закрытие дня 
// 4 минимум  дня
// Суть системы в визуальном пределении последующего движения
// Если последняя фигура имеет сужение и сужение меньше основания фигуры ПРОГНОЗИРУЕТСЯ ПРОДОЛЖЕНИЕ ТЕНДЕНЦИИ  (минимум на размер основания)
// Если последняя фигура имеет расширение больше чем основание фигуры ПРОГНОЗИРУЕТСЯ ВОЗМОЖНАЯ СМЕНА ТЕНДЕНЦИИ (минимум на размер основания)
// Если основание и конец фигуры визуально равны ПРОГНОЗИРУЕТСЯ КОРРЕКЦИЯ
//
#property copyright " Trading-go "
#property link      " www.trading-go.ru "
#property indicator_chart_window
 
extern int   Days  = 20  ;                      // Колличество дней для обработки
extern int   WIDTH =  3  ;                      // Толщина линий
int deinit ()
{ for(int x=0;x<Days;x++)  
 {
ObjectDelete("opma"+x);
ObjectDelete("opmu"+x);                         //Удаление линий при деинициализации
ObjectDelete("opmq"+x);
ObjectDelete("opms"+x);
 }
}
int start()
  {
 
int timup=0;
int timdw=0;
if (Period()!=60)
{
Comment("УСТАНОВИТЕ ЧАСОВОЙ ПЕРИОД");
for(int P=0;P<Days;P++)  
 {
ObjectDelete("opma"+P);
ObjectDelete("opmu"+P);                         //Удаление линий при деинициализации
ObjectDelete("opmq"+P);
ObjectDelete("opms"+P);
 }
return(0);}
 for(int x=0;x<Days;x++)  
 {
int  t_day_end,t_day_begin;
t_day_begin = iTime(Symbol(),1440,x);  //Время начала дня
if   (x==0) t_day_end=iTime(Symbol(),1,x);
else        t_day_end= iTime(Symbol(),1440,x-1); //Время конца  дня
double price_day_end = NormalizeDouble(iClose (Symbol(),60,(iBarShift(NULL,60,t_day_end,FALSE)+1)),Digits);
if (x==0) price_day_end = NormalizeDouble(iClose (Symbol(),1,0),Digits);
double price_day_start  = NormalizeDouble(iOpen (Symbol(),1440,x  ),Digits); 
 
 
double max=0;
double min=0;
 int te=iBarShift(NULL,60,t_day_end,FALSE);
 int tb=iBarShift(NULL,60,t_day_begin,FALSE);
 int i_max=ArrayMaximum(High,tb-te,te+1);
 int i_min=ArrayMinimum(Low,tb-te,te+1);
 max  =High[i_max];    //Поиск максимума в нутри дня
 timup=Time[i_max];    //Время максимума внутри дня
 min=Low[i_min];      //Поиск минимума в нутри дня
 timdw=Time[i_min];   //Время минимума внутри дня
if (Period()==60){ 
ObjectCreate("opma"+x,OBJ_TREND,0,t_day_end,price_day_end,timup,max);  //Отрисовка линий
ObjectSet   ("opma"+x,OBJPROP_RAY,false);
ObjectSet   ("opma"+x,OBJPROP_COLOR,Blue);
ObjectSet   ("opma"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opmu"+x,OBJ_TREND,0,timup,max,t_day_begin,price_day_start);
ObjectSet   ("opmu"+x,OBJPROP_RAY,false);
ObjectSet   ("opmu"+x,OBJPROP_COLOR,Red);
ObjectSet   ("opmu"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opmq"+x,OBJ_TREND,0,t_day_end,price_day_end,timdw,min);
ObjectSet   ("opmq"+x,OBJPROP_RAY,false);
ObjectSet   ("opmq"+x,OBJPROP_COLOR,LawnGreen);
ObjectSet   ("opmq"+x,OBJPROP_WIDTH,WIDTH);
 
ObjectCreate("opms"+x,OBJ_TREND,0,timdw,min,t_day_begin,price_day_start);
ObjectSet   ("opms"+x,OBJPROP_RAY,false);
ObjectSet   ("opms"+x,OBJPROP_COLOR,Blue);
ObjectSet   ("opms"+x,OBJPROP_WIDTH,WIDTH);
}
 }
 }