Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1417

 

E qui ho una specie di pasticcio... Voglio nascondere alcuni livelli, e renderne altri con un certo stile (come altrimenti).

Così il livello zero nello stile di debug cambia, ma non appena si nasconde il primo livello, torna al giallo. Beh, non anche nel debug. La scritta con il valore è solo del colore giusto. Che dolore con questo fibonacci....

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

buon pomeriggio a tutti.

per favore ditemi come risolvere il problema

c'è una classe che elabora posizioni e ordini e li verifica con il database.

abbiamo bisogno di passare STRUTTURE (stringa, double, int, stringa .....) da questa classe.

come si può fare

e se possibile un link a un esempio

 
Sergey Li #:

Buon pomeriggio a tutti.

per favore ditemi come risolvere il problema

c'è una classe che elabora le posizioni e gli ordini e li controlla con il database

è necessario passare STRUTTURE (stringa, double, int, stringa .....) da questa classe.

come si può fare

e se possibile un link a un esempio

Ci sono esempi nella libreria standard.

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
prima di inviare un ordine dobbiamo controllare quando è stata aperta l'ultima posizione su un simbolo, cosa è più veloce guardare nella cronologia o nella variabile globale del terminale?
 
lynxntech globale del terminale?

Non può essere più veloce che nella variabile. C'è solo una correzione: è possibile utilizzare la variabile globale del terminale per salvarla al riavvio del terminale e cercare nella cronologia in OnInit(). Ma quando si passa a OnTick(), questo valore deve essere nella variabile globale del livello, ma non nella variabile globale del terminale.

 
Alexey Viktorov #:

Non può essere più veloce che in una variabile. Solo una correzione: è possibile utilizzare la variabile globale del terminale per salvarla al riavvio del terminale e scavare nella cronologia in OnInit(). Ma quando si passa a OnTick(), questo valore deve essere nella variabile di livello globale, ma non nella variabile globale del terminale.

La variabile globale del terminale è così lenta, perché dovrebbe essere memorizzata nella stessa memoria di una normale, non è un'enorme quantità di informazioni che viene richiesta al disco quando necessario.

 
lynxntech #:

Una variabile globale è così lenta, perché dovrebbe essere memorizzata nella stessa memoria di una variabile normale, non è un'enorme quantità di informazioni che viene richiesta al disco quando serve.

A grandi linee, una variabile globale del terminale è quasi come un file. Altrimenti, dove verrebbe memorizzata quando il computer viene spento? E una variabile di livello globale accessibile da qualsiasi punto del programma è una variabile in memoria. Naturalmente, è più veloce.

Si scopre che a una nuova apertura è meglio scrivere sia sulla variabile di livello globale sia sulla variabile globale del terminale per ripristinarla dopo il riavvio del terminale. Ma mentre il terminale è in esecuzione, la variabile di livello globale deve essere controllata.

 
Alexey Viktorov #:

A grandi linee, una variabile globale del terminale è quasi come un file. Altrimenti, dove verrebbe memorizzata quando il computer è spento? E una variabile di livello globale accessibile da qualsiasi punto del programma è una variabile in memoria. Naturalmente, è più veloce.

Si scopre che a una nuova apertura è meglio scrivere sia sulla variabile di livello globale sia sulla variabile globale del terminale per ripristinarla dopo il riavvio del terminale. Ma mentre il terminale è in esecuzione, la variabile di livello globale deve essere controllata.

cioè controllare la cronologia in OnDeinit e scriverla nella variabile globale del terminale?

Idealmente, ci sono solo un paio di byte di informazioni in forma di testo, non sono contenute nella disponibilità come variabili abituali, cioè nella RAM?

In OnInit la leggiamo, la scriviamo nella RAM e poi quando la variabile viene aggiornata viene sovrascritta.

Qualcuno ha misurato questo aspetto o forse gli sviluppatori possono aiutarci a capirlo.

 
lynxntech #:

Cioè controllare la cronologia in OnDeinit e scrivere nel Terminale globale?

Idealmente, ci sono solo un paio di byte di informazioni in forma di testo, non sono contenute nella disponibilità come normali variabili, cioè nella RAM?

In OnInit la leggiamo, la scriviamo nella RAM e poi quando la variabile viene aggiornata viene sovrascritta.

Qualcuno ha misurato questo aspetto o forse gli sviluppatori possono aiutarci a capirlo.

Chi ha parlato di prelevare la cronologia in OnDeinit()?

Stavo parlando della necessità di duplicare la variabile nella variabile del terminale all'apertura della posizione successiva...

 
Alexey Viktorov #:

Chi ha parlato di selezionare la storia in OnDeinit()?

Stavo parlando della necessità di duplicare la variabile nella variabile terminale all'apertura della posizione successiva...

Si può fare tutto, la domanda era rivolta a chi ha misurato il lavoro reale, e meglio agli sviluppatori, che sanno cosa hanno in programma.

Non voglio fare esperimenti, ci sono molti altri compiti.