consulente esperto - domande varie - pagina 20

 
#Stop Loss, Take Profit - Drags - Open

Dal mio ultimo commento ho iniziato la ricerca sul forum e sull'articolo per Stop Loss e Take Profit - Object Drags.
Ma è per MT5.

Quindi, prima di iniziare a leggerlo o provare quell'articolo, per favore fatemi sapere se quell'articolo sarebbe utile per MT4?
Inoltre, se è possibile, vi prego di condividere con me un buon articolo per gli oggetti trascinati.

Grazie in anticipo.
 
Sì, OnChartEvent() è lo stesso per entrambe le lingue.
 
Marco vd Heijden:
Sì, OnChartEvent() è lo stesso per entrambe le lingue.
Buono a sapersi, posso iniziare a leggerlo.
Grazie mille.
 

Ho anche scoperto che molti dei codici che sono stati scritti per MT5 ora funzionano anche su MT4.

Lo so perché ho provato molte cose in passato e le cose che non funzionavano un anno fa, funzionano ora, quindi questo dimostra che stanno ancora sviluppando attivamente entrambe le lingue.

 
Marco vd Heijden:

Ho anche scoperto che molti dei codici che sono stati scritti per MT5 ora funzionano anche su MT4.
Lo so perché ho provato molte cose in passato e le cose che non funzionavano un anno fa, funzionano ora, quindi questo dimostra che stanno ancora sviluppando attivamente entrambe le lingue.

È bello sapere questo. Ho sempre pensato (/ preoccupato) che il linguaggio MT4 non sarà utilizzato presto. Grazie amico.
 
// 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
Grazie in anticipo.
 

Ho già letto l'articolo e controllato alcuni altri codici di persone per 'CHARTEVENT_OBJECT_DRAG ' che come utilizzare da esso.
Ma purtroppo non ha senso per me. Proprio ora sto pensando che stavo perdendo il mio tempo per cose inutili. Perché il loro stile di codice è davvero diverso dal mio.
(il mio stile di codice è solo semplice - come lo stile di codice della documentazione di mql4 - che è quello che sto capendo un po' di più)

Solo il mio scopo quando trascino l'oggetto 'Stop Loss, Take Profit, Pending Orders' che potrebbe muoversi con quell'oggetto. (naturalmente tutti loro potrebbero essere separatamente)

Inoltre ho visto uno script EA per modificare gli ordini (sl, tp ecc.) - e funziona senza 'CHARTEVENT_OBJECT_DRAG'... Spero che tu sappia cosa intendo.

Ora, ho davvero bisogno di aiuto solo con un semplice esempio per 'CHARTEVENT_OBJECT_DRAG' con HLine o Trendline Object. O chiaramente spiegazione o solo qualcosa di buono ( / più chiaramente ) commento.
Ho già speso un sacco di tempo e sto ancora facendo ricerche su questo. Spero di ottenere presto una risposta.

Tutto il meglio per voi.
Grazie in anticipo.

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

Questo sarà vero Mattina o Mezzanotte

// 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

Questo ha un caso separato per Morning e un caso separato per Midnight.

Quindi sono due cose diverse.

Max Enrik:

Ho già letto l'articolo e controllato alcuni altri codici di persone per 'CHARTEVENT_OBJECT_DRAG ' che come usare da esso.
Ma sfortunatamente questo non ha senso per me. Proprio ora sto pensando che stavo perdendo il mio tempo per cose inutili. Perché il loro stile di codice è davvero diverso dal mio.
(il mio stile di codice è solo semplice - come lo stile di codice della documentazione di mql4 - che è quello che sto capendo un po' di più)

Solo il mio scopo quando trascino l'oggetto 'Stop Loss, Take Profit, Pending Orders' che potrebbe muoversi con quell'oggetto. (naturalmente tutti loro potrebbero essere separatamente)

Inoltre ho visto uno script EA per modificare gli ordini (sl, tp ecc.) - e funziona senza 'CHARTEVENT_OBJECT_DRAG'... Spero che tu sappia cosa intendo.

Ora, ho davvero bisogno di aiuto solo con un semplice esempio per 'CHARTEVENT_OBJECT_DRAG' con HLine o Trendline Object. O chiaramente spiegazione o solo qualcosa di buono ( / più chiaramente ) commento.
Ho già speso un sacco di tempo e sto ancora facendo ricerche su questo. Spero di ottenere presto una risposta.

Tutto il meglio per voi.
Grazie in anticipo.


Puoi trascinare una linea quando

OBJPROP_SELECTABLE ==1
OBJPROP_SELECTED ==1

Entrambi sono veri e puoi semplicemente leggere i valori usando \

ObjectGet Double(....

Al posto di

ObjectSetDouble(....
Non è così difficile e può essere molto utile.
 
Marco vd Heijden:

Quasi non avevo idea di come posso scrivere codice per Stop Loss e Take Profit Drags quando ho iniziato a farlo, grazie mille amico.
Ora sento che posso fare quello che voglio dopo il tuo grande commento.

Mercato chiuso

Allora, ho già provato e ora posso ottenere 'OBJPROP_PRICE' che voglio.
Quando trascino l'oggetto 'HLine' e poi Print() si aggiorna una volta in un secondo. Perché uso EventSetTimer( 1 ).

Ma ho bisogno che Print() non si aggiorni una volta al secondo. Vorrei che Print() si aggiornasse dopo che ho smesso di trascinare.
Se mi capite per favore aiutatemi o datemi un consiglio.

Tutto il meglio per voi.

 

Quindi potete memorizzare il valore di OBJPROP_PRICE in un doppio e poi confrontarli.

Se differiscono si sa che il trascinamento è stato iniziato, e poi se sono di nuovo uguali si sa che il trascinamento è stato fermato.

//+------------------------------------------------------------------+
//|                                                   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));
        }
     }
  }
//+------------------------------------------------------------------+

Oppure si potrebbe avviare un contatore una volta che il trascinamento è stato rilevato, ci sono molti modi per farlo,

Motivazione: