asesor experto - preguntas varias - página 20

 
#Stop Loss, Take Profit - Arrastre - Abierto

Desde mi último comentario que se inició el foro de investigación y el artículo de Stop Loss y Take Profit - Arrastre de objetos.
Pero es para MT5.

Así que antes de empezar a leer o probar ese artículo, por favor, hágame saber es que el artículo sería útil para MT4?
También, si es posible, por favor, comparta conmigo un buen artículo para los objetos de arrastre.

Gracias de antemano.
 
Sí, el OnChartEvent() es el mismo para ambos idiomas.
 
Marco vd Heijden:
Sí, el OnChartEvent() es el mismo para ambos idiomas.
Me alegro de saberlo, ya puedo empezar a leerlo.
Muchas gracias.
 

También he encontrado que muchos de los códigos que fueron escritos para MT5 ahora también funcionan en MT4.

Lo sé porque he probado muchas cosas en el pasado y cosas que no funcionaban hace un año, funcionan ahora, así que esto demuestra que siguen desarrollando activamente ambos lenguajes.

 
Marco vd Heijden:

También he encontrado que muchos de los códigos que fueron escritos para MT5 ahora también funcionan en MT4.
Lo sé porque he probado muchas cosas en el pasado y cosas que no funcionaban hace un año, funcionan ahora, así que esto demuestra que todavía están desarrollando activamente ambos lenguajes.

Es bueno saber eso. Siempre pienso ( / preocupación ) acerca de que el lenguaje MT4 no se utilizará pronto. Gracias hombre.
 
// I say Once ' Do not turn... ' for ' if ' operator - this is good.
if  ( Morning || Midnight )
{
    // Do not turn on light just for today...
}

// I say Twice ' Do not turn... ' for ' switch ' operator - Q: Can I say ' Once '?
switch ( Today )
{
    case    Morning  :    // Do not turn on light just for today...
    break;
    case    Midnight :    // Do not turn on light just for today...
    break;
}   //---switch Close
Gracias de antemano.
 

Ya he leído el artículo y comprobado algunos códigos de otras personas para 'CHARTEVENT_OBJECT_DRAG ' que cómo se utiliza de ella.
Pero desafortunadamente eso no tiene sentido para mí. Ahora pienso que he perdido mi tiempo en cosas inútiles. Porque su estilo de código es muy diferente al mío.
( mi estilo de codigo es simple - como el estilo de codigo de la documentacion de mql4 - el cual estoy entendiendo un poco mas )

Solo mi propósito cuando arrastro el objeto 'Stop Loss, Take Profit, Pending Orders' que podría moverse con ese objeto. ( por supuesto todos ellos podrían ser por separado )

También he visto un script de EA para modificar órdenes ( sl, tp etc.) - y funciona sin ' CHARTEVENT_OBJECT_DRAG '... Espero que sepas lo que quiero decir.

Ahora, realmente necesito ayuda con un simple ejemplo para 'CHARTEVENT_OBJECT_DRAG' con HLine o Trendline Object. O claramente la explicación o simplemente algo bueno ( / más claramente ) comentario.
Ya he pasado mucho tiempo y todavía estoy investigando sobre eso. Espero que me respondan pronto.

Todo lo mejor para usted.
Gracias de antemano.

 
// I say Once ' Do not turn... ' for ' if ' operator - this is good.
if  ( Morning || Midnight )
{
    // Do not turn on light just for today...
}

Esto será verdad Mañana o medianoche

// I say Twice ' Do not turn... ' for ' switch ' operator - Q: Can I say ' Once '?
switch ( Today )
{
    case    Morning  :    // Do not turn on light just for today...
    break;
    case    Midnight :    // Do not turn on light just for today...
    break;
}   //---switch Close

Esto tiene un caso separado para la mañana y un caso separado para la medianoche.

Así que son dos cosas diferentes.

Max Enrik:

Ya he leído el artículo y comprobado algunos códigos de otras personas para 'CHARTEVENT_OBJECT_DRAG ' que cómo se utiliza de ella.
Pero desafortunadamente eso no tiene sentido para mí. Ahora pienso que he perdido mi tiempo en cosas inútiles. Porque su estilo de código es muy diferente al mío.
( mi estilo de codigo es simple - como el estilo de codigo de la documentacion de mql4 - el cual estoy entendiendo un poco mas )

Solo mi propósito cuando arrastro el objeto 'Stop Loss, Take Profit, Pending Orders' que podría moverse con ese objeto. ( por supuesto todos ellos podrían ser por separado )

También he visto un script de EA para modificar órdenes ( sl, tp etc. ) - y funciona sin ' CHARTEVENT_OBJECT_DRAG '... Espero que sepas lo que quiero decir.

Ahora, realmente necesito ayuda con un simple ejemplo para 'CHARTEVENT_OBJECT_DRAG' con HLine o Trendline Object. O claramente la explicación o simplemente algo bueno ( / más claramente ) comentario.
Ya he pasado mucho tiempo y todavía estoy investigando sobre eso. Espero que me respondan pronto.

Todo lo mejor para usted.
Gracias de antemano.


Puede arrastrar una línea cuando

OBJPROP_SELECTABLE ==1
OBJPROP_SELECTED ==1

Ambos son verdaderos y usted puede leer simplemente los valores en el uso de \ ~.

ObjectGet Double(....

En lugar de

ObjectSetDouble(....
No es tan difícil y puede ser muy útil.
 
Marco vd Heijden:

Casi no tenía ni idea de cómo puedo escribir el código para Stop Loss y Take Profit Drags cuando empecé a hacerlo, muchas gracias hombre.
Ahora siento que puedo hacer lo que quiero después de su gran comentario.

Mercado Cerrado

Ya lo he intentado y ahora puedo obtener ' OBJPROP_PRICE ' que es lo que quiero.
Cuando arrastro el objeto ' HLine ' y luego Print() se actualiza una vez en un segundo. Porque uso EventSetTimer( 1 ).

Pero necesito que Print() no se actualice una vez por segundo. Me gustaría que Print() se actualizara después de dejar de arrastrar.
Si me entiendes por favor ayúdame o dame un consejo.

Todo lo mejor para ti.

 

Así que puede almacenar el valor de OBJPROP_PRICE en un doble y luego compararlos.

Si difieren sabes que el arrastre se ha iniciado, y luego si vuelven a ser iguales sabes que el arrastre se ha detenido.

//+------------------------------------------------------------------+
//|                                                   Drag Hline.mq4 |
//|      Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

double price; // price variable;
bool drag;     // drag flag
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(1);
//--- create Hline
   ObjectCreate(0,"line",OBJ_HLINE,0,0,Ask);
//--- store value
   price=ObjectGetDouble(0,"line",OBJPROP_PRICE,0);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- compare values
   if(price!=ObjectGetDouble(0,"line",OBJPROP_PRICE,0))
     {
      drag=1;                                          // set drag flag
      price=ObjectGetDouble(0,"line",OBJPROP_PRICE,0); //store new value
     }
   if(drag==1)
     {
      if(price==ObjectGetDouble(0,"line",OBJPROP_PRICE,0))
        {
         drag=0; //reset drag flag
         Alert(" New value set: ", DoubleToString(price));
        }
     }
  }
//+------------------------------------------------------------------+

O podrías iniciar un contador una vez que se haya detectado el arrastre hay muchas formas de hacerlo.,