Discussione sull’articolo "Template pronti per includere indicatori negli Expert Advisor (Parte 1): Oscillatori"

 

Il nuovo articolo Template pronti per includere indicatori negli Expert Advisor (Parte 1): Oscillatori è stato pubblicato:

L'articolo prende in considerazione gli indicatori standard della categoria degli oscillatori. Creeremo template pronti all'uso per il loro utilizzo negli EA - dichiarazione e impostazione dei parametri, inizializzazione e deinizializzazione degli indicatori, nonché ricezione dei dati e segnali dai buffer degli indicatori negli EA.

Includere gli indicatori in un EA e utilizzare i dati del buffer dell’indicatore nell'EA è un compito abbastanza semplice, anche se richiede una costante consultazione dei materiali di riferimento. Occorre ricordare tutti i parametri passati alla funzione di creazione dell'indicatore, formalizzare alcuni di loro come input dell’EA, introdurre controlli di validità, ecc. Per ottenere i dati, è necessario scrivere funzioni che restituiscano i dati necessari dalla barra desiderata. Tutto ciò comporta passare del tempo ad accedere alla guida, all'inserimento delle variabili necessarie nell'EA, alla scrittura di funzioni per la ricezione e il monitoraggio dei dati per determinare i segnali, ecc.

Lo scopo di questo articolo è quello di creare dei modelli per includere gli indicatori negli EA. Diamo un’occhiata agli indicatori della categoria degli oscillatori, le loro variabili di input, la creazione di un gestore (handle) dell'indicatore e l'ottenimento dei dati necessari.


Autore: Artyom Trishkin

 
Perché da wint a int e perché mai si vorrebbe un progetto del genere?
//--- Impostare e regolare, se necessario, il periodo di calcolo
   period=int(InpPeriod<1 ? 14 : InpPeriod);

Capisco che l'input è una costante. Ma non riesco a immaginare il compito.

Beh, solo per difendersi da un pazzo che mette un meno, ma allora sarebbe meglio avere un avviso che la persona ha commesso un errore.

 
Valeriy Yastremskiy #:
Perché da uint a int e perché proprio questa costruzione?

Capisco che l'input è una costante. Ma non riesco a immaginare il compito.

Beh, solo per difendersi da un pazzo che mette un meno, ma allora sarebbe meglio avere un avviso che la persona ha commesso un errore.

InpPeriod è una variabile di input. Non c'è modo di inserire un meno. È possibile inserire uno zero. Questi controlli (per meno di uno) sono un'abitudine per non confrontare direttamente i numeri con lo zero - se improvvisamente in un'altra costruzione simile ci sarà una variabile di input di tipo double, mi permetterà di evitare il confronto diretto di due numeri double. Sì, questo è "infallibile". Prima di tutto per me stesso: per fare meno errori quando trasferisco il codice in altri luoghi.

 
Artyom Trishkin #:

InpPeriod - variabile di input input. Non è possibile inserire un meno. È possibile inserire uno zero. Questi controlli (per meno di uno) sono un'abitudine per non confrontare direttamente i numeri con lo zero - se improvvisamente in un'altra costruzione simile ci sarà una variabile di input di tipo double, mi permetterà di evitare il confronto diretto di due numeri doppi. Sì, questo è "infallibile". Prima di tutto per me stesso: per fare meno errori quando trasferisco il codice in altri luoghi.

Beh, sì, è uint)))))) Non si può mettere un meno))))

 
Valeriy Yastremskiy #:

Beh, sì, wint))))))) Non si può mettere un meno))))

E zero?

 
Alexey Viktorov #:

E zero?

E zero è possibile. Ma in questo caso l'indicatore sarà impostato sul valore predefinito.

Ma il senso della sua domanda era un altro: lei conosce già lo zero.

Ma non voglio indovinare

 
Artyom Trishkin #:

È possibile anche lo zero. Ma in questo caso l'indicatore sarà impostato sul valore predefinito.

