Come vede Metatrader X nel 2030? - pagina 2

 
Igor Makanu:
...

ci sarà un modo per scambiare dati tra gli EA in esecuzione su diversi grafici

Ho già implementato questo e funziona. Chiunque capisca cosa significa eredità multipla dovrebbe essere in grado di farlo. Altrimenti, è una vergogna quello che sa.

 
Igor Makanu:

Qualsiasi funzione standard che invierà un array di byte alle variabili globali del terminale (anche se preferibilmente un array di int, così ci sono meno domande su come convertire) e, di conseguenza, la funzione inversa che permetterà di leggere questo array in un altro Expert Advisor

Global Variables non è sufficiente per scambiare dati - c'è un grande campo per il nome della variabile e un piccolo campo per i dati, sotto forma di un doppio, è necessario il contrario ;)

SZZ: ci sono un sacco di esempi in rete per il parsing dei grafi decisionali, soprattutto grazie alle interfacce ottenere una struttura di codice flessibile, le interfacce sono ovunque, in MQL no (

Sono completamente d'accordo. Le variabili globali del terminale sono zoppe. Ma dovete salvare le istanze di classe, non gli array, come in WCF. Sono rimasto davvero scioccato da questa caratteristica ai miei tempi. Invece di sfiorare il flusso di byte sulla rete, potrei semplicemente inviare l'istanza della classe, e tutta la roba è stata fatta da .NET, e velocemente, se la invio in binario.

Hmm, mentre premevo la tastiera, ho avuto un'idea per fare una libu come questa...

---

Sui grafici di decisione e le interfacce semplicemente non ho incontrato, il mondo della programmazione è immenso ))

 
Реter Konow:

L'ho già implementato e funziona. Chiunque capisca cosa significa eredità multipla dovrebbe essere in grado di farlo. Altrimenti, la sua conoscenza non ha valore.

E senza lo sfarzo da quattro soldi?

 
Реter Konow:

L'ho già implementato e funziona.

и?

La KB ha soluzioni già pronte da molto tempo, hai aggiunto anche tu la tua soluzione o sei solo... di passaggio?

 
Igor Makanu:

и?

La KB ha soluzioni già pronte da molto tempo, hai aggiunto anche la tua soluzione? o sei solo... di passaggio?

a giudicare dalla menzione dell'eredità multipla, vuota...

 
Alexey Volchanskiy:

come in WCF, le istanze di classe

non puoi avere una soluzione complicata, non ci sarà un uso di massa, chiunque può leggere e scrivere un array, se qualcosa di più complicato è necessario, non ci sarà richiesta per esso. come ho scritto sopra, KB ha soluzioni decenti per lo scambio di dati, ma imho, GlobalArrayWrite(string name, int out[]) e GlobalArrayRead(string name , int &in[]) - questo è tutto, non c'è più bisogno di utente

 
Alexey Volchanskiy:

E senza lo sfarzo?

Risorse. Dichiara un'unione con array di diversi tipi in entrambi i programmi EA (o indicatori, o EA e indicatore), che vuoi posizionare su diversi grafici. In ogni programma si scrive l'indirizzo del lato opposto in una variabile stringa (cartella, sottocartella, nome del programma). Si usano due funzioni per comunicare - la prima funzione è quella di leggere il messaggio, la seconda è quella di scrivere il messaggio. Le funzioni sono chiamate in entrambi i programmi alla frequenza del timer.

La funzionalità di ogni programma deve scrivere tutti i dati da trasferire in una variabile stringa. Poi, lafunzione di passaggio dei messaggisarà chiamata alla fine della funzione timer, che memorizzerà la stringa raccolta nella risorsa. Un altro programma su un altro grafico, nel prossimo periodo di tempo, chiamerà la funzione di lettura della risorsa situata all'indirizzo dell'altro programma e decomprimerà il messaggio. Può quindi comporre il suo messaggio al primo programma nello stesso modo e passarlo, semplicemente scrivendo i dati necessari alla sua risorsa.

 
Alexey Volchanskiy:

