MT5 e la velocità in azione - pagina 43

 
Renat Fatkhullin:

Ho scaricato i vostri script di benchmark + esempio.

  1. Sul computer locale - vuoto in 10 minuti

  2. Su un host VPS virtualizzato con più terminali in 8 minuti

  3. Su VPShost fisico caricato con molti terminali in 8 minuti

Grazie, sembra bello!

I test sono stati fatti su un terminale 2630 a grandezza naturale, e i terminali di lavoro VPS consumano molte meno risorse e la loro latenza è inevitabilmente inferiore.

Sono stati utilizzati gli host di lavoro del nostro servizio VPS.

Devo usare WinAPI per sopprimere l'appetito del terminale desktop.

vostro VPS. Se qualcun altro ha qualche raccomandazione valida, fatemelo sapere.


Cari sviluppatori, vi prego di avere la possibilità di passare il terminale alla modalità di consumo minimo di risorse per l'algotrading.

 
Renat Fatkhullin:

Specificare il nome del server del broker, per favore

Questo non si riferisce al server specifico del broker.
Si riferisce alla scelta della misura del ping nel vostro servizio proposto.
Cioè, la mappa a volte suggerisce una distanza maggiore rispetto al server dell'altro broker, anche se per esempio sono entrambi in LD4.
Non nominerò server specifici per il confronto, solo quando si passa attraverso questi server, ho notato questa peculiarità.
In generale, sarebbe meglio avere una lista di tutte le località tra cui scegliere.
Ma al momento sono interessato a AMPGlobalEU-Live e al suo server americano.

 
fxsaber:

Grazie, sembra figo!

Ma devo usare WinAPI per frenare l'appetito del terminale desktop.

Dato che il terminale fa spesso più fps dei giochi per PC a causa di aggiornamenti molto frequenti, la scheda video viene in primo piano. Specialmente sui vpsc senza schede, l'intero carico è messo sul processore strangolato.

Ecco perché hai ragione a minimizzare e disabilitare i pannelli sui desktop virtuali.

Abbiamo anche tagliato metà del codice del terminale nel nostro servizio e rimosso completamente la visualizzazione. I terminali sono diventati appendici esecutive del vpc-controller e lavorano solo con esso.

Quindi i requisiti di risorse sono molto più bassi. Tutto questo è descritto negli articoli sul servizio VPS.

 
Renat Fatkhullin:

Dato che il terminale ha spesso fps più alti dei giochi per PC a causa della necessità di aggiornamenti molto frequenti, la scheda grafica viene in primo piano. Soprattutto su una macchina virtuale senza schede, l'intero carico è posto sulla CPU.

Ecco perché hai ragione a minimizzare e disabilitare i pannelli sui desktop virtuali.

Abbiamo anche tagliato metà del codice del terminale nel nostro servizio e rimosso completamente la visualizzazione. I terminali sono diventati appendici esecutive del vpc-controller e lavorano solo con esso.

Quindi i requisiti di risorse sono molto più bassi. Tutto questo è descritto negli articoli sul servizio VPS.

Ecco un'altra domanda riguardante il vostro VPS.
Ci sono delle restrizioni di socket nel programma mql che lavora sul tuo server?
È possibile connettersi al broker OpenAPI indipendentemente dal programma mql, non MQ API.
O è possibile lavorare solo con il conto del broker?

 
Roman:

Ho un'altra domanda sulle vostre VPN.
C'è qualche limitazione per il funzionamento dei socket nel programma mql sul vostro VPS?
È permesso connettersi dal programma mql a OpenAPI del broker, non a MQ API?
O il vostro supporto operativo è collegato solo all'account del broker?

Non ci sono restrizioni sulle operazioni su socket, eccetto per gli accessi localhost/127.0.0.1

I permessi impostati sul tuo terminale sono ereditati.

 
Renat Fatkhullin:

Dato che il terminale ha spesso fps più alti dei giochi per PC a causa della necessità di aggiornamenti molto frequenti, la scheda grafica viene in primo piano. Soprattutto sui vpsc senza schede, l'intero carico è posto sulla CPU.

Allora perché non fare un refresh istantaneo a 20 Hz, riducendo così gli fps? Le immagini sono comunque necessarie solo per gli occhi umani. Non noterà se sono 200 fps o 20.

Quindi hai ragione a minimizzare e disabilitare i pannelli sui virtualizzatori.

Sfortunatamente, avete bisogno di WinAPI per farlo. E non ho ancora imparato a chiudere la finestra Market Watch e Tools. Per favore, ditemi come farlo attraverso WinAPI.

Market Products è completamente in frenata sui VPS di terze parti. Nessuna minimizzazione automatica può essere fatta. Definire il nascondiglio dei grafici è lo stesso. Inoltre, non potete sostituire il lento GetMicrosecondsCount con un analogo con quantizzazione in millisecondi. Viene imposto un GetTickCount grezzo con 16ms, che è troppo per i meccanismi dell'ambiente di trading snapshot.

Non per commercializzare il tuo servizio VPS, lo stai limitando così? Immagino che non fosse ancora rilevante. Tuttavia, è già venuto fuori con la misurazione e alcune soluzioni di stampella.

Abbiamo tagliato la metà del codice del terminale nel nostro servizio e rimosso completamente la visualizzazione. I terminali sono diventati appendici esecutive di vps-controller e lavorano solo con esso.

Quindi i requisiti di risorse sono molto più bassi. Tutto questo è descritto negli articoli sul servizio VPS.

