Imparare e scrivere insieme in MQL5 - pagina 3

 
FlyAgaric   :

"Mi sembra abbastanza semplice...".

Usare MS Visual Studio gratuito (o qualsiasi altro analogo) come ambiente di sviluppo.

Rilasceremo l'"adattatore" standard mql5.exe per permettere la compilazione da altri IDE. Tuttavia, il debug funzionerà solo dal MetaEditor.

Tuttavia, personalmente dubito che abbia senso lavorare con il codice MQL5 di altri IDE.

Il MetaEditor sarà ulteriormente migliorato e sarà anche direttamente integrato con MQL5.com e la sua Code Base.

E MQL4(MQL5) sarà implementato come libreria usando uno dei linguaggi (VB, C++ e C#). Quest'ultimo,

a mio parere, è il più espressivo. Ora avete un ambiente di sviluppo debuggato e testato nel tempo

con tutti gli attributi necessari. E il codice compilato è più adatto a Windows.

Se volete scrivere il codice più veloce possibile, potete creare le vostre DLL e chiamarle da MQL5.

Secondo gli autori, tutto verrà eseguito 4-20 volte più velocemente in MQL5. Non è stato notato. Un semplice indicatore

La media mobile con alcune modifiche minori è molto più lenta che in MQL4.

Ho dato la mia opinione, se offende qualcuno - vi prego di scusarmi.

MQL5 è infatti molte volte più veloce di MQL4, anche se l'ottimizzazione del codice è disabilitata prima del rilascio.

Non appena ci avvicineremo al rilascio del sistema, pubblicheremo i test di performance open source in modo che chiunque possa controllare e assicurarsi.
 
Renat :


Se volete scrivere il codice più veloce possibile, potete creare le vostre DLL e chiamarle da MQL5.


MQL5 è davvero molte volte più veloce di MQL4, anche se l'ottimizzazione del codice è disabilitata prima del rilascio.


Non appena ci avvicineremo al rilascio del sistema, pubblicheremo dei test di performance aperti con i sorgenti, in modo che chiunque possa controllare e assicurarsi.

Grazie per l'attenzione. Non pensavo che qualcuno l'avrebbe letto nel suo giorno libero.

Renat, questi erano i miei pensieri ad alta voce. Sarò molto felice se tutto quello che hai in mente andrà bene.

Per quanto riguarda l'uso della DLL, non sono stato in grado di ottenerla in MT4 o MT5. L'ho scritto in C++ e C#.

Congratulazioni per le prossime vacanze e buona fortuna a MetaQuotes Software Corp.

 
FlyAgaric   :

Per quanto riguarda l'uso di una DLL, non sono riuscito a trovarla né in MT4 né in MT5. Scrivevo in C++ e C#.

Congratulazioni per le prossime vacanze e buona fortuna a MetaQuotes Software Corp.

Allega il progetto DLL tagliato con i sorgenti nell'archivio ZIP direttamente al Forum - ti aiuteranno di sicuro.

Grazie per le congratulazioni!

 

Ciao a tutti!

Aiutatemi, ragazzi.

Ho bisogno di ottenere l'ora dell'ultima citazione nell'espresso. Forse c'è un modo semplice per farlo?

Finora, sto facendo questo:

      err=0;
      do
        {
         rates_total=CopyTime(NULL,PERIOD_CURRENT,0,1,iTime);
         err++;
        }
      while(rates_total<=0 && err<QUANTITY_OF_ATTEMPTS);
      if(err>=QUANTITY_OF_ATTEMPTS)
        {
         cur_time=TimeCurrent();
        }
      else
        {
         cur_time=iTime[0];
        } 

C'è un modo più semplice?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
vdv2001   :

Ciao a tutti!

Aiutatemi, ragazzi.

Ho bisogno di ottenere l'ora dell'ultima citazione nell'espresso. Forse c'è un modo semplice per farlo?

Finora, sto facendo questo:

C'è un modo più semplice?

Vedi Struttura per i prezzi attuali
 

Buon pomeriggio.

Il mio Expert Advisor sta calcolandoun profilo di mercato su M1, tutto funziona bene quando lo metto sul grafico, ma se spengo il terminale e lo riaccendo dopo qualche ora, si verifica un errore e l'Expert Advisor va in crash.

Sospetto che sia a causa della storia di swap, la funzione di inizializzazione viene eseguita prima che i dati aggiornati vengano caricati (i calcoli principali vengono eseguiti all'inizializzazione) e quindi si blocca.

Ho una domanda: come posso determinare da Init che i dati dello strumento sono completamente caricati? Quando ho controllato se il terminale è collegato al server non sempre aiuta, cioè se i dati "freschi" non sono troppi allora funziona bene, se qualche giorno allora si blocca con un errore o non calcola gli ultimi giorni.

Mi puoi dire come si fa a segnalare che tutti i dati sono aggiornati?

Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
  • 2010.01.26
  • Dmitry
  • www.mql5.com
Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
 
vdv2001   :

Buon pomeriggio.

Il mio Expert Advisor sta calcolando un profilo di mercato su M1, tutto funziona bene quando lo metto sul grafico, ma se spengo il terminale e lo riaccendo dopo qualche ora, si verifica un errore e l'Expert Advisor va in crash.

Sospetto che sia a causa della storia di swap, la funzione di inizializzazione viene eseguita prima che i dati aggiornati vengano caricati (i calcoli principali vengono eseguiti all'inizializzazione) e quindi si blocca.

Ho una domanda: come posso sapere da Init che i dati dell'utensile sono completamente caricati? Quando ho controllato se il terminale è collegato al server non sempre aiuta, cioè se i dati "freschi" non sono troppi allora funziona bene, se qualche giorno allora si blocca con un errore o non calcola gli ultimi giorni.

Puoi dirmi come alzare la bandiera che tutti i dati sono aggiornati?

Spostate l'inizializzazione sulla storia da OnInit() a OnTick() (dovete controllare che il codice venga eseguito solo 1 volta) e tutti i problemi con la paginazione spariranno

 
 
alsu   :

Spostate l'inizializzazione sulla storia da OnInit() a OnTick() (il codice dovrebbe essere controllato per essere eseguito solo una volta) e tutti i problemi di paginazione scompariranno.

Un problema è scomparso, ma dopo il trasferimento dei calcoli a OnTick() ne è apparso un altro - i mercati che non funzionano al momento hanno un grafico vuoto e la funzione OnTick() non viene chiamata.

 
Rosh   :
Vedere anche Organizzare l'accesso ai dati


Grazie per averla risolta in questo modo:

int OnInit()
  {
//---
   while(!(bool)SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED))
     {
      Sleep(20);
     }
   if(ExtExpert.Init())
      return(0);
   else
      return(-1);
  }
Motivazione: