Cosa si dovrebbe aggiungere per un ulteriore supporto dei calcoli matematici universali in MQL5 e MQL5 Cloud Network?

 

Non tutti sanno che il tester di MetaTrader 5 può testare non solo le strategie di trading ma anche risolvere un'intera classe di problemi universali. Per questo scopo c'è una modalità speciale "Calcoli matematici", che disabilita la consegna dei dati dell'ambiente di mercato, che risparmia notevolmente la quantità di dati trasferiti.

Attualmente abbiamo implementato una serie di funzioni importanti per la costruzione di una rete di calcolo universale:

  • Modalità di funzionamento "Calcolo matematico" per disabilitare l'ambiente di mercato.
  • Trasmissione di dati iniziali attraverso l'allegato di #property tester_file "my_file.dat", che ci permette di elaborare dati iniziali di qualsiasi dimensione e restituire i risultati.
  • Trasmissione di dati sorgente sotto forma di allegati di #risorse.
  • Modalità server di calcolo sul terminale e trasferimento delle matrici di dati dagli agenti sotto forma di frame. Gli agenti possono restituire qualsiasi dato al terminale tramite FrameAdd, mentre la parte server dello stesso Expert Advisor viene lanciata sul lato terminale in una finestra separata per ricevere i risultati tramite i punti di ingresso OnTesterPass con l'estrazione dei dati tramite le funzioni FrameXXX. I dati ottenuti possono essere registrati sul lato del terminale, visualizzati in un grafico, ecc. Potete saperne di più nell'argomento"Controllo in tempo reale dei processi di ottimizzazione e trasferimento di dati massicci dagli agenti in MetaTrader 5".
  • Funzionamento degli agenti locali e remoti (senza MQL5 Cloud Network) con un server separato utilizzando i tubi nominati.
  • Affittare un'enorme rete di agenti per accelerare i calcoli.
  • Costruite la vostra fattoria di calcolo nella vostra rete su agenti remoti.

Naturalmente, questo è accompagnato da: la sicurezza di MQL5, la sua velocità, l'enumeratore genetico, ecc.

Da qui la domanda - quali altre caratteristiche dovrebbero essere incluse per migliorare le capacità della rete computazionale?

 
Renat:

Da qui la domanda - quali altre caratteristiche dovrebbero essere abilitate per migliorare le capacità della rete di calcolo?

Permettere l'uso di OpenCL in modalità "math computing" nel cloud.
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 
TheXpert:
Permettere ad OpenCL di essere usato in modalità "math computing" nel cloud.

Questo è stato discusso molte volte - è architettonicamente impossibile a causa del modo in cui funzionano i driver di Windows. Finché le funzioni di calcolo sono una parte protetta dei driver video, non c'è soluzione. In questo momento, anche se vi collegate tramite Desktop remoto a Windows, troverete che non c'è accesso a OpenCL.

Non appena i produttori di schede video spostano le funzioni di calcolo su un'interfaccia separata e indipendente dai driver video, ci sarebbe un po' di felicità. Finora, solo Nvidia Tesla sta andando in quella direzione.

 
Nella funzioneOnTesterInit()

Aggiungere il trasferimento di dati grezzi all'agente, non come una risorsa allegata, ma come un array di dati generati nel corso dell'ottimizzazione.

Circa:

void OnTesterInit()
  {
   // здесь формируем массив данных (например ArrayPass[])
   // и передаем сформированный массив агенту для расчетов
   return(ArrayPass);
  }

.

...

Per favore.

 
E chi deve trasmettere questi dati e come esattamente?

Sono i dettagli tecnici di chi, cosa e come che interessano.
 
Renat:
1. chi e come esattamente dovrebbe trasferire questi dati?

2. sono i dettagli tecnici di chi, cosa e come che sono interessanti.

1. La trasmissione dovrebbe naturalmente essere fatta dall'utente, come ho suggerito sopra -"all'incirca così:", voi lo sapete meglio.

2. Chi è chi e come, non posso descriverlo)

A cosa servono gli agenti? - Per risolvere i problemi.

Quali compiti risolviamo? - Non lo so, l'importante è che li risolvano.

Abbiamo bisogno di input e output per risolvere questi compiti.

Sembra chiaro con l'uscita, ma non lo è con l'entrata.

Forse mi sono perso qualcosa? Come faccio a passare i dati di input (calcolati in base ai dati di output precedenti) all'agente?

 
her.human:

1. La trasmissione dovrebbe naturalmente essere fatta dall'utente, come ho suggerito sopra -"all'incirca così:", tu lo sai meglio.

2. Chi è chi e come, non posso descriverlo)

Il punto è che abbiamo bisogno di proposte esattamente elaborate tecnicamente in almeno 2 passi. "Non so cosa e come" non è sufficiente.

 
her.human:

Come passare i dati di input (calcolati dai dati di output precedenti) all'agente

Questo è già stato chiesto, controllare il progresso dell'ottimizzazione sarebbe a volte molto utile.

Ma molte domande sorgono su un'immersione più stretta (a meno che l'ottimizzazione sia fatta su un singolo agente locale).

 
Renat:

Il punto è che abbiamo bisogno di proposte tecnicamente valide in almeno due fasi. "Non so cosa e come" non è sufficiente.

Dovreste dire così - "le proposte sono accettate sotto forma di termini di riferimento", altrimenti viene percepito come "ascolteremo le idee".
 
Komposter, non così categorico, ma ancora un po' più tecnico.

Da parte nostra, pensiamo alla comunicazione indipendente tra agenti senza un terminale. Per esempio, uno degli agenti potrebbe generare i dati iniziali e inviarli agli altri tramite fordcast.
 
Renat:
Noi, da parte nostra, pensiamo alla comunicazione indipendente tra agenti senza il coinvolgimento del terminale. Per esempio, uno degli agenti può generare dati iniziali e inviarli agli altri tramite fordcast.

È un po' diverso. Volevo controllare il corso dell'ottimizzazione.

Cioè, generare set di parametri man mano che l'ottimizzazione procede e inviarli agli agenti per l'esecuzione.

Naturalmente, ci saranno molte domande. Non sono pronto a rispondere.

Motivazione: