Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1690

 
Nikolay Ivanov #:

Una piccola correzione... Non ci sarà un errore critico, solo la booleana OrderSelect restituirà false... e questo è tutto... Ma naturalmente è meglio evitare... Perché se non si usano correttamente le caratteristiche del codice, è difficile prevedere le potenziali insidie...

Sì, certo. Ma solo quando si usano array regolari e terminali, che non sono visibili a nessuno e a cui si accede con funzioni regolari, che hanno una protezione dall'overrun e restituiscono flag di errore. Mi riferivo al lavoro con i miei array, dopo tutto:

Ma non appena ci si rende conto che si dovrebbero mettere in cache i dati dagli array regolari e si inizia a lavorare con i propri array, è lì che ci si deve abituare a gestire gli array con attenzione.

E tutto quello che la gente sta facendo ultimamente, usando le proprie cache di dati (storici e di mercato) è molto più facile e veloce - lì si può ordinare come si vuole e selezionare quello che si vuole, e ottenere nuovi array con solo i dati richiesti, e ordinarli come si vuole e selezionare quello che si vuole da essi.

Ma questo è il livello successivo di utilizzo delle possibilità del terminale e delle sue API - MQL.

 
Nerd Trader #:

Il primo ordine è dato magic = 1 per impostazione predefinita. Poi viene avviato un ciclo:

Inizio dell'iterazione magic = 1 unique = 0, alla fine (quando c'è già un ordine con magic = 1 ) magic è ancora 1 e unique = 0
Seconda iterazione magic = 2 unique = 0, alla fine, magic = 2 e unique = 1 (nessuna corrispondenza) e il retorn viene assegnato al 2° ordine magic = 2.
Il terzo dovrebbe essere lo stesso...

Volevo stampare l'intero processo, ma qualcosa è andato storto:

https://www.mql5.com/ru/articles/5687
Continuate a leggere a vostro piacimento. Ed è stupido numerare solo il Magik. Deve essere criptato. Ci si può attaccare il numero, il tipo, il biglietto, persino il tempo di creazione dell'ordine
 
Valeriy Yastremskiy #:
h ttps://www.mql5.com/ru/articles/5687
Leggetelo a vostro piacimento. Ed è stupido numerare solo Magik. Deve essere criptato. Puoi metterci il numero, il tipo, il biglietto e anche l'ora in cui l'ordine è stato creato
Leggiamolo. Non so perché un mago dovrebbe essere criptato, la numerazione seriale è sufficiente per me. L'opzione di assegnare il numero magico più grande + 1 va bene, ma devo capire perché il mio codice non funziona.
 
Ivan Butko #:
Potete dirmi un trucco (manovra) per far sì che il terminale ricordi diversi valori?

Per esempio, un compito:

Date N candele all'indietro. Trova le candele con dimensione >= X pip, memorizza il loro numero e la dimensione di ciascuna di esse. Se la candela attuale dopo la chiusura era >= X pips, allora confronta la sua dimensione con il numero totale di candele calcolate e visualizza il risultato - qual è la sua dimensione tra tutte le candele trovate.
MakarFX #:

Il terminale ricorda tutto comunque... l'archivio delle citazioni!

E per un Expert Advisor o un indicatore, avete bisogno di questo

Makar, grazie per la tua risposta. Sfortunatamente, non ho padroneggiato questa pagina fino ad ora. Come risolvere questo problema attraverso gli array, non capisco.

 
Ivan Butko #:

Makar, grazie per la tua risposta. Sfortunatamente, non ho ancora padroneggiato la pagina di cui sopra. Non capisco come risolvere questo problema con gli array.

Non sono ancora bravo con gli array...

Forse uno degli esperti può aiutarti.

 
Maxim Kuznetsov la sintassi del linguaggio e le basi fondamentali degli algoritmi.

Altrimenti otteniamo delle sciocchezze nell'argomento, invece di consultazioni sulla piattaforma e sugli algoritmi, dialoghi a livello di scuole elementari - dove mettere; cos'è un loop e perché gli indici sono 0.

Per esempio, c'è un sito intuit.ru - ci sono corsi su C e algoritmi, prenditi il tuo tempo, un paio di settimane al massimo. Allo stesso tempo si può ottenere una carta :-)

La migliore motivazione per studiare qualcosa, quando ce n'è bisogno. Ho cercato di imparare C, C++ dai libri di testo, ma non so da dove dovrebbe venire la motivazione per fare i compiti, per esempio: convertire i gradi Celsius in Fahrenheit, ecc. Ma quando c'è un reale bisogno, come ho fatto io, di scrivere un EA, è una questione diversa. Ho imparato di più in una settimana secondo le necessità: classi, strutture, ecc. Allo stesso tempo, ho anche dovuto imparare e applicare git. Ora sto cercando di padroneggiare qualche editor kosher come vim o emacs.

P.S.
Ho un videocorso su mql4, ma non ho nemmeno l'energia per guardarlo, perché non scrive i gufi giusti per me. Sì, il corso ideale è quello in cui scrivono il tuo EA.
 
Nerd Trader #:

Ho un videocorso su mql4 ma non ho nemmeno la forza di guardarlo, perché non è scritto da quei gufi, di cui ho bisogno. Sì, il corso ideale è quello in cui scrivono il tuo EA.

Che cosa inquietante... Cosa sono "quei" gufi? Non Chernobyl? Per quanto ne so, i gufi non sanno scrivere. Non solo, non ne hanno la minima idea.

 
Artyom Trishkin #:

Che cosa inquietante... Cosa sono "quei" gufi? Non Chernobyl? Per quanto ne so, i gufi non sanno scrivere. Non solo, non ne hanno la minima idea.

Uh-huh, uh-huh. Il gufo scrive.
 
Nerd Trader #:
Leggiamolo. Non so perché il mago debba essere criptato, la numerazione seriale è sufficiente per me. L'opzione di assegnare il mago più grande + 1 va bene, ma devo capire perché il mio codice non funziona.
Sciocco, perché gli ordini sono comunque numerati. Hanno numeri ordinali e biglietti. E si scrivono i numeri ordinali più 1 in Magik. E lo fai anche senza un prefisso distintivo per distinguere gli ordini che ti servono.

 

Buona sera, aiutatemi a riscrivere una sezione di codice in MQL4 per il compilatore MQL5, se non è difficile, grazie!

   FLU=iCustom(NULL,0,"FractalsLine",0,0);
   FLL=iCustom(NULL,0,"FractalsLine",1,0);
   MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_EMA,PRICE_TYPICAL,0);
   MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_EMA,PRICE_TYPICAL,0);
   MA_3_t=iMA(NULL,0,Period_MA_3,0,MODE_EMA,PRICE_TYPICAL,0);
   MA_4_t=iMA(NULL,0,Period_MA_4,0,MODE_EMA,PRICE_TYPICAL,0);
   Sig_c=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   Sig_p=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
   Macd_c=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
   Macd_p=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
   RCI_t = iRSI(NULL,0,14,0,0) - 50;
   Atr=iATR(0,0,14,0);
   WPR=iWPR(NULL,PERIOD_H1,14,0);
   Vol=iVolume(NULL,0,0);
   Stoh_m=iStochastic(NULL,0,21,9,9,MODE_SMA,0,MODE_MAIN,0);
   Stoh_s=iStochastic(NULL,0,21,9,9,MODE_SMA,0,MODE_SIGNAL,0);