Mi chiedevo, faccio trading sul forex da circa 13 anni, ho iniziato con MT4 nel 2006. Sono entrato in questo argomento solo perché la mia ragazza di allora mi ha chiesto di aiutarmi a capire il terminale, e ho felicemente scoperto un linguaggio simile al C, MQL4, e mi sono appassionato. È divertente da ricordare, lavoravo in inglese nel terminale ed ero sicuro che fosse uno sviluppo occidentale. Quando ho scoperto che l'hanno fatto i ragazzi di Kazan, ho avuto una dissonanza cognitiva)).

Così, passati 13 anni, posso segnare diverse tappe nello sviluppo dei terminali MT*.

1. L'inizio dello sviluppo di MT5, credo fosse il 2009. Lo sviluppo di MT5 è stato iniziato, credo nel 2009. A quel tempo visitavo il forum di alp, ricordo ancora come Renat lo visitava con la sua propaganda, e io sostenevo che lo schema di netting è morto commercialmente sul forex.

2. una pietra miliare molto importante per me, all'inizio del 2013, il rilascio della nuova build di MT4 > 600. Amico, ero entusiasta, c'erano strutture, anche classi, nuove definizioni normali come in C++. Finalmente tutti i bug sono stati corretti, l'editor non si blocca più durante il copia-incolla, e sono stati corretti anche altri bug. Da prima scrivevo tutte le mie strategie in C# tramite un ponte verso il C++, e ora ho iniziato a portare il mio codice a MQL4, dato che è diventato possibile lavorare normalmente invece di mischiare.

3. Non ricordo l'anno qui, forse è il 2016? Si prega di correggere. La mia idea era quella di utilizzare la versione hedge di MT5, ecco perché ho deciso di passare a MT5.

4. non ricordo nemmeno l'anno, intorno al 2018? Compilatore unico e possibilità di scrivere un progetto multipiattaforma in MT5. È così che da allora scrivo per me stesso. Quando offro questa opportunità ai miei clienti, il 90% di loro la accetta subito, assolutamente tutti non lo sanno nemmeno. Per la multipiattaforma raccomando la libu MT4Orders di fxsaber, potete trovarla in kodobase.

5. Questo è un guazzabuglio di cose, dato che MT5 è in continua evoluzione, questo è molto piacevole.

Ho delineato approssimativamente lo sviluppo della piattaforma in 13 anni, ma cosa succederà tra altri 10 anni? Forse, alcune fantasie si rifletteranno negli sviluppi futuri ))

Questa è un'altra cosa... Una volta ho avuto 10 amiche che mi imploravano in una volta sola, in ginocchio, di capire il terminale... Risposi loro: Vergognatevi, non sono un uomo libero, ho già 50 ragazze sotto la mia tutela, ho solo un appartamento di tre stanze a San Pietroburgo, e non ho abbastanza tempo libero - devo pisciare sui ceceni giorno e notte...

E MT è e sarà.

 
Igor Makanu:

и?

La KB ha soluzioni già pronte da molto tempo, hai aggiunto anche tu la tua soluzione o sei solo... di passaggio?

Allora perché lo aspettate a 30 anni? Se è già lì...
 
Igor Makanu:

Non puoi avere una soluzione complessa, non ci saranno masse, chiunque può leggere e scrivere l'array, se qualcosa di più complicato non sarà richiesto. Come ho scritto sopra, ci sono buone soluzioni per lo scambio di dati in KB, ma imho, GlobalArrayWrite(string name, int out[]) e GlobalArrayRead(string name , int &in[]) - questo è tutto, l'utente non ha bisogno

Guarda, anche le operazioni sui file sono disponibili da molto tempo

uintFileWriteStruct(
intfile_handle,/maniglia del file
const void&struct_object,// riferimento all'oggetto
intsize=-1// dimensione per la scrittura in byte
);


È molto più conveniente leggere e scrivere strutture o oggetti di classe che analizzare un flusso di tipi semplici. Forse sono diventato pigro con l'età? Sì, preferisco fare più cose mentre picchio meno sulla tastiera ))

Motivazione: