problemi di TIMEFRAME
- This topic has 5 replies, 2 voices, and was last updated 1 year ago by .
Viewing 6 posts - 1 through 6 (of 6 total)
Viewing 6 posts - 1 through 6 (of 6 total)
Similar topics:
Forums › ProRealTime forum Italiano › Supporto ProOrder › problemi di TIMEFRAME
Buongiorno, sto provando a far girare un backtest su PRT, ma non capisco perché al verificarsi della condizione c1 la posizione viene aperta il martedì e non il primo giorno della settimana successiva.
Sembra anche che la chiuda contestualmente all’apertura. Qualcuno può aiutarmi? Grazie in anticipo.
1 2 3 4 5 6 7 |
// CondizioniDiTrading TIMEFRAME(weekly) c1 = DivergenceCCI[20,-100,100,20][1] = 1 TIMEFRAME(daily) // Esecuzione del trade IF c1 THEN BUY PositionSize CONTRACT AT MARKET ENDIF |
Perché entri sul Giornaliero. Il Settimanale lo usi solo per vedere la divergenza, appena si verifica, senza attendere la chiusura (occorrerebbe usare UpdateOnClose).
Però anche con UpdateOnClose potrebbe entrare più volte durante la settimana, in quanto c1 resterebbe valido una settimana.
In effetti ho un pò di confusione sulla possibilità di usare le variabili con frametime diversi, ciò che vorrei realizzare è intercettare una condizione su un grafico settimanale per poi utilizzarla come condizione di operatività giornaliera (conservando lo stato della variabile). Ad esempio: una divergenzaCCI positiva avvenuta due candele fa sul grafico settimanale deve poter essere condizione BUY fino a che non si verifichi una divergenza negativa (sul settimanale). Quello che poi non mi spiego è perché mi fa entrare in posizione il martedì e non il lunedì. Ma in PRT non esistono le funzioni? Grazie dell’approfondimento
In effetti credo si possa realizzare una funzione, richiamata da una CALL, che al suo interno abbia un TIMEFRAME diverso. Funzionerebbe?
Le funzioni, come hai intuito, si possono in qualche modo sostituire con un indicatore che riceve dei dati in input e restituisce dei valori in output.
E’ meglio non usare timeframe diversi in un indicatore, semplicemente richiama l’indicatore dal timeframe chedesideri, senza che nell’indicatore sia indicato un timeframe specifico.
Prova questa versione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// CondizioniDiTrading TIMEFRAME(weekly) ONCE c1 = 0 c1 = DivergenceCCI[20,-100,100,20][1] IF c1 = 0 THEN c1 = (c1[1] = 1) ENDIF TIMEFRAME(daily) // Esecuzione del trade IF c1 AND Not OnMarket THEN BUY 1 CONTRACT AT MARKET ENDIF //uscita dal trade IF LongOnMarket AND c1 = -1 THEN SELL AT MARKET ENDIF graph c1 |
1 2 3 |
IF c1 = 0 THEN c1 = (c1[1] = 1) ENDIF |
Grazie, non conoscevo questa notazione.
Find exclusive trading pro-tools on