[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 632

Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Per esempio, dovete calcolare una media mobile semplice con PeriodSMA. Per calcolare la SMA, aggiungi i valori delle ultime barre PeriodSMA e dividi per il PeriodSMA. È ovvio che per le barre con numeri Bars-1, Bars-2, ..., Bars-PeriodSMA+1 non funzionerà, perché semplicemente non abbiamo la quantità necessaria di barre per il calcolo (la barra più a sinistra ha indice Bars-1). Pertanto, dobbiamo iniziare il calcolo dell'indicatore non con l'ultima barra del grafico, ma con la barra con l'indice Bars-PeriodSMA.
Perché scrivono questo valore e non uno arbitrario? È perché questo spostamento dell'inizio del calcolo ci permette di calcolare la quantità massima di barre senza pregiudicare la correttezza del calcolo.
Ma tenete presente che questo è il caso più semplice. A volte può non essere immediatamente chiaro dal codice di quante barre precedenti il programma ha bisogno per il calcolo e da dove viene esattamente questo spostamento. Beh, probabilmente dovreste chiedere allo sviluppatore che ha scritto il codice. Ma in generale, c'è un modo universale - basta guardare il codice, ciò che in linea di principio l'indice massimo della barra può essere ottenuto utilizzando i dati di prezzo e i dati dei buffer di indice durante il funzionamento del programma, di solito già in questa fase diventa chiaro...
Grazie per il chiarimento!
E solo per chiarire, se aggiungo meccanicamente 0, TP e SL funzioneranno in questo tipo di terminale?
Lo faranno, certo che lo faranno.
È a questo che servono, le variabili esterne, per impostare qualsiasi valore.
Ma è più facile mettere nel modulo di inizializzazione ciò che vi è stato consigliato.
O in questa forma:
Le variabili saranno regolate automaticamente, e per altre necessità usate il moltiplicatore "decimale"
Спасибо за разъяснения!
И просто чтобы уточнить, если я механическим путем добавлю 0, то TP и SL будут работать в данном типе терминалов?
prorab:
Lo faranno, naturalmente.È a questo che servono, le variabili esterne, per impostare qualsiasi valore.
Ma è ancora più facile mettere quello che vi è stato consigliato nel modulo di inizializzazione.
O in questa forma:
Le variabili saranno regolate automaticamente, e per altre necessità usate il moltiplicatore "decimale"
Questo compito deve essere chiarito:
Buon pomeriggio...
SOS!!! BRAVA GENTE, AIUTO!!! Sono un principiante nella programmazione in generale (sono autodidatta), e in MQL in particolare. Ho scritto un semplice indicatore: RSI + Bande di Bollinger in una sola persona. Ma ecco il problema: se non specifico espressamente la quantità di elementi nell'array Buf_std_dev (cioè la linea di dichiarazione dell'array assomiglia a questa: double Buf_std_dev[]), allora quando visualizzo questo indicatore nella finestra del terminale client(CT) ottengo la seguente immagine:
Spiegazione dell'immagine:
a) in alto c'è l'RSI, che è disponibile nel set di indicatori forniti con CT, e le Bande di Bollinger sono state trascinate nella finestra di questo RSI con il drag e drop);
b ) in basso c'è l'RSI, che è programmato da me;
Il compilatore non rileva alcun errore o avvertimento.
Se, d'altra parte, quando dichiaro l'array Buf_std_dev, specifico esplicitamente il numero di elementi in esso (cioè, la linea di dichiarazione dell'array si presenta così: double Buf_std_dev[5502], dove 5502 è il numero di barre, che si ottiene utilizzando la variabile Bars), allora tutto torna normale (per come si vede dal confronto dei due indicatori: tutti i valori sono uguali):
Potete dirmi cosa fare per salvare l'immagine, come nella seconda immagine, ma esplicitamente NON per impostare il numero di elementi nell'array Buf_std_dev.
P.S. Grazie in anticipo per la risposta.
Codice allegato (senza alcune parti - non può entrare in 4 MB!!!):
Mostra tutto il codice
Per favore consigliate se ci sono modi per scaricare qui il codice oltre i 4Mb (o scaricarlo qui in parti?)?
Se il vostro Buf_std_dev non è un buffer indicatore (uno degli otto), dovete specificare la sua dimensione, o qualsiasi dimensione (se intendete cambiarla (dimensione) in futuro) quando lo dichiarate.
Giusto, non è... Se posso, altre due domande in una volta sola:
1. Se gli assegno un buffer (l'array Buf_std_dev) , significa che sarà visualizzato anche nella finestra dell'indicatore?
Se non gli assegno un buffer, allora (se ho capito bene) si verifica la seguente situazione: supponiamo che io abbia specificato la dimensione di 100 barre. Poi quando appaiono nuove barre (cioè se per esempio Bars=101), eseguiremo i calcoli solo per le ultime 100 barre che abbiamo specificato (cioè la barra più vecchia - 101 - sarà scartata). Quindi, quando si carica la storia, la dimensione dell'array sarà sempre uguale a 100 barre soltanto (o qualche altro valore, che specificherò al momento della dichiarazione)?