Errori, bug, domande - pagina 3125

 
Nikolai Semko #:

Dio, questi indicatori tampone sono così scomodi. Inquietante.
Con il disegno su tela tutto è molto più facile, meno codice, più chiaro, più versatile e completa libertà d'azione.

La tua passione per la tela è stata chiara per molto tempo. Ma non tutti ci sono abituati... )))
 
Alexey Viktorov #:
Tutti capiscono la tua passione per i kanva da molto tempo. Ma non tutti sono così abituati... )))
Non dovresti esserlo.
L'abitudine appartiene al passato.
 
Nikolai Semko #:
Non dovresti.
L'abitudine appartiene al passato.

Sì... se non muoio prima io...

 
I buffer sono più facili da usare, ma si può emettere qualsiasi cosa su Kanvas. D'altra parte, ci sono anche molti tipi diversi di buffer di indicatori negli indicatori personalizzati in MQL5. In generale, il programmatore non dovrebbe fare un errore scegliendo uno di questi metodi. Ma la scelta dovrebbe sempre dipendere dal compito da svolgere...
 
Alexey Viktorov #:

Probabilmente non è una stampella, ma finora non ho spiegazioni per quello che sta succedendo. Grazie...

Probabilmente dipende da quale buffer è più alto nella costruzione. Basta cambiare il + in -

e funzionerà anche. Ma avevo bisogno di dirigere lo spessore all'interno della barra.

Il tampone di riempimento ha due colori. Dovete impostarli entrambi separati da virgole. Quello che è più in alto sullo schermo determina il colore di riempimento. Non si specifica uno dei colori - è sostituito da clrNONE

 
Mihail Matkovskij #:
È più facile lavorare con i buffer, ma si può emettere qualsiasi cosa su Kanvas. D'altra parte, negli indicatori personalizzati in MQL5 ci sono anche molti tipi diversi di buffer di indicatori. In generale, il programmatore non dovrebbe fare un errore scegliendo uno di questi metodi. Ma la scelta dovrebbe sempre dipendere dal compito da svolgere...

Naturalmente, i buffer sono più difficili da lavorare. È più facile con una tela.
Non puoi mettere #proprietà in una funzione.

E si può aggiungere una linea di kanvas con una sola riga passando un array a una funzione.
Personalmente uso kanvas più per la visualizzazione di alcuni processi e dati intermedi durante lo sviluppo. In questo modo è più facile vedere i problemi e trovare soluzioni ottimali.
A meno che, ovviamente, non si tratti di algoritmi primitivi costruiti su intersezioni.
Ecco, per esempio, il mio lavoro attuale.
Tutto questo rivestimento è servizio e mi aiuta molto a trovare soluzioni ottimali.
Con i buffer, ovviamente, non si può fare. Inoltre, questa soluzione funziona ugualmente in Expert Advisors e indicatori. E il codice funziona anche in MT4.

E si realizza molto facilmente e rapidamente. Letteralmente al volo.
 
Nikolai Semko #:

Naturalmente, i buffer sono più difficili da lavorare. È più facile con una tela.
Non puoi mettere #proprietà in una funzione.

E si può aggiungere una linea di kanvas con una sola riga passando un array a una funzione.
Personalmente uso kanvas più per la visualizzazione di alcuni processi e dati intermedi durante lo sviluppo. In questo modo è più facile vedere i problemi e trovare soluzioni ottimali.
A meno che, naturalmente, non si tratti di algoritmi primitivi costruiti su intersezioni.
Ecco, per esempio, il mio lavoro attuale.
Tutto questo rivestimento è servizio e mi aiuta molto a trovare soluzioni ottimali.
Con i buffer, ovviamente, non si può fare. Inoltre, questa soluzione funziona ugualmente in Expert Advisors e indicatori. E il codice funziona anche in MT4.

E questo viene implementato molto facilmente e rapidamente. Letteralmente al volo.

Questo problema richiede l'uso di Canvas. Naturalmente, non abbiamo altra scelta. Anche se c'è una possibilità, è DirectX. Ma non so chi lo usa nelle applicazioni MQL. Non ho mai visto esempi simili. Kanvass mi ha aiutato molto quando avevo bisogno di emettere l'oscillatore nel grafico insieme agli indicatori di tendenza. Naturalmente, non posso ottenere un tale risultato usando meccanismi di indicatori personalizzati. Ho creato due classi basate su CCanvas. Uno di loro visualizza gli oscillatori, il secondo - gli indicatori di tendenza utilizzando metodi, dove vengono passati array di valori di indicatori, array di colori e array di indici di colore. Ma quando ho bisogno di visualizzare un indicatore, uso metodi di indicatori personalizzati. Non so perché. O è un'abitudine o non voglio complicare troppo il codice, quando il punto principale e la complessità è nel calcolo dei valori, non nel metodo del loro output.

 
Mihail Matkovskij #:
Ma la scelta dovrebbe sempre dipendere dal compito da svolgere...

Ho dimenticato di dirtelo. L'uso di Kanvas è anche molto utile nei robot in cui è necessario emettere valori calcolati in un grafico, ma i buffer degli indicatori non sono disponibili. Poi i valori o i segnali possono essere emessi usando Kanvas solo se ce ne sono abbastanza (non 2-3 segnali che possono essere emessi usando oggetti grafici).

 
Nikolai Semko #:

Dio, questi indicatori tampone sono così scomodi. Inquietante.
Con il disegno su tela tutto è molto più facile, c'è meno codice, più chiaro, più universale e completa libertà d'azione.

La versatilità di una tela finisce quando i suoi valori devono essere ottenuti da un altro EA/indicatore.

O avete già trovato una soluzione anche per questo? )

 
Andrey Khatimlianskii #:

La versatilità di Kanvas finisce quando i suoi valori devono essere ottenuti da un altro EA/indicatore.

O hai già trovato una soluzione anche per questo? )

Quali sono i problemi, Andrei?
Si forma una struttura di dati o una matrice di strutture nell'EA o nell'indicatore e la si invia a una risorsa.
E sul lato ricevente, si legge questa struttura o array di strutture.
È ancora più conveniente, perché si ha a che fare con nomi e diversi tipi di dati di dimensioni necessarie, piuttosto che array doppi numerati dell'intera lunghezza delle virgolette.
Se questo è un indicatore per un mercato, ma si deve fornire la classe che legge i dati dalla risorsa.
Il cliente deve solo aggiungere un include e dichiarare un'istanza della classe. Può anche chiamare metodi da OnTimer e OnTick. E poi questa istanza della classe avrà sempre i dati effettivi dell'indicatore di lettura sotto forma di una struttura o array di strutture convenientemente leggibile.