[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 30

 

Cari membri del forum aiutatemi a risolvere il problema della precisione dell'indicatore Standart Deviation, se guardate il confronto puramente visivo di due valori adiacenti dell'indicatore, potete vedere che il valore attuale è più alto/basso del precedente, ma se confrontate questi due valori nei valori reali per esempio nella finestra dei dati, potete vedere che i valori saranno gli stessi.



 
I valori da visualizzare nell'etichetta di testo sono troncati alla quarta cifra, questo non garantisce la loro effettiva uguaglianza, la quinta e le altre cifre sono diverse.
 
evillive:
I valori da visualizzare nell'etichetta di testo sono troncati alla quarta cifra, questo non garantisce la loro effettiva uguaglianza, la quinta e le altre cifre sono diverse.
E come ottenere il 5° e ulteriori caratteri, è necessario conoscere i valori dell'indicatore in modo più preciso. Ho provato NormalizeDouble per avere più precisione, ma non funziona niente.
 
Alexandr24:
Come ottenere 5 e più cifre, è necessario conoscere i valori dell'indicatore con più precisione. Ho provato NormalizeDouble per avere più precisione, ma non funziona niente.

Meglio usare DoubleToStr().
 
evillive:

Meglio usare DoubleToStr().
Sì, è possibile, ma i valori appaiono come una stringa di testo e non si può lavorare con il testo, per esempio non si può aggiungere un valore ad un altro.
 

Capisco che questo valore è necessario per l'indicatore sul grafico, e se la cifra viene ricevuta dall'indicatore standard, allora è già convertita in cifre, probabilmente non c'è niente da fare, a meno che non si implementa l'algoritmo dell'indicatore nel proprio codice.

O per i calcoli puoi provare a convertire di nuovo in Double, con cifre aumentate...

 
evillive:

Capisco che questo valore è necessario per l'indicatore sul grafico e se il numero viene ricevuto dall'indicatore standard sarà convertito in cifre, probabilmente non si può fare nulla se non implementare l'algoritmo dell'indicatore nel codice.

O per i calcoli puoi provare a convertire di nuovo in Double, con una maggiore capacità di cifre...

Back to double non funziona arrotondato a 4 cifre. Grazie per l'aiuto.

UPD: Ho rimosso la domanda, penso di aver capito, ho solo moltiplicato i valori dell'indicatore per 10, le stesse 4 cifre rimangono, ma la precisione è aumentata.

 

1) vai al codebase, scarica l'indicatore: https://www.mql5.com/ru/code/8022

2) Inserire IndicatorDigits(x); x = numero di zeri dopo il punto decimale (precisione)

3) Lancia l'indicatore sul grafico - ammira il tuo lavoro.

 
alsu:
Purtroppo, nel tuo caso non importa quale prezzo hai in mente quando apri l'ordine. Il punto è che il punto di apertura è determinato dal punto nel tempo, non dal livello di prezzo; in questo punto, ci sono gli stessi prezzi Bid e Ask e quindi non differisce principalmente da tutti gli altri tick. Quindi, aprire al momento dell'apertura della barra o in qualsiasi altro momento - il risultato sarà lo stesso. Inoltre, si prega di notare che se l'orario di apertura della barra è specificato alle 01:00, non significa che il primo tick della barra sia stato precisamente alle 01:00:00. Quindi Open è solo una condizione del nuovo taglio delle barre per rendere più facile la costruzione dei grafici.

Grazie per la vostra risposta. Hai assolutamente ragione OPEN è il punto di taglio di una nuova barra, ma questo punto ha un prezzo fisso. La differenza fondamentale di un'entrata Open è che il prezzo Open sarà lo stesso su tutti i terminali dello stesso conto. Di regola, la differenza di velocità terminale non supera un secondo. Durante questo tempo, sul terminale "veloce" la candela può aprirsi e muoversi di n punti. In questo caso, nel terminale "lento", questa candela apparirà un po' più tardi, ma con il movimento già formato. Cioè l'Open e il prezzo corrente saranno gli stessi del terminale "veloce". Quindi, se lo script calcola l'ordine dal prezzo corrente, il prezzo di entrata può essere diverso su terminali diversi. Su un terminale veloce, è il prezzo Open (Bid al momento dell'apertura della barra), su uno lento è il prezzo corrente (Bid al momento). Corrispondentemente, possono essere diversi. E se prendiamo il prezzo Open come base, lo script prenderà immediatamente il prezzo necessario sul terminale lento senza prestare attenzione all'attuale Bid. Di conseguenza, avremo lo stesso prezzo Open per il calcolo degli ordini su tutti i terminali.

 
Dove posso trovare un EA che piazza, cancella o modifica un ordine, TP o SL ad un certo prezzo?
Motivazione: