Usando un indicatore utente (ad esempio Media Mobile di Tilson), i valori che vengono evidenziati nel grafico sono diversi da quelli ottenuti referenziando lo stesso indicatore nel codice (visualizzato tramite istruzione GRAPH).
Risulta ad altri? Eventualmente c’è una soluzione per evitarlo?
Grazie
Hai provato a utilizzare il codice Tilson direttamente nel codice ProOrder invece di utilizzare un'istruzione CALL?
Grazie per la tempestività della risposta.
Ho provato anche ad inserire il codice dell’indicatore Tilson nel codice ProOrder evitando la CALL; permane l’incongruenza.
Allego .itf modificato senza richiami esterni sia del ProOrder che dell’indicatore.
Prova a togliere ONCE all’inizio delle righe, nell’indicatore.
Ho provato tutte le combinazioni possibili:
- togliere ONCE nel codice ProOrder
- togliere ONCE nel codice indicatore
- Togliere ONCE in entrambi
la differenza rimane.
Mi è difficile pensare ad un errore di calcolo in uno dei due codici, mi sembra più logico dubitare di diversi riferimenti, presi da ciascun codice, nella ricostruzione storica del periodo considerato…
E’ una questione importante da chiarire perché, ancorché in situazioni particolari, ProOrder sembra comportarsi in modo incoerente rispetto ai valori degli indicatori referenziati.
A me funzionano entrambi allo stesso modo (ho usato GRAPHONPRICE per metterlo sul prezzo, anziche nella finestra delle variabili).
Facendo sempre riferimento al codice Il-Mio-Sistema-Esempio modificato con GRAPHONPRICE lo screenshot che allego a me evidenzia le due linee diverse…
Non vorrei apparire noioso ma la questione è intrigante.
Grazie per la pazienza
Per le immagini usa file d’immagini (PNG o JPG).
A me funziona benissimo, come vedi le linee sono sovrapposte ed il colore VERDE di una resta sotto quello VIOLA dell’altra, ma nel riquadro sono indicate entrambe.
Se nell’indicatore hai usato
DEFPARAM CalculateOnLastBars = n
toglilo, perché se non hanno un sufficiente numero di barre di storico a disposizione per i calcoli è chiaro che ci siano differenze, magari ProOrder ne usa 10000 e l’indicatore 2000!
Ho fatto questa ulteriore prova, testando la differenza tra l’Indicatore ed il pari dato calcolato internamente al codice ProOrder (la differenza provocherebbe un BUY;
come vedi non uso alcuna definizione per limitare il n delle barre e nello specifico il grafico è impostato con time frame 1ora e visualizza 100 unità.
Effettivamente non rileva alcuna differenza tra i due dati.
Resta il fatto che la visualizzazione grafica dell’indicatore è diversa dalla visualizzazione grafica del medesimo dato calcolato lasciando il dubbio su quale sia il valore reale del dato.
Una richiesta per aferr16: potresti allegare i 2 file itf dell’indicatore e del trading system (ultime versione con le ultime prove)? Ho provato a riscriverlo come i visto nello screenshot ma qualcosa non fa funzionare il tutto. Grazie
Ho provato con i tuoi 2 itf e non lavorano anch’essi… sia su timeframe daily che su quello orario! Ti chiedo se c’è un motivo di avere un’istruzione call che chiama l’indicatore, quando poi nel codice utilizzi lo stesso identico codice dell’indicatore. Mi sembra una codifica doppia. E poi la condizione:
c1 = MyIndicatore <> MyTil
cosa vuol dire? Scusa ma sono profano di programmazione, ma mi ha interessato capire il problema di questo argomento specifico sulla media mobile di Tillson. Grazie ancora
x luxrun:
la codifica doppia nasce dall’osservazione fatta che diceva che poteva essere il richiamo tramite CALL a creare l’incongruenza;
ho voluto verificare che l’indicatore, sia calcolato tramite CALL che direttamente nel codice davano lo stesso risultato.
di fatti la condizione strana (differenza tra indicatore da CALL e calcolato direttamente) che dovrebbe determinare il BUY non si verifica.
Tuttavia (e questo è il nocciolo della questione) evidenziando con istruzione GRAPH o GRAPONPRICE l’indicatore calcolato, questo evidenzia un valore diverso da quello dell’indicatore dia presente nel grafico.
anch’io ho qualche dubbio con il linguaggio di programmazione di PRT, ma con altri linguaggi ormai in disuso, ho qualche esperienza di programmazione a livello professionale.
Comunque grazie dell’interesse mostrato.
Prova a fare una richista d’assistenza premendo Ctrl+M dalla piattaforma.