Copiar y pegar rectangulo.

 

Buenos dias!

                     Necesito ayuda para un Indicador.

                     ¿Como podria crear un rectangulo relleno y copiarlo y moverlo a otra posicion?

                      He sido capaz de dibujarlo pero no veo como copiarlo y mover la copia a otra posicion.


Muchas gracias por adelantado.

 
xyon126:

Buenos dias!

                     Necesito ayuda para un Indicador.

                     ¿Como podria crear un rectangulo relleno y copiarlo y moverlo a otra posicion?

                      He sido capaz de dibujarlo pero no veo como copiarlo y mover la copia a otra posicion.


Muchas gracias por adelantado.

Lo seleccionas (que se vean los cuatro puntos exteriores y el del medio) y con la tecla CTRL presionado, lo "mueves" con el mouse y deberia copiarse

Espero haberlo explicado Bien

Saludos!!!

 
Miguel Antonio Rojas Martinez:

Lo seleccionas (que se vean los cuatro puntos exteriores y el del medio) y con la tecla CTRL presionado, lo "mueves" con el mouse y deberia copiarse

Espero haberlo explicado Bien

Saludos!!!

Muchas gracias! Pero me refiero en MQL4 codigo de programación, en MT4 no tengo ningun problema. Es esto lo que quiero obtener con un indicador y/o EA


hasta ahora tengo este codigo:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---Definimos el final del Periodo de apertura.
   string EndOfOpenPeriod = "10:00:";

//---Calculamos el tiempo actual
   string CurrenTime = TimeToString(TimeLocal(),TIME_SECONDS);
//datetime StringToTime (CurrenTime = time1);

//---Si definimos el tiempo del periodo y no existe, respondemos -1
   int EndOfOpenPeriodFound = StringFind(CurrenTime,EndOfOpenPeriod,0);
   
//---Buscamos el precio maximo de las ultimas 24 velas o 2 horas(M5).
   int HighestCandle = iHighest(_Symbol,_Period,MODE_HIGH,24,0);
   double Point1 = HighestCandle;   //Punto 1 o punto superior rectángulo inicial.

///---Buscamos el minimo precio de las ultimas 24 velas o 2 horas(M5).
   int LowestCandle = iLowest(_Symbol,_Period,MODE_LOW,24,0);
   double Point2 = LowestCandle;   //Punto 2 o punto inferior rectángulo inicial.

//---Buscamos el valor deseado que se encuentra en el tiempo actual
   if(EndOfOpenPeriodFound != -1)

     {
      //Borramos los rectángulos existentes del dia anterior.
      ObjectDelete("Rectangle");
      ObjectDelete("RectangleBUY");
      ObjectDelete("RectangleSELL");

      //---Creamos el rectángulo inicial.
      ObjectCreate("Rectangle",OBJ_RECTANGLE, 0, Time[0],High[HighestCandle],Time[24],Low[LowestCandle]);
      ObjectSetInteger(0,"Rectangle",OBJPROP_COLOR,clrGold);
      double Altura = ObjectGetDouble(0,"Rectangle",OBJPROP_PRICE1)-ObjectGetDouble(0,"Rectangle",OBJPROP_PRICE2);
      
  //price2=price1-300*SymbolInfoDouble(Symbol(),SYMBOL_POINT);

      double   Point3= Point1+Altura;     //--Buscamos punto superior rectángulo BUY.
      double   Point4= Point1;            //--Buscamos punto inferior rectángulo BUY que es igual al Punto1.
      double   Point5= Point2;            //--Buscamos punto superior rectángulo SELL que es igual al Punto2.
      double   Point6= Point1-Altura;     //--Buscamos punto inferior rectángulo SELL.
      
      datetime Time1 = TimeCurrent();
      datetime Time2 = Time[0-24];
      datetime Time3 = TimeCurrent();
      datetime Time4 = Time[0-24];
      
      double   Price1= Point3;
      double   Price2= Point4;
      double   Price3= Point5;
      double   Price4= Point6;  
      
      
      
      Comment ("\n\nAltura = ",Altura,"\nPunto 1 = ", Point1,"\nPunto 2 = ",Point2,
                 "\nPunto 3 = ", Point3,"\nPunto 4 = ", Point4,"\nPunto 5 = ", Point5,
                 "\nPunto 6 = ", Point6);

      ObjectCreate("RectangleBUY",OBJ_RECTANGLE, 0,Time[0],Point3,Time[0-24],Point4);
      
      //CreateRectangle("RectangleBUY",Time1,Price1,Time2,Price2,clrGreenYellow);

      //CreateRectangle("RectangleSELL",Time3,Price3,Time4,Price4,clrHotPink);

     }
  }
//+------------------------------------------------------------------+
void CreateRectangle(string   name="",
                     datetime time1=0,
                     double   price1=0,
                     datetime time2=0,
                     double   price2=0,
                     color    clr=0,
                     bool     relleno=True)
  {
//--- set rectangle color
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);

//--- set the style of rectangle lines
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);

