Creazione di una GUI per MQL in modalità grafica. - pagina 15

 
Vladimir:
Sono interessato a "ogni tick" per EA multicurrency. Un grafico contiene eventi di tick provenienti da molti simboli? O "ogni tick" ha un significato diverso dall'evento comunemente accettato, che è gestito dalla funzione OnTick ed è descritto nella Guida come "generato solo per gli Expert Advisors quando un nuovo tick è ricevuto per il simbolo, al grafico del quale l'EA è collegato"?

Sì, non è proprio così. A quei tempi si faceva un ciclo infinito, non c'era OnTick, c'era una funzione di avvio

int start()
{ 
    while(true)
    {
    // обработка
        Sleep(200);
    }
}
 
Alexey Volchanskiy:

Lei è davvero incapace di rispondere alle domande. Il modo in cui i consiglieri comunicano non mi interessa. Questo è tutto, chiudo il thread, perché è inutile.

Vedi uno psichiatra). Ha bisogno di un meccanismo di scambio che non ha chiesto, non gli interessa come comunicano.
Preferirei che tu parlassi di ragazze, che le hai incontrate, che hai pianto, ..... le ha dato da mangiare del borscht.

 
Yuriy Asaulenko:
Merda. All'inizio ho chiesto della GUI - come funziona? Ha risposto che non ne ha bisogno. Ora si scopre che ne ha bisogno come gli Expert Advisors e ne ha scritto 100 volte.
Date un'occhiata al mio blog. Abbiamo già discusso tutto questo in privato e sembra che abbiamo capito tutto.
Se vuoi risposte normali, fai domande normali). Imparare a formularle).

Interessato allo scambio descritto da voi su https://www.mql5.com/ru/blogs/post/671000. Funziona anche per me, ma non credo che lo scambio di file di comando testuale, che è "abbastanza adatto per organizzare sistemi intraday abbastanza veloci", non sia adatto a scopi di scalper. Un'altra citazione dal tuo blog "In questo caso, la DLL, in fase di progettazione, può essere sostituita dallo scambio di file, per accelerare l'uso del disco virtuale RAM".

Non ho avuto alcun problema con le prestazioni dello scambio di file. Molto raramente, 2-8 volte all'anno, ci sono situazioni di corruzione delle informazioni, quando una nuova lunghezza di file è già stata messa nel buffer del sistema operativo, ma il suo contenuto (stringa fino a diverse decine di byte) in questo buffer non è stato ancora aggiornato. Altrimenti non vedo alcuna differenza tra il trasferimento di file e qualsiasi altra soluzione, ha ancora bisogno di RAM per lo scambio. La dimensione dei file di scambio è tale che il controller del disco non ha bisogno di indirizzare i piatti magnetici. Per ridurre ulteriormente questa frequenza, non cancello i file di segnale, ma li svuoto in modo che abbiano un posto permanente sulla piastra magnetica (cluster). Per favore, mi dica, su cosa si basa la sua opinione che il file sharing è buono solo per la fase di sviluppo?

E un'altra domanda. Su ognuno dei terminali si aprono almeno due grafici, è corretto?

Vedo che non più di un EA può essere collegato a un grafico e tu hai "Avremo bisogno di due MT EA: il primo scriverà le informazioni sui tick in un file CSV per essere letto dal sistema, e il secondo riceverà le informazioni dal sistema e sarà responsabile delle funzioni di trading".

Взаимодействие МТ со сторонним ПО
Взаимодействие МТ со сторонним ПО
  • 2016.05.08
  • Yuriy Asaulenko
  • www.mql5.com
Еще до начала работы на рынке мною была создана торговая система на Excel с небольшими кусками кода на VBA (Visual Basic for Application). Почему на Excel-VBA? - потому, что система несложная, и проще было на VBA. А возможности Excel позволяют свести программирование к минимуму. По мере развития доля VBA увеличивалась, и постепенно за Excel...
 
Alexey Volchanskiy:

Sì, non è proprio così. A quei tempi si faceva un ciclo infinito, non c'era OnTick, c'era la funzione start

Credo di aver capito. Dal codice di cui sopra segue che la raccolta delle ultime citazioni viene fatta non più di cinque volte al secondo(Sleep(200)). È questo il periodo minimo di tick multicurrency considerato nel vostro codice? Se vengono più spesso, li salta? O questo valore (200) è diverso ora, dopo 10 anni?
 
Vladimir:
Credo di aver capito. Il codice che hai citato suggerisce che la raccolta delle ultime citazioni non viene fatta più di cinque volte al secondo(Sleep(200)). È questo il periodo minimo di tick multicurrency considerato nel vostro codice? Se vengono più spesso, li salta? O questo valore (200) è diverso ora, dopo 10 anni?

Il timer ora sta campionando a intervalli di 1 secondo, saltando il resto. 200 ms è nella memoria, è stato molto tempo fa. Si è scoperto che è spesso ridondante, e durante i test e l'ottimizzazione carica molto la CPU.

 
Renat Fatkhullin:

Lo faremo, soprattutto quando congeleremo le versioni a 32 bit a settembre e supporteremo solo le versioni a 64 bit della piattaforma.

Ora stiamo preparando un serio aggiornamento del compilatore, spostando alcune funzioni di sistema nei programmi MQL5, che migliorerà drasticamente l'ottimizzatore e accelererà il codice risultante dei programmi MQL5.

Pubblicheremo i benchmark completi delle prestazioni per il confronto con C++, insieme al codice sorgente, in modo che chiunque possa controllarli da solo.

Renat, puoi aggiungere una piccola aggiunta alle modifiche: imposta la proprietà di stile WS_CLIPCHILDREN per le cornici o le finestre dei grafici. Questo permetterà di posizionare qualsiasi finestra figlia sulle cornici del grafico o sulle finestre del grafico senza ulteriori manipolazioni. Attualmente, senza questa proprietà, una finestra padre (una finestra del grafico o una cornice del grafico) disegna una finestra figlia da impostare. E quando si imposta questo stile sulla finestra padre, tutto viene reso molto bene.

Suppongo che questa aggiunta non sarà difficile da fare. E in combinazione con i callback otterremo possibilità molto ampie per lo sviluppo di componenti aggiuntivi per МТ, senza entrare nelle sue "viscere". )))