Mt4 Fine del supporto. - pagina 31

 
Vladimir Pastushak:

4 cicli non è una figata? A 600 caratteri nella panoramica del mercato ogni minuto il terminale morirà ....

Di cosa stai parlando? Il timer fa un ciclo di 1 volta al minuto. Questo non è niente di niente.

E l'utente accede alla funzione New_bar() quando vuole.

 
Alexey Viktorov:
Per quanto riguarda il commento sul codice: E se avessimo bisogno di definire l'apertura del solo periodo corrente e di un solo carattere alla volta nel programma? L'intero costrutto girerà tutti i cicli? Sarebbe irrazionale.

Ho completamente frainteso il codice.

I nuovi eventi della barra dei simboli sono catturati in un ciclo una volta al minuto. Automaticamente. Se il numero attuale di barre non è uguale al numero di barre registrate nell'array, impostiamo il flag di un nuovo evento barra nell'array Events_new_bar[][].

 

Alexey Viktorov:


ps; E perché avviare un timer di millisecondi? Non è sufficiente un secondo timer?

Si può anche impostare un secondo timer. Poi scrivere "Timer_frequenza = 1000".

 

L'ho inserito, l'ho testato e non funziona.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Новый_бар(Symbol(), PERIOD_M1)) Print("M1 = ",Time[0]);
   if(Новый_бар("EURUSD", PERIOD_M5)) Print("M5 = ",Time[0]);
  }
Dà sempre un falso
 
Vladimir Pastushak:

Non sono 4 cicli? A 600 caratteri nella panoramica del mercato ogni minuto il terminale morirà ....

Mi chiedo se qualcuno ne ha davvero così tanti?

Ne ho 16 - e mi sto già chiedendo se il carico è troppo ?

È vero, ho un orizzonte temporale minimo di M15... Ma ancora, mi chiedo quando il carico sul terminale comincia ad essere critico?

 
Реter Konow:

Cosa vuoi dire? Il timer si attiva una volta al minuto. Questo non è niente di niente.

E New_bar() viene chiamata ogni volta che l'utente vuole.


La funzione "nuova barra" è di solito eseguita su ogni tick... Questa chiamata su ogni tick è fatta per risparmiare risorse. Rendetevi conto che la vostra funzione "risparmia" risorse, le consuma.

 
George Merts:
... Ma ancora, mi chiedo quando il carico sul terminale comincia ad essere critico?

Quando il processore si mette in ginocchio e non riesce ad alzarsi.

Con rispetto.

 
Реter Konow:

Ho completamente frainteso il codice.

I nuovi eventi della barra dei simboli sono catturati in un ciclo una volta al minuto. Automaticamente. Se il numero attuale di barre non è uguale a quello registrato nell'array, impostiamo il flag dell'evento nuova barra nell'array Events_new_bar[][].

Discutiamo un altro esempio di utilizzo di OOP.

Forum sul trading, sistemi di trading automatico e test di strategia

Mt4 Fine del supporto.

Alexey Viktorov, 2017.09.11 13:08

Credo di aver trovato un esempio primitivo dell'usabilità dell'OOP. Ecco una funzione per riempire un array con un valore specificato. Ci sono otto varietà a seconda del tipo di matrice.

Immaginate di dover scrivere una funzione che ha bisogno di passare un insieme di parametri, poi un altro, poi un terzo... Usando l'approccio algoritmico si ottengono N nomi di funzioni diverse. Sembrerebbe che non ci sia niente di sbagliato, potete scrivere 8 funzioni come ArrayInitializeInt()ArrayInitializeDouble() e così via. Ma è bello non pensare al tipo di array, basta usare una funzione in ogni caso, e quanto sia sicuro confondere quale array ci metti...


Документация по MQL5: Операции с массивами / ArrayInitialize
Документация по MQL5: Операции с массивами / ArrayInitialize
  • www.mql5.com
Операции с массивами / ArrayInitialize - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:

Installato, testato, non funziona

Emette sempre false.

1. Esegui l'EA su M1.

2. Bisogna aspettare che il bar attuale sia completamente finito. Alla prima barra, l'evento non è fisso. L'ho fatto apposta. Poi dovete aspettare il tempo che l'intervallo di tempo che state inviando alla funzione suggerisce.

L'ho provato per un minuto e ha funzionato.

 
Dmitry Fedoseev:

La funzione "nuova barra" è normalmente eseguita su ogni tick... Questa chiamata su ogni tick è fatta per risparmiare risorse. Rendetevi conto che la vostra funzione "risparmia" risorse, le consuma.

Ovviamente non sai leggere i codici. )) Dove li divora?
Motivazione: