Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1381

 
Alexey Viktorov:

Non c'è niente di soprannaturale. Il solito OBJ_BITMAP_LABEL e in esso qualsiasi cosa vogliate come risorsa. Kanvas funziona anche in OBJ_BITMAP_LABEL.

Ma il tuo modo è molto più facile per un utente inesperto.

Capisco il tuo punto di vista, grazie.
 
Alexey Viktorov:

Impara come inserire del codice in un messaggio.

E alla domanda: leggete la documentazione su CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
Non funziona. Ogni volta che OnTick viene chiamato, il risultato della variabile Ticks è 0.
 
Boris:
Non funziona. Ogni volta che OnTick viene chiamato, il risultato della variabile Ticks è 0.

Sei sicuro di aver bisogno di zecche passate all'ingresso. 10 secondi non sono così lunghi, si può aspettare e contare i tic effettivi e il loro numero.

In generale, avete bisogno di 2 variabili per il primo secondo e ricordate quanti tick ci sono stati in 9 secondi e sommateli, poi contate i tick per il secondo successivo, sottraete il primo e aggiungete l'ultimo. I risultati dovrebbero essere memorizzati in un array o in una variabile.

 
Valeriy Yastremskiy:

Sei sicuro di aver bisogno di zecche passate all'ingresso. 10 secondi non sono così lunghi, si può aspettare e contare i tic effettivi e il loro numero.

In generale, avete bisogno di 2 variabili per il primo secondo e ricordate quanti tick ci sono stati in 9 secondi e sommateli, poi contate i tick per il secondo successivo, sottraete il primo e aggiungete l'ultimo. Questi risultati sono salvati in un array o in una variabile.

Risulta che questo non può essere fatto attraverso le funzioni CopyTicks e CopyTicksRange?

Grazie.

 
Boris:
Non funziona. Ogni volta che OnTick viene chiamato, il risultato della variabile Ticks è 0.

Leggete la documentazione!!!

O volete tutta la documentazione copiata qui pezzo per pezzo?

da_msc

[in] Data a partire dalla quale sono richieste le zecche. Specificato in millisecondi dal 01.01.1970. Se il parametrofrom_msc non è specificato, allora i tick sono restituiti dall'inizio della storia. Vengono restituiti i tick con tempo >= from_msc.

to_msc

[Data in cui sono richieste le zecche. Specificato in millisecondi dal 01.01.1970. Vengono restituiti i tick con tempo <= to_msc. Se il parametroto_msc non è specificato, vengono dati tutti i tick fino alla fine della storia .

 
Valeriy Yastremskiy:

Sei sicuro di aver bisogno di zecche passate all'ingresso. 10 secondi non sono così lunghi, si può aspettare e contare i tic effettivi e il loro numero.

In generale, avete bisogno di 2 variabili per il primo secondo e ricordate quanti tick ci sono stati in 9 secondi e sommateli, poi contate i tick per il secondo successivo, sottraete il primo e aggiungete l'ultimo. Salva i risultati in un array o in una variabile.

Perché dare questo consiglio?

 
Boris:

Quindi non può essere fatto attraverso le funzioni CopyTicks e CopyTicksRange?

Grazie.

Sì, è possibile. Leggete la documentazione, e poi chiedete cosa non capite nella documentazione. In questo modo arriverete più rapidamente alla verità).

 
Alexey Viktorov:

Perché dare questo consiglio?

Lo faccio io stesso. Perché entrare nelle strutture quando si possono risolvere le azioni brevi da soli.

 
Valeriy Yastremskiy:

Lo faccio io stesso. Perché entrare nelle strutture quando si possono risolvere le azioni brevi da soli.

E mi gratto l'orecchio sinistro con il mignolo destro... Posso insegnarti... Ti serve? Non insegnare agli altri quello che stai facendo attraverso.....................

 
Valeriy Yastremskiy:

È possibile. Leggete la documentazione e poi chiedete cosa non capite nella documentazione. Questa è la via più rapida per la verità).

Quindi... Leggete la documentazione (di nuovo).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Domanda. Cosa c'è che non va? Non conta né con CopyTicksRange né con CopyTicks