Buongiorno,
sto riscontrando un problema con un indicatore che richiama altri indicatori, e provo a spiegarmi meglio.
Ho due indicatori, St_personalizzato e Canali, che devono lavorare simultaneamente sui timeframe 1 minuto e 5 minuti, tramite un indicatore principale che li richiama usando la funzione CALL.
Il mio flusso è il seguente: lavoro sul timeframe 1 minuto con ST e richiamo gli indicatori dal 5 minuti. Tramite semplici condizioni if sul minuto, dovrei ottenere dei valori di output corretti facendoli lavorare. Tuttavia, spesso i valori risultano errati, anche se non sono richieste molte candele perché gli indicatori funzionino.
Se presi singolarmente, gli indicatori funzionano correttamente, ma quando devono lavorare insieme iniziano a dare problemi. Non riesco a capire se il problema dipenda dalla logica o da altro.
Grazie
Per dire se dipende dalla logica o da altro, occorrono i codici completi degli indicatori che non funzionano come dovrebbero, per analizzarli e provarli.
JSParticipant
Senior
Dalle discussioni precedenti è emerso che l’istruzione “Call”, utilizzata in combinazione con i Multiple Time Frame (MTF), crea spesso problemi…
La soluzione più affidabile è evitare l’istruzione “Call” e integrare entrambi i time frame direttamente all’interno dello stesso indicatore o backtest…
In questo modo si evitano discrepanze e risultati inattesi…
Quindi dovrei far girare il codice per i Canali e St usando TIMEFRAM su 5m e e anche sul minuto usando TIMEFRAME Default, e dal minuto prendermi i valori del 5 ?
Gli indicatori singolarmente funzionano , il problema è quando devono lavorare in combinazione, ora provo a fare come ha detto l utente Js , nel caso dovessi avere ancora problemi le invio il codice
Vi posto il macro indicatore che richiama gli altri indicatori, forse c’è qualche appunto che manca :
timeframe(5mn)
St5=call”Il_Mio_indicatore_S.T” // super trend personalizzato
will5= Williams[140](close) // williams del 5
Canale5sell = CALL “Canale_sell” // indica un canale del 5 minuti tenendo conto del williams e del prezzo
Canale5buy = CALL “Canale_buy” // indica un canale del 5 minuti tenendo conto del williams e del prezzo
timeframe (default) // timeframe MINUTO
St1=call”Il_Mio_indicatore_S.T” // super trend personalizzato
// logica
out=0
if St5=2 then
out=2
endif
if St5=-2 then
out=-2
endif
if Canale5sell=1 and St5=2 THEN
out=3
endif
if Canale5buy=1 and St5=-2 THEN
out=-3
endif
if Canale5sell=1 and St5=2 and St1 =2 THEN // qui escono falsi segnali facendo lavorare in simultanea minuto e 5 minuti
out=4
endif
if Canale5buy=1 and St5=-2 and St1 =-2 THEN // qui escono falsi segnali facendo lavorare in simultanea minuto e 5 minuti
out=-3
endif
return out
La logica mi sembra corretta.
Prova a sostituire la riga 1 con questa:
timeframe(5mn,UpdateOnClose)
Se ancora non funziona devi provare ad inserire il codice degli indicatori direttamente nel tuo codice, tenendo presente, per quelli utilizzati su più timeframe, che i nomi delle variabili devono essere diverse per ciascuno di essi, ad esempio SMA su un timeframe e SMA1 su un’altro, meglio ancora se indichi alla fine il timeframe di riferimento, ad esempio SMA5 per il timeframe a 5 minuti e SMAd per il timeframe di default.