Punto y figura

10 respuestas

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #116547

¿Es posible crear un indicador Punto y Figura o EA en el Asistente de EA?

Gracias de antemano por cualquier ayuda o info 🙂 .

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142290

Hola,

 

¿Cómo se trabaja con Point&Figure en MetaTrader? Debería ser posible hacerlo. EA producido por el Asistente no está limitado por la configuración de cierto marco de tiempo

0

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #142303

Hola, gracias por su respuesta. Actualmente utilizo un indicador de punto y figura que obtuve de un foro de Internet que funciona bien en Metatrader. Lo he importado como un indicador personalizado en EA Wizard. He intentado utilizar la salida del indicador en EA Wizard sin éxito. Obvioulsy, no tengo experiencia en la codificación o el uso del asistente de EA, así que no estoy seguro de si estoy haciendo algo mal. Esa es la razón por la que estoy escribiendo a este foro para averiguar tal vez si yo sólo podía utilizar las funciones en el asistente de EA para crear el punto y figura lógica y la salida. Yo estaría feliz de utilizar cualquiera de los métodos (indicador personalizado o crear uno yo mismo), siempre y cuando yo soy capaz de programar rupturas de las X y O en el Asistente de EA para crear un EA.

No estoy seguro de cómo adjuntar un archivo mq4 en este post así que he cortado y pegado el código. Perdón por mi ignorancia 🙁 ¡Gracias!

 

//+——————————————————————+

//| XO.mq4 ||
//| GranParadiso |
//+——————————————————————+
#property copyright "GranParadiso"
#property enlace "[email protected]"
 
#propiedad indicator_chart_window
#propiedad indicator_buffers 2
#propiedad indicador_color1 Rojo
#property indicador_estilo1 STYLE_SOLID
#propiedad indicator_width1 2
#propiedad indicador_color2 Verde
#propiedad indicator_style2 STYLE_SOLID
#propiedad indicator_width2 2
 
 
extern int TamañoCaja = 5;
extern int ImporteReversión = 3;
 
 
int ÍndiceUltimaBarraCalculada;
int ÚltimaTendencia;
double arr_XO_Open[];
double arr_XO_Close[];
doble arr_Open[];
doble arr_Cerrar[];
//+——————————————————————+
//|                                                                  |
//+——————————————————————+
int init()
  {
   IndicadorBuffers(4);
   SetIndexBuffer(0,arr_XO_Open);
   SetIndexStyle(0,DRAW_HISTOGRAM);
 
   SetIndexBuffer(1,arr_XO_Close);
   SetIndexStyle(1,DRAW_HISTOGRAM);
 
   SetIndexBuffer(2,arr_Open);
   SetIndexBuffer(3,arr_Close);
 
   return(0);
  }