Il terminale desktop potrebbe essere reso più vicino all'algotrading, e il consumo di risorse potrebbe essere ridotto attraverso le capacità MQL.

Ditemi, se richiedete una cronologia di tick per tutti i simboli in Market Watch (screener), il servizio VPS memorizzerà 128K tick per ogni simbolo come cache?


No.

bool CopyTicksClearCache( const string Symbol );
in modo che solo gli ultimi tick possano essere interrogati senza enormi risorse, in modo da dimenticare i salti in OnTick.
 
Roman:

Questo non si riferisce al server specifico del broker.
Si riferisce alla scelta della misura del ping nel servizio suggerito.
Cioè, la mappa a volte suggerisce una distanza maggiore rispetto al server dell'altro broker, anche se per esempio sono entrambi in LD4.
Non nominerò server specifici per il confronto, solo quando si passa attraverso questi server, ho notato questa peculiarità.
In generale, sarebbe meglio avere una lista di tutte le località tra cui scegliere.
Ma al momento sono interessato a AMPGlobalEU-Live e al suo server americano.

AMPGlobalEU-Live con MetaTrader 4 server a Londra su LD4 mostra un ping di 1,73 ms:


Ma AMPGlobalEU-Live (in realtà è meglio cercarlo come AMPGlobalUSA-Live) per MetaTrader 5 con un nucleo fisico della piattaforma a Chicago mostra in realtà 19,53 ms, poiché i nostri server più vicini sono a New York:

Appositamente scansionato tutti i loro punti manualmente - il minimo è 19 ms.

Cercheremo di mettere dei server a Chicago nei prossimi giorni. Non l'ho ancora fatto.

 
Renat Fatkhullin:

AMPGlobalEU-Live con MetaTrader 4 server a Londra su LD4 mostra un ping di 1.73ms:


Ma AMPGlobalEU-Live (in realtà è meglio cercarlo come AMPGlobalUSA-Live) per MetaTrader 5 con un nucleo fisico della piattaforma a Chicago è in realtà 19,53 ms, poiché i nostri server più vicini sono a New York:

Appositamente scansionato tutti i loro punti manualmente - il minimo è 19 ms.

Cercheremo di mettere dei server a Chicago nei prossimi giorni. Non l'ho ancora fatto.

Questo ho visto tutto, e anche analizzato ))
Se si mette un server a Chicago, metterlo direttamente in Aurora, dove la posizione dello scambio e tutti i fornitori.

 

Più di una volta ho visto situazioni in cui Terminal carica la CPU al 100% così tanto che non reagisce a nulla.

Poi ho guardato i log e ho visto che c'erano salti selvaggi di tick in OnTick. Tuttavia, se scrivo correttamente un EA, questa situazione disastrosa non influenzerà i risultati di trading. L'ho analizzato specificamente, tutto è chiaro.

Mi chiedo quanto siano diffusi i meccanismi di gestione dei ritardi nei prodotti di mercato. Non ho mai visto una volta menzionare la potenza della macchina per funzionare. Ping minimo - sì.

 
fxsaber:

Allora perché non fare lo snapshot dell'aggiornamento a 20Hz, riducendo così gli fps? Le immagini sono comunque solo per gli occhi umani. Non noterà se sono 200 fps o 20.

Perché una folla di utenti correrà con delle accuse.

Questo è semplice.

Detto questo, in effetti usiamo piccoli cassonetti.


Sfortunatamente, abbiamo bisogno di WinAPI per fare questo. E non abbiamo ancora imparato a chiudere la finestra Market Watch e Tools. Per favore, ditemi come farlo attraverso WinAPI.

La funzione MQL5 che minimizza tutte le finestre e l'applicazione stessa è una grande idea. Lo risolveremo.

Tuttavia, se una persona esegue il terminale su VPS da solo, si opporrà fortemente a tutto ciò che viene bruscamente ridotto a icona. Lui stesso può e deve minimizzare le finestre se lascia la sessione RDP.


I prodotti di mercato sono completamente in frenata sui VPS di terze parti. La minimizzazione automatica non può essere fatta. Definire la carta che si nasconde agli occhi - allo stesso modo. Inoltre, non potete sostituire il lento GetMicrosecondsCount con un analogo con quantizzazione in millisecondi. Viene imposto un GetTickCount grezzo con 16ms, che è troppo per i meccanismi di snapshot dell'ambiente di trading.

Sembra che tu non capisca niente.

Non è GetMicrosecondsCount che vi sta rallentando, è il sistema operativo che quantifica le risorse della CPU per qualsiasi thread del vostro vpc strangolato. Per qualsiasi funzione, qualsiasi azione, qualsiasi programma all'interno della vostra UPU.

Beh, nessuna shell della CPU può affettare e allocare le risorse in modo equo quando ha 20 (che è ancora rispettabile) sistemi operativi con 1500 thread di esecuzione per copia. Prendete 8-16 core e distribuiteli in 20 * 1.500 = 30.000 (trentamila tracce fisiche).


E per confrontare abbiamo il nostro host VPS con 97 terminali attivi: solo 3 333 thread e solo 205 processi - nessun overhead di sistema


Ecco il mio computer di lavoro ora per un confronto - a parte i browser, una copia di MT5 e diversi programmi non costosi non c'è altro: 3 876 threads sono attivi



Si scopre che un host VPS con un mucchio di terminali funziona più economicamente di un desktop. Il VPS ha 8 core e il desktop ne ha 128.