Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 745

 
I commenti non relativi a questo argomento sono stati spostati in "Domande dai principianti di MQL4 MT4 MetaTrader 4".
 

Una domanda alla quale non ho trovato una risposta chiara:

Ho bisogno di usare 2 indicatori con quattro periodi, è necessario scrivere a mano un indicatore 4 volte nell'init e l'altro 4 volte?

Oppure è possibile usarne uno ogni volta, altrimenti ci saranno troppe righe nel file.

Non ho idea di come usarlo.

 
Vitaly Muzichenko:

Una domanda alla quale non ho trovato una risposta chiara:

Ho bisogno di usare 2 indicatori con quattro periodi, è necessario scrivere a mano un indicatore 4 volte nell'init e l'altro 4 volte?

Oppure è possibile usarne uno ogni volta, altrimenti ci saranno troppe righe nel file.

Non ho idea di come usarlo.

Immaginate di dover aprire 8 porte, ognuna con una chiave diversa. Di quante chiavi hai bisogno per aprire tutte le porte?
 
Alexey Kozitsyn:
Immaginate di dover aprire 8 porte, ognuna con una chiave diversa. Di quante chiavi hai bisogno per aprire tutte le porte?

Un grimaldello e niente più.

Posso usarlo qui, c'è una possibilità e io non lo so? Il lavoro si è fermato a causa dell'incertezza (

 
Vitaly Muzichenko:

Un grimaldello e niente di più.

Posso usarlo qui, forse c'è una possibilità e io non lo so?

No, ci sono solo chiavi.
 
Alexey Kozitsyn:
No, solo le chiavi qui.
Grazie, ora farò con fiducia e non pensare a ciò che può essere fatto bene.
 
Ciao 2017.05.05_02:58 GMT+3. Chi può dirmi come ottenere i valori degli ultimi quattro punti ZigZag e i loro indici o tempi di inizio barra in MQL5 nel codice del programma EA? Ci sto lottando da molto tempo, ma finora non è venuto fuori niente. Se applico l'operatore while o for loop, non fa alcuna differenza, lo strategy tester genera un errore in uno dei suoi log: Array overrun nel file include. Ecco il file include. Ottengo l'array di valori ZigZag usando la funzione CopyBuffer() e l'handle ZigZag. Sembra contenere solo punti ZigZag, quindi non posso passare attraverso l'array in modo sequenziale in ordine crescente. L'array non è più in ordine. Forse, il signor Karputov sa come ottenere gli ultimi punti di ZigZag senza uscire dalla matrice?
Ho anche provato a cambiare il codice dell'indicatore ZigZag, ma non sono riuscito a riscriverlo in modo che anche i valori zero fossero scritti nei buffer degli indicatori. Ho cercato di riscriverlo in modo tale che i valori zero non superino i limiti dell'array durante l'elaborazione dell'array. Finora, non sono riuscito a capire completamente ciò che è scritto nel codice di ZigZag e come funziona. Sono annoiato, quindi scrivo al forum.
Credo che il trading manuale appartenga all'epoca passata. Non ho abbastanza tempo per fare trading, non voglio nemmeno dormire abbastanza e aprire accordi durante i pasti. Penso di essere in grado di scrivere un Expert Advisor. Non ho intenzione di arrendermi e rinunciare. Questo è tutto per ora. Sto aspettando la vostra risposta. 03:28 GMT+3. Postato alle 03:56 GMT+3.
File:
TDiff.mqh  2 kb
 
Николай Никитюк:
Ciao 2017.05.05_02:58 GMT+3. Chi può dirmi come ottenere i valori degli ultimi quattro punti ZigZag e i loro indici o tempi di inizio barra in MQL5 nel codice del programma EA? Ci sto lottando da molto tempo, ma finora non è venuto fuori niente. Se applico l'operatore while o for loop, non fa alcuna differenza, lo strategy tester genera un errore in uno dei suoi log: Array overrun nel file include. Ecco il file include. Ottengo l'array di valori ZigZag usando la funzione CopyBuffer() e l'handle ZigZag. Sembra che contenga solo punti ZigZag, quindi non posso passare attraverso l'array in modo sequenziale in ordine crescente. Otteniamo un superamento dell'array.

No. Tutti i punti sono registrati lì, compresi i punti vuoti.

Mykola Nikityuk:
Ho anche provato a cambiare il codice dell'indicatore ZigZag, ma non è stato possibile riscriverlo in modo tale che anche i valori zero fossero scritti nei buffer dell'indicatore. Non sono riuscito a riscriverlo in modo tale da non superare gli array quando li elabora il ciclo. Finora, non sono riuscito a capire completamente ciò che è scritto nel codice di ZigZag e come funziona. Sono annoiato, quindi scrivo sul forum.
Credo che il trading manuale appartenga all'epoca passata. Non ho abbastanza tempo per fare trading, non voglio nemmeno dormire abbastanza e aprire accordi durante i pasti. Penso di essere in grado di scrivere un Expert Advisor. Non ho intenzione di arrendermi e rinunciare. Questo è tutto per ora. Sto aspettando la vostra risposta. 03:28 GMT+3. Postato alle 03:56 GMT+3.

Per sbarazzarsi dei limiti dell'array, dovreste occuparvi delle direzioni dell'array.

Per ottenere gli indici o il tempo delle barre dovremmo copiare il tempo delle barre CopyTime() o CopuRates() insieme alla copia del buffer degli indicatori, dove esiste anche l'OHLC delle barre.

Poiché non possiamo evitare il ciclo, userei la seconda forma della funzione

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   datetime  start_time,           // с какой даты
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

La prossima condizione: se viene copiato un valore maggiore di zero, quello è un punto ZigZag e otterremo l'estremo superiore o inferiore confrontando quel valore con High e Low di quella barra.

 

Gente, per favore aiutatemi a capire cosa diavolo sta succedendo in MQL5 con la contabilità degli ordini.

Ho a che fare con dei programmatori e sembra che non siamo in grado di avere ordini chiaramente basati sui principi usati in MQL4 - non possiamo impostare un numero magico per un ordine, quindi è impossibile selezionare le posizioni necessarie basate su un numero magico semplicemente usando OrdersTotal() e rilevare quale ordine è stato aperto da un EA e quale è stato aperto manualmente, ecc, non possiamo chiudere un certo ordine basato su un ticket, ed è impossibile creare una scala di ordini in una direzione e poi chiudere l'ordine più vecchio, ecc.

Possono davvero le meta-citazioni fare una cosa del genere? Come possiamo lavorare senza?

 
Artyom Kuraev:

Gente, per favore aiutatemi a capire cosa diavolo sta succedendo in MQL5 con la contabilità degli ordini.

Ho a che fare con i programmatori e la mia impressione è che non siamo in grado di contare correttamente gli ordini secondo quel principio che era usato in MQL4 - non si può impostare un numero magico per un ordine, non si può semplicemente selezionare le posizioni necessarie cercando OrdersTotal() in base al numero magico e poi determinare quale ordine è stato aperto da un EA e quale è stato aperto manualmente, ecc, non si può chiudere un certo ordine secondo il ticket, non si può creare una scala di ordini in una direzione e poi chiudere il più vecchio di essi, ecc.

Potrebbero essere state le meta-citazioni a fare questo schifo? Come si può lavorare senza?

Dove si trovano questi programmatori?

Tutto questo è una sciocchezza assoluta. Dove mandare un tale programmatore, spero che tu capisca.

Beh, nel caso, per non perdermelo, ecco un suggerimento