//+——————————————————————+
//|                                                                  |
//+——————————————————————+
int inicio()
  {
   int
   j,
   k;
   doble UP,
   DW;
 
   int barras_contadas=IndicadorContado();
   if(barras_contadas < 0) return(-1);
   if(barras_contadas>0) barras_contadas-;
   int limit=Barras_contadas;
   if(counted_bars==0) limit-=1+1;
 
   for(int i=limit;i>=0;i-)
     {
      LastTrend=0;
      if(i==Bars-1)
        {
         arr_Open[i]=MathRound(Close[i]*(MathPow(10,Digits)/TamañoCaja))/(MathPow(10,Digits)/TamañoCaja);
         arr_Close[i]=arr_Open[i];
         continuar;
        }
 
      if(arr_Open[i+1]>arr_Close[i+1]) LastTrend=-1;
      if(arr_Open[i+1]<arr_Close[i+1]) LastTrend=1;
 
      arr_Close[i]=arr_Close[i+1];
      arr_Open[i]=arr_Open[i+1];
 
      UP=0,0;
      DW=0,0;
 
      ARRIBA=(Alto[i]-arr_Cierre[i])/Punto;
      DW=(arr_Close[i]-Low[i])/Punto;
 
      switch(ÚltimaTendencia)
        {
         caso 1:
            if(UP<TamañoCaja) UP=0.0;
            si no UP=MathFloor(UP/TamañoCaja)*TamañoCaja;
            if(DW<(TamañoCaja*ImporteReversión)) DW=0,0;
            si no DW=MathFloor(DW/TamañoCaja)*TamañoCaja;
            arr_Close[i]=arr_Close[i]+UP*Punto;
            if(DW!=0.0)
              {
               arr_Close[i+1]=arr_Close[i+1]+UP*Point;
               arr_Open[i]=arr_Close[i+1]-TamañoCaja*Punto;
               arr_Close[i]=arr_Close[i+1]-UP*Punto-DW*Punto;
              }
            romper;
 
         caso -1:
            if(UP<(BoxSize*ReversalAmount)) UP=0.0;
            si no UP=MathFloor(UP/TamañoCaja)*TamañoCaja;
            if(DW<TamañoCaja) DW=0.0;
            si no DW=MathFloor(DW/TamañoCaja)*TamañoCaja;
            arr_Cerrar[i]=arr_Cerrar[i]-DW*Punto;
            if(UP!=0.0)
              {
               arr_Close[i+1]=arr_Close[i+1]-DW*Point;
               arr_Open[i]=arr_Close[i+1]+TamañoCaja*Punto;
               arr_Close[i]=arr_Close[i+1]+UP*Punto+DW*Punto;
              }
            romper;
 
         por defecto:
            if(UP<(BoxSize*ReversalAmount)) UP=0.0;
            si no UP=MathFloor(UP/TamañoCaja)*TamañoCaja;
            if(DW<(TamañoCaja*ImporteReversión)) DW=0,0;
            si no DW=MathFloor(DW/TamañoCaja)*TamañoCaja;
            arr_Close[i]=arr_Close[i]+UP*Punto;
            arr_Cerrar[i]=arr_Cerrar[i]-DW*Punto;
            romper;
        }
     }
 
   limit=0;
   k=0;
   if(arr_Open[0]!=arr_XO_Open[0])
     {
      limit=Barras;
      arr_XO_Open[0]=arr_Open[0];
      arr_XO_Close[0]=arr_Close[0];
     }
   for(j=1;j<limit;j++)
     {
      if(arr_Open[j]!=arr_XO_Open[k])
        {
         k++;
         arr_XO_Open[k]=arr_Open[j];
         arr_XO_Close[k]=arr_Close[j];
        }
     }
 
   return(0);
  }
//+——————————————————————+

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142318

Hola,

 

ok voy a comprobar lo que se puede hacer aquí

0

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #142336

Gracias por su ayuda... ¡se lo agradezco mucho!

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142359

Hola,

 

¿ha conseguido importar el indicador como se muestra en la captura de pantalla adjunta?

0

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #142362

Hola,

 

Sí, lo he importado de esa manera. Como mencioné, intenté utilizar las salidas (es decir, arr_XO_Open a,d arr_XO_Close) en el asistente de EA, pero no tuve éxito. Puede que lo haya utilizado de forma incorrecta....i asumió que esas 2 variables eran los niveles X u O del gráfico de puntos y figuras. ¿Ha tenido suerte en el uso de los 2 ouputs de alguna manera?

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142371

Hola,

 

sí, me funciona bien con el EA adjunto

0

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #142376

Hola,

 

Tengo problemas para abrir el archivo que enviaste. Cuando hago doble clic.. dice que Windows no puede abrirlo. He intentado bloc de notas, pero se abre con un montón de texto que im no está familiarizado con. ¿Alguna sugerencia? 

Además...cuando dices que te funciona bien...¿quieres decir que esas variables ( arr_XO_open, arr_XO_close) se pueden usar como los niveles X y O en el EA? Cual usaría yo? Básicamente quiero poder programar una ruptura, por una cantidad introducida por el usuario, de la columna "X" u "O" de un gráfico de puntos y figuras. En el EA que probé antes de escribir a este foro, lo programé para comprar a mercado si las variables se rompían por una cantidad fija. Cuando probé el EA en el probador de estrategias en MT4, no se realizaron operaciones. 

0

tomas262

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 7 años #142378

Hola,

 

No importa, ver capturas de pantalla adjunta sobre cómo lo configuro

Archivo: PF1.jpgPF1.jpg
Archivo: PF2.jpgPF2.jpg
Archivo: PF3.jpgPF3.jpg

0

¡nates!

Suscriptor, bbp_participant, comunidad, 7 respuestas.

Visitar el perfil

hace 7 años #142459

Hola, gracias por tu ayuda. Gracias a tu uso de la función "Log to Journal", he conseguido averiguar qué son las 2 variables (arr_XO_open, arr_XO_close) y sus valores. Estoy tratando de hacer uso de esos valores en mi intento de un EA. ¡Gran trabajo en progreso tho! ¡Gracias por su ayuda de nuevo y lo más probable es estar de vuelta en este foro en un futuro próximo pidiendo más! ¡Gracias!

0

Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)