Ayuda a la codificación - página 631

 
mladen:

Esta es una versión repintada del indicador sidus

La versión no repintada se puede descargar desde aquí : https://www.mql5.com/en/forum/180648/page293

Gracias
 

@mladen,

puede u arreglar este indicador por favor ...

tengo que refrescar el gráfico cada vez ... gracias

//+------------------------------------------------------------------+
//|                                                 pendingorder.mq4 |
//|                                                            Extra |
//|                                           pendingorder@gmail.com |
//+------------------------------------------------------------------+
#property copyright "pendingorder"
#property link      "pendingorder@gmail.com"

#property indicator_chart_window
#property indicator_buffers 5
#property  indicator_color1 DarkTurquoise
#property  indicator_color2 DarkTurquoise
#property  indicator_color3 Crimson
#property  indicator_color4 DarkTurquoise
#property  indicator_color5 Red
#include <WinUser32.mqh>

extern int  History     =     1000;
extern int  Previous    =        0;
extern int  Bwidth      =        1;
extern int  Delay       =        1;
extern int  Equal       =        1;
bool Opti        =     true;
extern int  Atr         =      1; 

//--- buffers
double Buffer3[],Buffer4[],Buffer2[],Buffer1[],Buffer5[];
double win,win1=0,ck=0,cel=0,stp=0,ol,ol1,ok,ok1,ok2;
int cc=0,oeq,eq1,drw=1;
string wc,wii,wii1,wii2;
color col;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  hWindow = WindowHandle( Symbol(), Period() );
  oldBars = iBars(NULL,RefreshPeriod);
//---- indicators
   SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);
   SetIndexArrow(0,234);
   SetIndexBuffer(0,Buffer1);
   
   SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);
   SetIndexArrow(1,233);
   SetIndexBuffer(1,Buffer2);
   
   
   SetIndexBuffer(2,Buffer3);
   SetIndexStyle(2,DRAW_NONE,STYLE_SOLID,0);
   SetIndexArrow(2,249);
   SetIndexBuffer(3,Buffer4);
   SetIndexStyle(3,DRAW_NONE,STYLE_SOLID,0);
   SetIndexArrow(3,249);
   SetIndexStyle(4,DRAW_NONE,STYLE_SOLID,2);
   SetIndexArrow(4,253);
   SetIndexBuffer(4,Buffer5);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
  ObjectsDeleteAll(0,OBJ_TEXT); 
  ObjectsDeleteAll(0,OBJ_ARROW);
  ObjectsDeleteAll(0,OBJ_LABEL);
    
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
 
  //logo();
  if(Opti==true){
  drw=0;
  eq1=1;
 while (eq1<=13)
 {
  opti();
  eq1++;}} 
  eq1=Equal;
  drw=1;
  opti();
  return(0);}
 
 int opti(){
 int Counted_bars=IndicatorCounted();
  int i,k,s=10;
  double x,x1,y,y1,z,z1,s1,s2,h1,h2,j1,j2,j3,j4,v,a,a1,b,b1,Now1;
  datetime tim1;
   i=Bars-Counted_bars-1;   
  if (i>History-1) 
  i=History-1;
 while(i>=0) 
 { 
   k=i+Previous;                                 
   x=Open[i];    
   
   x1=Open[i+1];   
   while(k>=0)
   {
   y=Open[k+1];   
   y1=Open[k];    
   if(x>=(y-Bwidth*Point) && x<y)z++;             
   if(x1<=y1+Bwidth*Point && x1>y1)z1++;
   k--;}//-----------------------------------------------------------------
   double atr=iATR(NULL,0,Atr,i);                
   if(z>eq1)s1=High[i]+atr;                   
   if(z1>eq1)s2=Low[i]-atr;                  
   if(s1==h1)j1++; else j1=0;                
   if(s2==h2)j2++; else j2=0;                  
   if(j1>Delay)Buffer3[i]=s1; else j3=0;       
   if(j2>Delay)Buffer4[i]=s2;else  j4=0;       
   //----------------------------------------------------------------------------------
   string text = DoubleToStr(s1,4), text1 = DoubleToStr(s2,4),TP,SL,TP1,SL1,Now;
   TP="TP "+DoubleToStr(b,3);
   TP1="TP "+DoubleToStr(a,3);
   SL=DoubleToStr(a1,3);
   SL1=DoubleToStr(a,3);
   //------------------------------------------------------------------------
   tim1 =iTime(NULL,0,i);
   Now= DoubleToStr(iMA(NULL,0,Bwidth,0,MODE_SMA,PRICE_MEDIAN,i),4);//
   //----------------------------------------------------------------------------------------------------------
   v=MathAbs(s1-s2);                                 
   a=Low[i]-v*Point;                       
   a1=Low[i]+v;                                      
   b=High[i]+v*Point;                     
   b1=High[i]-v;     
   
                                   
   //-------------------------------------------------------------
   if(Low[i+1]>s1 && Low[i+2]>s1 && j3==0 && s1 >Open[i+3]&&atr<Volume[i])
   //------------------------------------------------------------------------------------------------
   {Now1=(a+b)/2;win++;
   if(drw==1){
   Buffer1[i]=b;
   Buffer5[i]=b1;
   //ObjectCreate(Now,OBJ_ARROW,0,tim1,High[i] + 20 * Point,0,0);
   //ObjectSet(Now,OBJPROP_ARROWCODE,234);
   //ObjectSet(Now,OBJPROP_COLOR,White);
   ObjectCreate(text,OBJ_ARROW,0,tim1,High[i] + 50 * Point,0,0);
   ObjectSet(text,OBJPROP_ARROWCODE,5);
   ObjectSet(text,OBJPROP_COLOR,Crimson);
   ObjectCreate(SL1,OBJ_ARROW,0,tim1,High[i] + 50 * Point,0,0,0,0);
   ObjectSet(SL1,OBJPROP_ARROWCODE,5);
   ObjectSet(SL1,OBJPROP_COLOR,DarkTurquoise);
   }
   j3=1;cel=b;cc=1;stp=b1;
   }
   
   
   //------------------------------------------------------------------------------
   if(j2>2){if(High[i+1]<s2 && High[i+2]<s2 && j4==0&& s2<Open[i+3]&&atr<Volume[i])
   //--------------------------------------------------------------------------------------------------------
   {j4=1;win++;Now1=(a+b)/2;
   if(drw==1){
   Buffer2[i]=a;Buffer5[i]=a1;
   //ObjectCreate(Now,OBJ_ARROW,0,tim1,Low[i] - 20 * Point,0,0);
   //ObjectSet(Now,OBJPROP_ARROWCODE,233);
   //ObjectSet(Now,OBJPROP_COLOR,White);
   ObjectCreate(text1,OBJ_ARROW,0,tim1,Low[i] - 50 * Point,0,0);
   ObjectSet(text1,OBJPROP_ARROWCODE,5);
   ObjectSet(text1,OBJPROP_COLOR,Crimson);
   ObjectCreate(SL,OBJ_ARROW,0,tim1,Low[i] - 50 * Point,0,0);
   ObjectSet(SL,OBJPROP_ARROWCODE,5);
   ObjectSet(SL,OBJPROP_COLOR,DarkTurquoise);
   }
   cel=a;cc=1;stp=a1;}}
   z=0;z1=0;h1=s1;h2=s2; 
   
   if(High[i]>cel&&Low[i]<cel&&cc==1){win1++;cc=0;ok1=ok1+(MathAbs(cel-Now1)/Point);}
   i--;}                            
   return(0);}
   

