La versione aggiornata della piattaforma MetaTrader 5 verrà rilasciata giovedì 21 settembre 2023. Presenta una serie di correzioni e miglioramenti della piattaforma.
Terminale Client MetaTrader 5 build 3980
Terminale: Miglioramenti al report di trading . Corretta la visualizzazione del valore totale degli swap e del grafico dei profitti per simboli.
Terminale: Ottimizzate le pagine di deposito e prelievo. Per ulteriori dettagli sull'integrazione della nuova piattaforma con i sistemi di pagamento, leggere le note di rilascio della build 3950.
Terminale: Ricalcolo ottimizzato delle operazioni finanziarie sull'intera piattaforma, incluso il tester della strategia. Ora il profitto, i margini e molti altri parametri vengono calcolati più velocemente.
MQL5: Aggiunta la gestione degli output del modello ONNX di tipo "Sequenza delle mappe".
Per i modelli ONNX che forniscono sequenze di mappe nel livello di output (ONNX_TYPE_SEQUENCE di ONNX_TYPE_MAP), è necessario passare un array dinamico o fisso di strutture come parametro di output. I primi due campi di questa struttura devono corrispondere ai tipi di chiave e valore ONNX_TYPE_MAP ed essere array fissi o dinamici.
Considera il modello iris.onnx creato dal seguente script Python:
from sys import argv
data_path=argv[0]
last_index=data_path.rfind("\\")+1
data_path=data_path[0:last_index]
from sklearn.datasets import load_iris
iris_dataset = load_iris()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
from sklearn.neighbors import KNeighborsClassifier
knn = KClassificatoreVicini(n_neighbors=1)
knn.fit(X_train, y_train)
# Conversione nel formato ONNX
from skl2onnx import convert_sklearn
from skl2onnx.common.data_types import FloatTensorType
initial_type = [('float_input', FloatTensorType([None, 4]))]
onx = convert_sklearn(knn,initial_type=initial_type)
path = data_path+"iris.onnx"
with open(path, "wb") as f:
f.write(onx.SerializeToString())
Aprire il file onnx creato in MetaEditor:
La sequenza Map viene passata come "output_probability". Ha una chiave di tipo INT64 (che corrisponde a long in MQL5) e il valore di tipo float. Per ricevere dati da questo output, dichiarare la seguente struttura:
struct MyMap
{
long key[];
floatvalue[];
};
Qui abbiamo utilizzato array dinamici con tipi appropriati. In questo caso, possiamo utilizzare array fissi perché la mappa per questo modello contiene sempre 3 coppie chiave+valore.
Poiché viene restituita la sequenza Map, un array di queste strutture dovrebbe essere passato come parametro per ricevere i dati dall'output output_probability. Questo array può essere dinamico o fisso, in base alle proprietà di un particolare modello. Esempio:
//--- dichiara un array output_probability per ricevere dati dal livello di output
MyMap output_probability[];
...
//--- modello in funzione
OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
Aggiunta la sezione Contatta il Broker nel menu principale del terminale web.
Aggiunta la gestione degli errori per le autenticazioni SSL. Questo tipo di autenticazione non è supportato nel terminale web. In alternativa è possibile utilizzare Password monouso.
Risolto il problema con il collegamento per il download della piattaforma desktop nel menu principale.
Risolto il problema con la finestra di dialogo di gestione degli account. Se il broker non fornisce l’opzione di apertura del conto demo o reale, la relativa voce di menu verrà nascosta.
L'aggiornamento sarà disponibile attraverso il sistema Live Update.
La versione aggiornata della piattaforma MetaTrader 5 verrà rilasciata giovedì 21 settembre 2023. Presenta una serie di correzioni e miglioramenti della piattaforma.
Terminale Client MetaTrader 5 build 3980
Per i modelli ONNX che forniscono sequenze di mappe nel livello di output (ONNX_TYPE_SEQUENCE di ONNX_TYPE_MAP), è necessario passare un array dinamico o fisso di strutture come parametro di output. I primi due campi di questa struttura devono corrispondere ai tipi di chiave e valore ONNX_TYPE_MAP ed essere array fissi o dinamici.
Considera il modello iris.onnx creato dal seguente script Python:
Aprire il file onnx creato in MetaEditor:
La sequenza Map viene passata come "output_probability". Ha una chiave di tipo INT64 (che corrisponde a long in MQL5) e il valore di tipo float. Per ricevere dati da questo output, dichiarare la seguente struttura:
Qui abbiamo utilizzato array dinamici con tipi appropriati. In questo caso, possiamo utilizzare array fissi perché la mappa per questo modello contiene sempre 3 coppie chiave+valore.
Poiché viene restituita la sequenza Map, un array di queste strutture dovrebbe essere passato come parametro per ricevere i dati dall'output output_probability. Questo array può essere dinamico o fisso, in base alle proprietà di un particolare modello. Esempio:
Terminale Web MetaTrader 5 build 3980
L'aggiornamento sarà disponibile attraverso il sistema Live Update.