//--- set width of the rectangle lines
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);

//--- habilitar (verdadero) o deshabilitar (falso) el modo de relleno del rectángulo
   ObjectSetInteger(0,name,OBJPROP_FILL,relleno);

//--- mostrar en primer plano (falso) o en segundo plano (verdadero)
   ObjectSetInteger(0,name,OBJPROP_BACK,false);

   return(true);
  }
pero solo consigo dibujar el amarillo.
Archivos adjuntos:
 
xyon126 #:

Muchas gracias! Pero me refiero en MQL4 codigo de programación, en MT4 no tengo ningun problema. Es esto lo que quiero obtener con un indicador y/o EA


hasta ahora tengo este codigo:

pero solo consigo dibujar el amarillo.
Revisa este ejemplo, creo que te va a ayudar : https://docs.mql4.com/constants/objectconstants/enum_object/obj_rectangle
OBJ_RECTANGLE - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
OBJ_RECTANGLE - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
  • docs.mql4.com
OBJ_RECTANGLE - Object Types - Objects Constants - Constants, Enumerations and Structures - MQL4 Reference
 
Alejandro De Alba #:
Revisa este ejemplo, creo que te va a ayudar : https://docs.mql4.com/constants/objectconstants/enum_object/obj_rectangle

Hola Alejandro!

                   Muchas gracias por la respuesta pero aparte de que ya lo conocia, no me ayuda nada, mi problema no es que se dibuje un rectangulo automaticamente, lo que necesito es poder realizar un rectangulo igual que si lo hiciese con la funcion rectangulo del MT4 pero desde un indicador creado por mi, donde habran varios botones, cada boton dara opcion ha dibujar un rectangulo de un color especifico y situandolo donde con el raton(igual a la funcion rectangulo)clique su inicio y arrastrando el raton hasta el final del otro vertice del rectangulo y me lo dibuje, es decir, en vez de dibujar un rectangulo con la funcion rectangulo del MT4 en el Chart, yo lo dibujare apretando un boton de un panel propio y con el color de relleno del mismo que del boton, este panel podra tener 4 o 6 botones de varios colores y dependiendo del boton pòdre dibujar el rectangulo de ese color sin tener que estar cambiando sus propiedades despues, esta es mi idea y mi problema, yo el panel lo tengo como indico arriba casi terminado pero no consigo encontrar las funciones del raton para crear el 1er punto o vertice del rectangulo y arrastrar este hasta su vertice contrario, creo que debe ser un CHART_EVENT, MOUSE_CLICK, MOUSE_MOVE pero no se exactamente como utilizar esas funciones o las necesarias para conseguirlo.


Un saludo

 
xyon126 #:

  • Por lo general, las personas que no pueden codificar no reciben ayuda gratuita en este foro, aunque podría suceder si tiene suerte. Sea paciente.
  • Si muestra sus intentos y describe su problema con claridad, lo más probable es que reciba una respuesta de la comunidad.
  • Si no quiere aprender a codificar, eso no es un problema. Puede mirar la sección CodeBase si ya existe algo gratuito, o en el Market para productos de pago (también a veces gratis).
  • Por último, también tiene la opción de contratar un programador en la sección Freelance.

Buena suerte.

https://www.mql5.com/es/forum/205039

Reglas del foro y recomendaciones
Reglas del foro y recomendaciones
  • 2017.06.22
  • www.mql5.com
Reglas del foro y recomendaciones Cada idioma cuenta con su respectivo foro, y es por ello que está prohibido comunicarse en otro lenguaje que no...
 
Manuel De Los Heros Soler #:

Hola Alejandro!

                   Muchas gracias por la respuesta pero aparte de que ya lo conocia, no me ayuda nada, mi problema no es que se dibuje un rectangulo automaticamente, lo que necesito es poder realizar un rectangulo igual que si lo hiciese con la funcion rectangulo del MT4 pero desde un indicador creado por mi, donde habran varios botones, cada boton dara opcion ha dibujar un rectangulo de un color especifico y situandolo donde con el raton(igual a la funcion rectangulo)clique su inicio y arrastrando el raton hasta el final del otro vertice del rectangulo y me lo dibuje, es decir, en vez de dibujar un rectangulo con la funcion rectangulo del MT4 en el Chart, yo lo dibujare apretando un boton de un panel propio y con el color de relleno del mismo que del boton, este panel podra tener 4 o 6 botones de varios colores y dependiendo del boton pòdre dibujar el rectangulo de ese color sin tener que estar cambiando sus propiedades despues, esta es mi idea y mi problema, yo el panel lo tengo como indico arriba casi terminado pero no consigo encontrar las funciones del raton para crear el 1er punto o vertice del rectangulo y arrastrar este hasta su vertice contrario, creo que debe ser un CHART_EVENT, MOUSE_CLICK, MOUSE_MOVE pero no se exactamente como utilizar esas funciones o las necesarias para conseguirlo.


Un saludo

Pudiste solucionarlo? tengo un problema similar.

Razón de la queja: