Questa è la nuova classe CCanvas3D che estende le capacità di CCanvas.
Abbiamo aggiunto una tonnellata di metodi nativi DirectX 11 in MQL5 in modo da poter visualizzare modelli complessi in proiezioni 3D.
Nella release, il lavoro nativo con SQLite SQLite in MQL5 sarà molto probabilmente anche disponibile, se avremo tempo. Questo semplificherà enormemente il lavoro con dati massicci e farà selezioni rapide.
Non c'è bisogno di preoccuparsi delle dimensioni del terminale - è molto compatto e integrale nelle sue capacità.
Abbiamo aggiunto DirectX per consentire la creazione di una nuova classe di programmi. Potente e più professionale grazie alla visualizzazione di alta qualità.
SQLite semplificherà drasticamente il lavoro con dati massicci ed eterogenei. Non c'è bisogno di avere a che fare con collegamenti primitivi ai file, basta salvare nel database.
Andiamo oltre:
Aggiungiamo il supporto Clang / LLVM per C / C ++ all'editor per compilare progetti DLL / EXE localmente.
Ancora più importante, stiamo aprendo una nuova classe di programmi sotto forma di moduli scritti in C / C ++ e convertiti in modo sicuro in EX5
Sarà possibile compilare le librerie esistenti in EX5 con piccole correzioni. Tutte le chiamate api potenzialmente pericolose saranno sostituite da wrapper di controllo MQL5.
Aggiungiamo il supporto Python per rendere facile l'esecuzione di script python dall'editor per generare / elaborare dati per MQL5
Espandiamo le impostazioni dettagliate di commissioni e slittamenti del tester in aggiunta alle impostazioni dei simboli già ridefinite nella beta
Riduciamo i costi delle risorse e lo schema stesso della consegna dei dati storici agli agenti locali
Qualcosa sarà disponibile nella release del 27 novembre, e il resto nelle prossime beta e release.
La versione beta della piattaforma MetaTrader 5 aggiornata sarà rilasciata il 29 novembre 2019. Invitiamo tutti i trader a partecipare al test della nuova piattaforma per valutare tutte le sue caratteristiche e per aiutare gli sviluppatori a correggere gli errori.
Per aggiornare la piattaforma MetaTrader 5 fino alla build 2245, vai su Help \ Check Desktop Updates \ Latest Beta Version:
La versione finale della nuova build della piattaforma MetaTrader 5 sarà rilasciata dopo il beta testing pubblico.
La nuova versione presenta i seguenti cambiamenti:
Terminale: Più colonne sono diventate disponibili in Market Watch. La sezione principale ora presenta 40 parametri aggiuntivi per i simboli, che prima erano disponibili solo nella scheda Dettagli.
Terminale: Aggiunta l'evidenziazione del conto attualmente connesso e del server corrente nel Navigatore. La funzione sarà utile se hai più conti con diversi broker.
Terminale: Aggiornato il design delle cornici per i grafici. Le cornici sono diventate più piccole e quindi più spazio è ora disponibile per le informazioni utili.
Terminale: Algoritmo modificato per il calcolo dei totali di trading quando si visualizza la storia del trading come posizioni. I valori sono ora calcolati sulla base delle registrazioni effettive.
Per visualizzare la storia del trading come posizioni, il terminale usa le informazioni sulle operazioni eseguite durante il periodo richiesto. Solo le posizioni chiuse in questo periodo saranno mostrate nella storia. Se la posizione è ancora aperta o il suo tempo di chiusura non rientra nell'intervallo selezionato, non verrà visualizzata nella storia. Pertanto, il profitto totale e la commissione nella modalità "posizioni" possono essere diversi da quelli della modalità "ordini/vendite".
Per esempio, state visualizzando la cronologia dell'ultima settimana. Durante questo periodo sono state eseguite 100 operazioni, 98 delle quali hanno aperto e chiuso 20 posizioni. Le ultime due operazioni hanno aperto nuove posizioni, che non sono state chiuse fino ad ora. In questo caso, la storia delle operazioni contiene 100 record e i valori totali appropriati calcolati sulla base di queste operazioni. Quando si visualizza la storia come posizioni, si vedranno 20 record raccolti sulla base di 98 operazioni. Solo questi dati saranno presi in considerazione nel calcolo dei valori totali. Se il broker addebita le commissioni di entrata, il valore finale delle commissioni nella cronologia delle operazioni sarà diverso dalle commissioni mostrate nella cronologia delle posizioni, perché in quest'ultimo caso due ultime operazioni saranno ignorate.
Terminale: Implementato un lancio più veloce dei programmi MQL5.
Terminale: È stata aggiunta la nuova chiave /beta per il file di installazione del terminale, che permette di scaricare la versione beta. In modalità normale, la versione di rilascio deve essere installata per prima, che può poi essere aggiornata fino alla versione beta. Saltando questo passaggio, è possibile risparmiare tempo e traffico. Esempio di inizio installazione:
C:\mt5setup.exe /beta
Terminale: Corretta la visualizzazione dei requisiti di margine per gli strumenti con il tipo "Exchange Stocks".
Terminale: Funzionamento accelerato di tutti i componenti della piattaforma grazie all'uso del compilatore Clang/LLVM. In alcuni casi la compilazione è più veloce del 20%.
MQL5: Aggiunte nuove funzioni DirectX 11 e shader per la visualizzazione 3D. Ora una potente grafica tridimensionale può essere creata direttamente in MQL5.
La nuova classe CCanvas3D è un'estensione della classe grafica personalizzata CCanvas. È disponibile nella directory \MQL5\Include\Canvas\. La classe dispone di funzioni per il rendering di oggetti tridimensionali tramite DirectX API.
Crea - crea una scena.
Attach - lega una scena ad un grafico.
Destroy - distrugge una scena.
ObjectAdd - aggiunge alla scena un oggetto discendente ereditato dalla classe base CDXObject.
Render - il ciclo di rendering completo, con la pulizia del buffer e il rendering di tutti i CDXObject, aggiunti tramite il metodo ObjectAdd.
RenderBegin - avvia il rendering della scena, riempie il buffer di rendering con il colore specificato (se è impostato il flag DX_CLEAR_COLOR) e i buffer di profondità (quando si usa DX_CLEAR_DEPTH), oltre a impostare il buffer di scena DXInputScene per gli shader di default.
RenderEnd - completa il rendering della scena e riceve un risultato in un buffer interno. Se redraw==true, visualizza l'immagine sul grafico su cui è in esecuzione.
ViewMatrixGet - riceve una matrice di vista.
ViewMatrixSet - imposta una matrice di vista. La matrice non è compatibile con i metodi ViewPositionSet, ViewRotationSet, ViewTargetSet e ViewUpDirectionsSet.
ViewPositionSet - imposta la posizione della telecamera.
ViewRotationSet - imposta la matrice di rotazione della telecamera.
ViewTargetSet - imposta il punto verso cui la telecamera sta puntando. Insieme a ViewUpDirectionsSet, è un'alternativa a ViewRotationSet.
ViewUpDirectionsSet - imposta la posizione verticale della telecamera. Insieme a ViewTargetSet, è un'alternativa a ViewRotationSet.
ProjectionMatrixGet - riceve la matrice di proiezione.
ProjectionMatrixSet - imposta la matrice di proiezione.
La documentazione dettagliata per la nuova libreria sarà pubblicata presto.
Nuovi esempi di utilizzo delle funzioni sono disponibili sotto \MQL5\Experts\Examples\:
CorrelazioneMatrice3D
DemoMorphMath3D
Compilateli ed eseguiteli su un grafico per vedere le possibilità di visualizzazione 3D in MQL5.
MQL5: Aggiunto il supporto per le operazioni con i database SQLite direttamente da MQL5. La connessione ai database e l'esecuzione di query SQL possono ora essere implementate utilizzando le funzioni MQL5. L'operazione interna è implementata dalla nuova estensione della libreria standard.
Sono disponibili le seguenti funzioni:
//--- opening and closing the databaseint DatabaseOpen(string filename,UINT flags);
void DatabaseClose(int database);
//--- working with tablesbool DatabaseTableExists(int database,string table_name);
//--- preparing an SQL queryint DatabasePrepare(int database,string sql,...);
void DatabaseFinalize(int request);
//--- reading a query result without/with binding to MQL5 structureint DatabaseRead(int request);
int DatabaseReadBind(int request,struct or var);
//--- extracting data from query results to different data typesint DatabaseGetColumnCount(int request);
int DatabaseGetColumnSize(int request,int column);
int DatabaseGetColumnType(int request,int column);
int DatabaseGetColumnText(int request,int column,string &value);
int DatabaseGetColumnInteger(int request,int column,int &value);
int DatabaseGetColumnLong(int request,int column,long &value);
int DatabaseGetColumnDouble(int request,int column,double &value);
int DatabaseGetColumnBlob(int request,int column,void &data[]);
//--- working with transactionsint DatabaseExecute(int db_id,string request);
int DatabaseBeginTransaction(int db_id);
int DatabaseCommitTransaction(int db_id);
int DatabaseRollbackTransaction(int db_id);
MQL5: Aggiunta una nuova proprietà dei programmi MQL5, che permette la selezione di un metodo di visualizzazione predefinito.
#property optimization_chart_mode "3d,InpX,InpY"
La proprietà permette di impostare il tipo di grafico che si apre alla fine dell'ottimizzazione, così come i parametri del programma per gli assi X e Y.
La proprietà imposta solo la visualizzazione predefinita del grafico. Può essere cambiata manualmente in qualsiasi momento, utilizzando il menu contestuale.
MQL5: Nuova funzione MathArctan2. Restituisce il valore in radianti dell'angolo la cui tangente è uguale al rapporto tra i due numeri specificati.
double MathArctan2(
double y // the y coordinate of the pointdouble x // the x coordinate of the point
);
MQL5: Abbiamo eseguito l'ottimizzazione generale dei programmi per migliorare le prestazioni e ridurre il consumo di risorse.
MQL5: Aggiunti esempi di calcoli matematici che possono essere eseguiti nel tester delle strategie. Sono disponibili sotto la directory \MQL5\Experts\Examples\Math 3D\.
MQL5: Introdotto un controllo più stretto degli spazi dei nomi.
MQL5: Aggiunto il caricamento delle librerie collegate quando si usano librerie .NET nei programmi MQL5. Se la libreria .NET usata richiede altre librerie per il funzionamento, il compilatore cercherà di scaricare automaticamente le librerie necessarie da \MQL5\Libraries.
MQL5: Corrette le operazioni temporali nel modulo MetaTrader per l'integrazione con Python. Ora tutti i dati in uscita utilizzano l'ora del server di trading a cui il terminale è collegato.
Tester: Una pletora di nuove caratteristiche e miglioramenti:
Impostazioni personalizzate per gli strumenti finanziari Ora è possibile modificare le impostazioni dello strumento di trading principale, utilizzando il quale vengono eseguiti i test/ottimizzazione. Quasi tutti i parametri delle specifiche possono essere sovrascritti: volumi, modalità di trading, requisiti di margine, modalità di esecuzione e altre impostazioni. Così, se avete bisogno di controllare un Expert Advisor in condizioni diverse, non c'è bisogno di creare un simbolo personalizzato separato e scaricare la sua storia. Questo può essere fatto cambiando le impostazioni standard dei simboli.
Se le specifiche del simbolo sono personalizzate, l'icona dell'ingranaggio e l'icona del simbolo sono contrassegnate da un asterisco. Questo mostra che i parametri personalizzati sono utilizzati per il test corrente.
Ultime impostazioni/consiglieri esperti/grafici Utilizzate i nuovi comandi del menu contestuale per un test veloce o per l'impostazione dell'ottimizzazione. Scegliete le ultime impostazioni del tester, i grafici recenti o le applicazioni utilizzate:
MetaEditor: Aggiunta la possibilità di compilare progetti C/C++ e Python direttamente da MetaEditor. Ora, i progetti multilingue possono essere gestiti utilizzando l'editor integrato.
Se i compilatori appropriati sono installati sul tuo PC, MetaEditor li rileverà e li aggiungerà alle impostazioni. Facoltativamente, puoi specificare i percorsi dei componenti richiesti sotto la scheda Compilers. Dalla stessa scheda, puoi scaricare i componenti cliccando su Install accanto al campo appropriato.
Dopo di che puoi compilare progetti C/C++ e Python in modo simile ai programmi MQL5.
MetaEditor: Aggiunto il supporto per i sottoprogetti all'interno della directory Shared Projects destinata allo sviluppo di progetti condivisi tramite MQL5 Storage. In precedenza, solo i progetti singoli potevano essere creati al livello superiore.
MetaEditor: aggiornamenti del debugger incorporato.
MetaEditor: Corretta l'aggiunta di un'intestazione di funzione quando si usa uno styler di codice.
MetaEditor: I comandi 'Salta alla posizione precedente/successiva del cursore' sono ora disponibili non solo nel menu Visualizza, ma anche nella barra degli strumenti.
MetaEditor: Gli spazi possono ora essere usati nei nomi dei progetti.
Android: Aggiunta la possibilità di passare rapidamente alle pagine di deposito/prelievo sul sito web del broker.
Non c'è bisogno di cercare le funzioni appropriate nella stanza del trader sul sito del broker. I comandi di navigazione rapida sono disponibili direttamente nei terminali: gli utenti possono passare alle pagine di deposito e prelievo dalle sezioni Conti e Trading:
Le operazioni di deposito/prelievo sono disponibili solo se le funzioni appropriate sono abilitate per il conto di trading dal lato del broker.
Il terminale di trading non esegue alcuna operazione di deposito/prelievo del conto. Le funzioni integrate reindirizzano l'utente alle pagine web appropriate del broker.
Android: Le posizioni nella cronologia sono ora ordinate per data di chiusura.
Android: Aggiunta la marcatura delle posizioni chiuse da Stop Loss o Take Profit con linee verticali rosse e verdi nella sezione della cronologia.
Categoria: la proprietà viene utilizzata per la marcatura aggiuntiva degli strumenti finanziari. Per esempio, questo può essere il settore di mercato a cui appartiene il simbolo: Agricoltura, Oil & Gas e altri. La categoria viene visualizzata solo se le informazioni appropriate sono fornite dal broker.
Borsa - il nome della borsa in cui il titolo viene scambiato. La categoria viene visualizzata solo se le informazioni appropriate sono fornite dal broker.
Android: Aggiunta l'indicazione dello stato Margin Call nella sezione di trading. All'emergere di questo stato, i parametri Margine, Margine libero e Livello di margine sono mostrati in rosso.
Android: Visualizzazione fissa del pulsante di apertura della sezione OTP sui tablet.
Android: Altre correzioni e miglioramenti.
iPhone/iPad: Aggiunta la possibilità di passare rapidamente alle pagine di deposito/prelievo sul sito web del broker. Per ulteriori dettagli, si prega di consultare la lista What's New di MetaTrader 5 per Android.
iPhone/iPad: Aggiunto il supporto della modalità scura per iOS/iPadOS.
iPhone/iPad: La sezione della password unica è diventata disponibile nella versione per iPad.
iPhone/iPad: Le posizioni chiuse da Stop Loss o Take Profit sono contrassegnate da linee verticali rosse e verdi nella sezione storia.
iPhone/iPad: Le posizioni nella cronologia sono ora ordinate per data di chiusura. Se la posizione non è ancora stata chiusa, la sua data di apertura viene utilizzata per l'ordinamento.
iPhone/iPad: Altre correzioni e miglioramenti.
Correzioni basate su registri di crash.
L'aggiornamento sarà disponibile attraverso il sistema Live Update.
Le basi possono essere memorizzate sia su disco che solo in memoria usando il flag DATABASE_OPEN_MEMORY. L'avvolgimento di massicci inserimenti / modifiche in una transazione DatabaseTransactionBegin / Commit / Rollback velocizza le operazioni di centinaia di volte.
Dato che siamo concentrati sulle prestazioni il più possibile, ecco i risultati dei test LLVM 9.0.0 vs MQL5. Tempo in millisecondi, meno è meglio è:
Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz
LLVM MQL5
---------------------------------------------------------------------------------
Test 1: 1000 INSERTs: 11572 8488
Test 2: 25000 INSERTs in a transaction: 59 60
Test 3: 25000 INSERTs into an indexed table: 102 105
Test 4: 100 SELECTs without an index: 142 150
Test 5: 100 SELECTs on a string comparison: 391 390
Test 6: Creating an index: 43 33
Test 7: 5000 SELECTs with an index: 385 307
Test 8: 1000 UPDATEs without an index: 58 54
Test 9: 25000 UPDATEs with an index: 161 165
Test 10: 25000 text UPDATEs with an index: 124 120
Test 11: INSERTs from a SELECT: 84 84
Test 12: DELETE without an index: 25 74
Test 13: DELETE with an index: 70 72
Test 14: A big INSERT after a big DELETE: 62 66
Test 15: A big DELETE followed by many small INSERTs: 33 33
Test 16: DROP TABLE: finished. 42 40
La velocità in MQL5 è assolutamente la stessa che in C ++ nativo con uno dei migliori compilatori. Un pacchetto di benchmark per la riproduzione è allegato.
Abbiamo anche implementato la funzione unica DatabaseReadBind, che permette di leggere i record direttamente nella struttura, il che semplifica e velocizza le operazioni di massa.
Ecco un semplice esempio:
struct Person
{
int id;
string name;
int age;
string address;
double salary;
};
//+------------------------------------------------------------------+//| Test |//+------------------------------------------------------------------+bool TestDB( string filename, int flags)
{
int db;
//--- open
db=DatabaseOpen(filename,flags);
if (db== INVALID_HANDLE )
{
Print ( "DB: " ,filename, " open failed with code " , GetLastError ());
return ( false );
}
//--- create a tableif (!DatabaseTableExists(db, "COMPANY" ))
if (!DatabaseExecute(db, "CREATE TABLE COMPANY(""ID INT PRIMARY KEY NOT NULL,""NAME TEXT NOT NULL,""AGE INT NOT NULL,""ADDRESS CHAR(50),""SALARY REAL );" ))
{
Print ( "DB: " ,filename, " create table failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- insert dataif (!DatabaseExecute(db, "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); ""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); ""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );""INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );" ))
{
Print ( "DB: " ,filename, " insert failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- prepare the requestint request=DatabasePrepare(db, "SELECT * FROM COMPANY WHERE SALARY>15000" );
if (request== INVALID_HANDLE )
{
Print ( "DB: " ,filename, " request failed with code " , GetLastError ());
DatabaseClose(db);
return ( false );
}
//--- выводим записи
Person person;
for ( int i= 0 ; DatabaseReadBind(request,person); i++)
Print (i, ": " ,person.id, " " , person.name, " " ,person.age, " " ,person.address, " " ,person.salary);
Print ( "" );
//--- close all
DatabaseFinalize(request);
DatabaseClose(db);
return ( true );
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart ()
{
TestDB( "test.sqlite" ,DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);
}
Output:
0 : 1 Paul 32 California 20000.01 : 3 Teddy 23 Norway 20000.02 : 4 Mark 25 Rich-Mond 65000.0
L'aggiornamento della piattaforma MetaTrader 5 sarà rilasciato venerdì 13 dicembre 2019. L'aggiornamento presenta importanti aggiunte e correzioni basate sul feedback che abbiamo ricevuto dopo il precedente aggiornamento principale MetaTrader 5 build 2265:
Terminale: Risolto un bug che causava l'impossibilità di eliminare un Expert Advisor dal grafico senza dati.
Terminale: Corretta la visualizzazione dell'intestazione del grafico sotto Wine.
MQL5: Migliorata la velocità di caricamento e compilazione dei programmi MQL5.
MQL5: Un doppio clic su un grafico viene ora passato come evento di clic singolo a un programma MQL5. In precedenza, tali eventi non venivano gestiti.
MQL5: Corretto il funzionamento della funzione StringTrimRight.
Tester: Corretto un bug che faceva sì che il simbolo di test nelle impostazioni fosse vuoto. L'errore poteva derivare dal passaggio tra conti di trading con diversi set di strumenti di trading. Nuovo comportamento: se il simbolo selezionato in precedenza non si trova nel conto di trading attualmente collegato, viene selezionato automaticamente il primo simbolo disponibile in Market Watch.
MetaEditor: Corretto il caricamento dell'icona dell'applicazione quando si riaprono le proprietà del progetto.
Nella prima parte della serie di articoli, abbiamo analizzato i pattern Merrill e li abbiamo applicati a diverse serie di dati, come gli oscillatori ATR, CCI e WPR, tra gli altri. Lo scopo dell'articolo era quello di esplorare e valutare le prospettive di utilizzo dei pattern specificati sul forex e su altri mercati. La seconda parte è stata dedicata alla creazione di uno Strategy Builder per assemblare semplici strategie utilizzando i pattern precedentemente discussi. Nella terza parte, espanderemo la funzionalità di creazione e test delle strategie. Aggiungeremo la possibilità di lavorare con i lotti oltre che con i punti, così come la funzionalità di visualizzazione dei risultati dei test.
In the first part of the article series, we analyzed Merrill patterns and applied them to different data arrays, such as the price and price-based oscillators ATR, CCI and WPR, among others. The purpose of the article was to explore and evaluate the prospects of using the specified patterns on forex and other markets. The second part was...
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
Nuova versione della piattaforma MetaTrader 5 build 2190
MetaQuotes Software Corp., 2019.11.12 15:28
Rilasciata la beta 2208:
È possibile aggiornare tramite il menu Aiuto -> Controlla aggiornamenti.
Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading
Nuove capacità grafiche in MQL5 con accesso diretto a DirectX 11
MetaQuotes Software Corp., 2019.11.22 11:30
Il 27 novembre 2019 rilasceremo una build con nuove capacità grafiche per costruire complesse visualizzazioni 3D.
Offriamo di vedere una dimostrazione:
Un esempio sotto forma di un file ex5 può essere eseguito sull'attuale versione beta 2224, disponibile dal comando Help -> Check for Updates.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Nuove capacità grafiche in MQL5 con accesso diretto a DirectX 11
Renat Fatkhullin, 2019.11.22 12:12
Questa è la nuova classe CCanvas3D che estende le capacità di CCanvas.
Abbiamo aggiunto una tonnellata di metodi nativi DirectX 11 in MQL5 in modo da poter visualizzare modelli complessi in proiezioni 3D.
Nella release, il lavoro nativo con SQLite SQLite in MQL5 sarà molto probabilmente anche disponibile, se avremo tempo. Questo semplificherà enormemente il lavoro con dati massicci e farà selezioni rapide.
Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading
Nuove capacità grafiche in MQL5 con accesso diretto a DirectX 11
Renat Fatkhullin, 2019.11.24 20:10
Non c'è bisogno di preoccuparsi delle dimensioni del terminale - è molto compatto e integrale nelle sue capacità.
Abbiamo aggiunto DirectX per consentire la creazione di una nuova classe di programmi. Potente e più professionale grazie alla visualizzazione di alta qualità.
SQLite semplificherà drasticamente il lavoro con dati massicci ed eterogenei. Non c'è bisogno di avere a che fare con collegamenti primitivi ai file, basta salvare nel database.
Andiamo oltre:
Sarà possibile compilare le librerie esistenti in EX5 con piccole correzioni. Tutte le chiamate api potenzialmente pericolose saranno sostituite da wrapper di controllo MQL5.
Qualcosa sarà disponibile nella release del 27 novembre, e il resto nelle prossime beta e release.
Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading
Nuove capacità grafiche in MQL5 con accesso diretto a DirectX 11
Renat Fatkhullin, 2019.11.25 20:13
Disponibile la build 2228:
Ora, tali visualizzazioni sono facilmente realizzabili direttamente in MQL5 utilizzando la libreria standard CCanvas3D.
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
Nuova piattaforma MetaTrader 5 beta build 2245: Funzioni DirectX per la visualizzazione 3D in MQL5 e impostazioni dei simboli in Strategy Tester
MetaQuotes Software Corp., 2019.11.29 13:41
La versione beta della piattaforma MetaTrader 5 aggiornata sarà rilasciata il 29 novembre 2019. Invitiamo tutti i trader a partecipare al test della nuova piattaforma per valutare tutte le sue caratteristiche e per aiutare gli sviluppatori a correggere gli errori.
Per aggiornare la piattaforma MetaTrader 5 fino alla build 2245, vai su Help \ Check Desktop Updates \ Latest Beta Version:
La versione finale della nuova build della piattaforma MetaTrader 5 sarà rilasciata dopo il beta testing pubblico.
La nuova versione presenta i seguenti cambiamenti:
Per visualizzare la storia del trading come posizioni, il terminale usa le informazioni sulle operazioni eseguite durante il periodo richiesto. Solo le posizioni chiuse in questo periodo saranno mostrate nella storia. Se la posizione è ancora aperta o il suo tempo di chiusura non rientra nell'intervallo selezionato, non verrà visualizzata nella storia. Pertanto, il profitto totale e la commissione nella modalità "posizioni" possono essere diversi da quelli della modalità "ordini/vendite".
Per esempio, state visualizzando la cronologia dell'ultima settimana. Durante questo periodo sono state eseguite 100 operazioni, 98 delle quali hanno aperto e chiuso 20 posizioni. Le ultime due operazioni hanno aperto nuove posizioni, che non sono state chiuse fino ad ora. In questo caso, la storia delle operazioni contiene 100 record e i valori totali appropriati calcolati sulla base di queste operazioni. Quando si visualizza la storia come posizioni, si vedranno 20 record raccolti sulla base di 98 operazioni. Solo questi dati saranno presi in considerazione nel calcolo dei valori totali. Se il broker addebita le commissioni di entrata, il valore finale delle commissioni nella cronologia delle operazioni sarà diverso dalle commissioni mostrate nella cronologia delle posizioni, perché in quest'ultimo caso due ultime operazioni saranno ignorate.
La nuova classe CCanvas3D è un'estensione della classe grafica personalizzata CCanvas. È disponibile nella directory \MQL5\Include\Canvas\. La classe dispone di funzioni per il rendering di oggetti tridimensionali tramite DirectX API.
La documentazione dettagliata per la nuova libreria sarà pubblicata presto.
Nuovi esempi di utilizzo delle funzioni sono disponibili sotto \MQL5\Experts\Examples\:
Compilateli ed eseguiteli su un grafico per vedere le possibilità di visualizzazione 3D in MQL5.
Sono disponibili le seguenti funzioni:
La proprietà permette di impostare il tipo di grafico che si apre alla fine dell'ottimizzazione, così come i parametri del programma per gli assi X e Y.
La proprietà imposta solo la visualizzazione predefinita del grafico. Può essere cambiata manualmente in qualsiasi momento, utilizzando il menu contestuale.
Impostazioni personalizzate per gli strumenti finanziari
Ora è possibile modificare le impostazioni dello strumento di trading principale, utilizzando il quale vengono eseguiti i test/ottimizzazione. Quasi tutti i parametri delle specifiche possono essere sovrascritti: volumi, modalità di trading, requisiti di margine, modalità di esecuzione e altre impostazioni. Così, se avete bisogno di controllare un Expert Advisor in condizioni diverse, non c'è bisogno di creare un simbolo personalizzato separato e scaricare la sua storia. Questo può essere fatto cambiando le impostazioni standard dei simboli.

Se le specifiche del simbolo sono personalizzate, l'icona dell'ingranaggio e l'icona del simbolo sono contrassegnate da un asterisco. Questo mostra che i parametri personalizzati sono utilizzati per il test corrente.Ultime impostazioni/consiglieri esperti/grafici
Utilizzate i nuovi comandi del menu contestuale per un test veloce o per l'impostazione dell'ottimizzazione. Scegliete le ultime impostazioni del tester, i grafici recenti o le applicazioni utilizzate:
Se i compilatori appropriati sono installati sul tuo PC, MetaEditor li rileverà e li aggiungerà alle impostazioni. Facoltativamente, puoi specificare i percorsi dei componenti richiesti sotto la scheda Compilers. Dalla stessa scheda, puoi scaricare i componenti cliccando su Install accanto al campo appropriato.

Dopo di che puoi compilare progetti C/C++ e Python in modo simile ai programmi MQL5.Non c'è bisogno di cercare le funzioni appropriate nella stanza del trader sul sito del broker. I comandi di navigazione rapida sono disponibili direttamente nei terminali: gli utenti possono passare alle pagine di deposito e prelievo dalle sezioni Conti e Trading:
L'aggiornamento sarà disponibile attraverso il sistema Live Update.
Forum sul trading, sistemi di trading automatizzati e strategie di trading di prova
SQLite in MQL5: Nuove funzionalità e test delle prestazioni
Renat Fatkhullin, 2019.12.07 09:24
Nella build 2265 abbiamo implementato delle funzioni regolari per lavorare con i database basati su SQLite 3.30.1:
Dato che siamo concentrati sulle prestazioni il più possibile, ecco i risultati dei test LLVM 9.0.0 vs MQL5. Tempo in millisecondi, meno è meglio è:Le basi possono essere memorizzate sia su disco che solo in memoria usando il flag DATABASE_OPEN_MEMORY . L'avvolgimento di massicci inserimenti / modifiche in una transazione DatabaseTransactionBegin / Commit / Rollback velocizza le operazioni di centinaia di volte.
Windows 10 x64, Intel Xeon E5-2690 v3 @ 2.60GHz LLVM MQL5 --------------------------------------------------------------------------------- Test 1: 1000 INSERTs: 11572 8488 Test 2: 25000 INSERTs in a transaction: 59 60 Test 3: 25000 INSERTs into an indexed table: 102 105 Test 4: 100 SELECTs without an index: 142 150 Test 5: 100 SELECTs on a string comparison: 391 390 Test 6: Creating an index: 43 33 Test 7: 5000 SELECTs with an index: 385 307 Test 8: 1000 UPDATEs without an index: 58 54 Test 9: 25000 UPDATEs with an index: 161 165 Test 10: 25000 text UPDATEs with an index: 124 120 Test 11: INSERTs from a SELECT: 84 84 Test 12: DELETE without an index: 25 74 Test 13: DELETE with an index: 70 72 Test 14: A big INSERT after a big DELETE: 62 66 Test 15: A big DELETE followed by many small INSERTs: 33 33 Test 16: DROP TABLE: finished. 42 40La velocità in MQL5 è assolutamente la stessa che in C ++ nativo con uno dei migliori compilatori. Un pacchetto di benchmark per la riproduzione è allegato.
Abbiamo anche implementato la funzione unica DatabaseReadBind, che permette di leggere i record direttamente nella struttura, il che semplifica e velocizza le operazioni di massa.
Ecco un semplice esempio:
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
Nuova versione della piattaforma MetaTrader 5 build 2265: Funzioni DirectX per la visualizzazione 3D in MQL5 e impostazione di strumenti nel tester di strategie
Renat Fatkhullin, 2019.12.07 08:28
Guarda le nuove funzioni di grafica 3D con esempi nella release 2265:
E un set di funzioni per lavorare con i database SQLite.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Alcuni strumenti non funzionano con la nuova build 2265 di MT5 - come risolvere?
Aytugan Khafizov, 2019.12.09 17:30
Abbiamo rilasciato una versione beta del terminale MT5 con la correzione dei problemi di ticksize e StringTrim.
Si prega di aprire un conto demo sul server MetaQuotes-Demo per scaricare l'aggiornamento
E forniscici un feedback.
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
Nuova piattaforma MetaTrader 5 Build 2280
MetaQuotes Software Corp., 2019.12.12 15:54
L'aggiornamento della piattaforma MetaTrader 5 sarà rilasciato venerdì 13 dicembre 2019. L'aggiornamento presenta importanti aggiunte e correzioni basate sul feedback che abbiamo ricevuto dopo il precedente aggiornamento principale MetaTrader 5 build 2265:
L'aggiornamento sarà disponibile attraverso il sistema Live Update.
OpenCL
Il forum
CodeBase
Gli articoli
I blog
La documentazione
Il mercato
Forum sul trading, sistemi di trading automatico e strategie di trading di prova
SQLite in MQL5: Nuove funzionalità e test delle prestazioni
Rashid Umarov, 2019.12.17.17: 01
Aggiunti esempi di lavoro con le funzioni - do in ordine di complessità:
Estendere la funzionalità di Strategy Builder - l'articolo
- Introduzione
- Panoramica delle aggiunte
- Fasi di implementazione della nuova funzionalità
- Test e dimostrazione dello Strategy Builder
- Conclusione
IntroduzioneNella prima parte della serie di articoli, abbiamo analizzato i pattern Merrill e li abbiamo applicati a diverse serie di dati, come gli oscillatori ATR, CCI e WPR, tra gli altri. Lo scopo dell'articolo era quello di esplorare e valutare le prospettive di utilizzo dei pattern specificati sul forex e su altri mercati. La seconda parte è stata dedicata alla creazione di uno Strategy Builder per assemblare semplici strategie utilizzando i pattern precedentemente discussi. Nella terza parte, espanderemo la funzionalità di creazione e test delle strategie. Aggiungeremo la possibilità di lavorare con i lotti oltre che con i punti, così come la funzionalità di visualizzazione dei risultati dei test.