return(0);}    
 
mladen:

morenokosta

Ese indicador nos parece bien tal y como está

No es necesario hacer ningún cambio de código

Hola, Mladen. Usted puede agregar este indicador parabolic_ziggy regresión cúbica, y la regresión en los siguientes grados, como se hace, por ejemplo, el indicador I-regr?
Y usted puede agregar el mismo grado de regresión también en este indicador?
Archivos adjuntos:
 
Garry119:
Hola, Mladen. Usted puede agregar este indicador parabolic_ziggy regresión cúbica, y la regresión en los siguientes grados, como se hace, por ejemplo, el indicador I-regr?
Y usted puede agregar el mismo grado de regresión también en este indicador?

Garry


¿Has probado a utilizar el parámetro _RegressionDegree?

 

Estimado mladen.

Me pregunto si es posible añadir un desplazamiento a cualquiera de las medias en su indicador Averages_ribbon 2_3. También parecería una locura si se pudiera pintar la "nube" entre las medias.

También es posible el código de flecha/alerta regular aunque no lo encuentro tan importante.

Gracias

[img]https://i.gyazo.com/2f6531b03b3780114167e08a23873961.png[/img]

 

hola :)

Tengo una pequeña petición - ¿podría alguien añadir, por favor, una opción para establecer en cuántas barras atrás se mostrarán los patrones (100, 500, etc.)? porque en el gráfico RangeBar este indicador muestra un montón de señales y ralentiza mi plataforma...

muchas gracias :)

Archivos adjuntos:
Patterns.mq4  17 kb
 
freakout:

hola :)

Tengo una pequeña petición - ¿podría alguien añadir, por favor, una opción para establecer en cuántas barras atrás se mostrarán los patrones (100, 500, etc.)? porque en el gráfico RangeBar este indicador muestra un montón de señales y ralentiza mi plataforma...

muchas gracias :)

freakout

Pruébalo ahora :

Archivos adjuntos:
 

Hola Mladen, por favor ayúdame con el filtro de la imagen de abajo.


 
kewu:

Hola Mladen, por favor ayúdame con el filtro de la imagen de abajo.


Lo siento pero por la imagen podría ser cualquier cosa. No hay manera de saber exactamente lo que es y lo que está haciendo
 
NWFstudent:

Estimado mladen.

Me pregunto si es posible añadir un desplazamiento a cualquiera de las medias en su indicador Averages_ribbon 2_3. También parecería una locura si se pudiera pintar la "nube" entre las medias.

También es posible el código de flecha/alerta regular aunque no lo encuentro tan importante.

Gracias

[img]https://i.gyazo.com/2f6531b03b3780114167e08a23873961.png[/img]

NWFstudent

El problema es que no podemos usar zonas rellenas como en metatrader 5 cuando usamos metatrader 4

Publicaré la versión de metatrader 5 mañana y verás lo que nos falta en metatader 4