Ma il senso della vostra domanda era un altro: conoscete già lo zero.

Ma non voglio indovinare

È vero. Non c'è bisogno di indovinare. Era solo una domanda per Valery. Non si può mettere un meno, ma uno zero?

 
Alexey Viktorov #:

E zero?

Quindi lo zero è attuale)))) Come progetto a prova di errore va bene))))))

E si può mettere una maschera sulla tastiera, in modo che solo le cifre vengano premute, e gli altri tasti non vengano premuti)))))) Per i soldati negli anni '90 lo hanno fatto)))))) E quando si premevano altri tasti, appariva un avviso a caratteri cubitali))

 
Artyom Trishkin #:

Saluti!

Come posso allineare il testo al centro della cella?


 
Vitaly Muzichenko #:

Saluti!

Come posso allineare il testo al centro della cella?


Ciao. Non credo di aver eseguito l'output di testo in celle con punti di ancoraggio diversi.

Ma se assumiamo che larghezza_colonna è la larghezza della cella, altezza_colonna è la sua altezza,
e testo_w e testo_h sono le dimensioni corrispondenti del testo da inviare alla cella,
allora le coordinate dell'angolo superiore sinistro del testo dovrebbero essere calcolate utilizzando queste formule:

Ancoraggio testo_x testo_y
SINISTRA 0 0
SINISTRA 0 (altezza_colonna - testo_h)/2
SINISTRA INFERIORE 0 altezza_colonna - testo_h
INFERIORE (larghezza_colonna - testo_w)/2 altezza colonna - testo_h
DESTRA_INDIETRO larghezza_colonna - testo_w altezza della colonna - testo_h
DESTRA larghezza della colonna - testo_w (altezza_colonna - testo_h)/2
SUPERIORE DESTRA larghezza della colonna - testo_w 0
SUPERIORE (larghezza_colonna - testo_w)/2 0
CENTRO (larghezza_colonna - testo_w)/2 (altezza_colonna - testo_h)/2

In questo caso l'ancoraggio del testo - per impostazione predefinita - ha le coordinate iniziali del testo nell'angolo superiore sinistro e per visualizzare il testo in base al punto di ancoraggio (ancoraggio nell'intestazione della tabella), è necessario calcolare le coordinate del testo in base alle formule di cui sopra.

 
Artyom Trishkin #:

Ciao. Non credo di aver eseguito l'output di testo in celle con punti di ancoraggio diversi.

Ma se assumiamo che larghezza_colonna è la larghezza della cella, altezza_colonna è la sua altezza,
e testo_w e testo_h sono le dimensioni corrispondenti del testo da inviare alla cella,
allora le coordinate dell'angolo superiore sinistro del testo dovrebbero essere calcolate usando queste formule:

Ancoraggio testo_x testo_y
SINISTRA 0 0
SINISTRA 0 (altezza_colonna - testo_h)/2
SINISTRA INFERIORE 0 altezza_colonna - testo_h
INFERIORE (larghezza_colonna - testo_w)/2 altezza colonna - testo_h
DESTRA_INDIETRO larghezza_colonna - testo_w altezza della colonna - testo_h
DESTRA larghezza della colonna - testo_w (altezza_colonna - testo_h)/2
SUPERIORE DESTRA larghezza della colonna - testo_w 0
SUPERIORE (larghezza_colonna - testo_w)/2 0
CENTRO (larghezza_colonna - testo_w)/2 (altezza della colonna - testo_h)/2

In questo caso l'ancoraggio del testo - per impostazione predefinita - prevede le coordinate iniziali del testo nell'angolo superiore sinistro; per visualizzare il testo in base al punto di ancoraggio (ancoraggio nell'intestazione della tabella), è necessario calcolare le coordinate del testo in base alle formule indicate.

Questo è più o meno quello che pensavo, ma pensavo che ci fosse una soluzione più semplice.

Grazie!