Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 318
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
Pomeriggio. Ho un EA, funziona bene nello strategy tester (apre gli ordini e tutto). Ma quando lo metto solo su un grafico, non succede niente. L'EA non funziona. Ho anche notato una croce accanto al nome dell'EA sul grafico. Come risolvere il problema?
Quando metti l'EA sul grafico si apre una finestra con i parametri, ci sono diverse schede - nella prima "Generale" devi mettere un segno di spunta davanti a "Consenti all'EA di commerciare".
Se l'EA è già sul grafico e viene visualizzato con una croce - sulla barra degli strumenti, clicca sul pulsante "EAs" (cubo giallo in un cappello con un cerchio rosso e un quadrato bianco all'interno del cerchio).
Buon pomeriggio. Aiutami ad affrontare uno strano problema.
Il punto è: sto scrivendo un indicatore multitemporale, cioè un indicatore che, essendo aperto in qualsiasi momento, eseguirà calcoli e darà segnali anche per tutti gli altri tempi.
La base dell'indicatore è RSI.
In init() quando si cambia il timeframe, viene messo un array separato in corrispondenza della linea dell'indicatore. Per ognuno di essi viene visualizzata la linea, quando si è in questo o quel momento, ma i calcoli per gli altri tempi non vanno avanti (la funzione iRSI sta stupidamente inseguendo degli zeri nel calcolo). Cioè il tempo corrente viene calcolato, ma gli altri tempi no.
Sto incollando il codice:
La cosa interessante è che se lasciamo solo un array per la linea dell'indicatore e calcoliamo solo W1 in qualsiasi momento, tutto viene calcolato e disegnato correttamente in qualsiasi(!) momento.
Qual è il trucco? È impossibile prendere diversi array per la linea dell'indicatore durante l'inizializzazione, a seconda del tempo?
Buon pomeriggio. Aiutami ad affrontare uno strano problema.
Il punto è: sto scrivendo un indicatore multitime, cioè un indicatore che, essendo aperto in qualsiasi momento, calcolerà e darà segnali anche per tutti gli altri tempi.
La base dell'indicatore è RSI.
In init() quando si cambia il timeframe, viene messo un array separato in corrispondenza della linea dell'indicatore. Per ognuno di essi viene visualizzata la linea, quando si è in questo o quel momento, ma i calcoli per gli altri tempi non vanno avanti (la funzione iRSI sta stupidamente inseguendo degli zeri nel calcolo). Cioè il tempo corrente viene calcolato, ma gli altri tempi no.
Sto incollando il codice:
La cosa interessante è che se lasciamo solo un array per la linea dell'indicatore e calcoliamo solo W1 in qualsiasi momento, tutto viene calcolato e disegnato correttamente in qualsiasi(!) momento.
Qual è il trucco? È impossibile prendere diversi array per la linea dell'indicatore durante l'inizializzazione, a seconda del tempo?
Solo W1 e D1 sono letti! Che cosa vuoi? Finiscilo per gli altri!
Non è questo il punto. Ho dato i calcoli solo per D1 e W1, in modo che il codice non sia troppo lungo. Nota: ad ogni tick di ogni timeframe, vengono stampati i valori calcolati di W1. Quindi, se viene aperto qualsiasi tempo tranne W1, vengono stampati degli zeri. Se funziona per W1, funzionerà per altri.
Non è questo il punto. Ho dato i calcoli solo per D1 e W1, per non rendere il codice troppo lungo. Nota: ad ogni segno di spunta su qualsiasi timeframe vengono stampati i valori calcolati di W1. Quindi, se viene aperto qualsiasi tempo tranne W1, vengono stampati degli zeri. Se funziona per W1, funzionerà per tutti gli altri.
Corretto! Per mostrare su altri grafici, dovete aprire anche il grafico settimanale!
Ad essere onesti, non ho capito questa affermazione.
E non c'è bisogno di mostrare altro. Se eseguite il codice, vedrete che mostra già quello che voglio: su D1 mostra il grafico RSI D1 e su W1 - grafico RSI W1, ma allo stesso tempo, se D1 è aperta, allora le RSI per W1 sono tutte zero, e se W1 è aperta, allora i calcoli per D1 sono zero. La domanda è perché questo è il caso e come risolverlo.
Il problema è che l'array di indici si inizializza e si ridimensiona alla giusta dimensione.
Ho cambiato l'interruttore in init() in questo modo:Così quando apro D1 - RSI_D1[] diventa indicizzato, e tutto è a posto con esso, ma gli altri array rimangono in stato embrionale.
Ho provato in questo modo: ho dichiarato tutti gli array in questo modo:
Tuttavia, su ArrayResize GetLastError dà un errore:
EURUSD,Daily: impossibile ridimensionare l'array
EURUSD,Daily: some array error
Comunque, chi può dirmi come risolvere questo problema?
Il problema è che l'array di indici si inizializza e si ridimensiona alla giusta dimensione.
Ho cambiato l'interruttore in init() in questo modo:Così quando apro D1 - RSI_D1[] diventa indicizzato, e tutto è a posto con esso, ma gli altri array rimangono in stato embrionale.
Ho provato in questo modo: ho dichiarato tutti gli array in questo modo:
Tuttavia, su ArrayResize GetLastError dà un errore:
EURUSD,Daily: impossibile ridimensionare l'array
EURUSD,Daily: some array error
Comunque, chi può dirmi come risolvere questo problema?
Se l'array è dinamico, assicuratevi di aumentare la dimensione dell'array per ospitare i nuovi dati quando vi si scrivono dei valori. ArrayResize()
Ma ArrayResize GetLastError dà un errore:
EURUSD,Daily: cannot resize the array
EURUSD,Daily: some array error
Questo è ciò di cui ho scritto sopra:
Tuttavia su ArrayResize GetLastError dà un errore:
EURUSD,Daily: impossibile ridimensionare la matrice
EURUSD,Daily: qualche errore di matrice
Ad essere onesti, non ho capito questa affermazione.
E non c'è bisogno di mostrare altro. Se eseguite il mio codice, vedrete che tutto è già mostrato: RSI D1 è mostrato su D1 e RSI W1 su W1, ma allo stesso tempo, se D1 è aperta, allora le RSI per W1 sono tutte nulle, e se W1 è aperta, allora le RSI per D1 sono tutte nulle. La domanda è perché questo è il caso e come risolverlo.
Perché il buffer è da solo e si mostra uno per uno alla tua chiamata!