Operazione intraday con indicatore
Forums › ProRealTime forum Italiano › Supporto ProOrder › Operazione intraday con indicatore
- This topic has 17 replies, 3 voices, and was last updated 5 years ago by robertogozzi.
-
-
01/26/2019 at 3:37 PM #89705
Buongiorno,
volevo fare un semplice backtest su questa strategia: se un titolo alle ore 9:05 ha l’indicatore RSI 2 periodi inferiore di 20 allora compra il titolo. Alle 17:00 del giorno stesso di vende. Ecco il codice da me creato che non dà errore ma la strategia non esegue nessuna operazione durante 10 anni e mi sembra impossibile. Dove sbaglio? Grazie.
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
indicator3 = RSI[2]
c2 = (indicator3 < 20)
IF c2 and TIME = 090500 THEN
BUY 10000 CASH AT MARKET
ENDIFIF TIME = 170000 THEN
SELL AT MARKET
ENDIFGrazie
Frank
01/26/2019 at 5:15 PM #89708Hai usato un TF di 5 minuti o di 1 minuto?
In caso contrario NON può funzionare perché alle 090500 nessun’altra candela può iniziare, se non, appunto, quella da 5 minuti o da 1 minuto.
01/26/2019 at 9:34 PM #89716Hai usato un TF di 5 minuti o di 1 minuto?
In caso contrario NON può funzionare perché alle 090500 nessun’altra candela può iniziare, se non, appunto, quella da 5 minuti o da 1 minuto.
Hai ragione sbagliavo TF, avevo lasciato il giornaliero, ho risolto mettendo a 5 minuti.
Grazie mille
01/26/2019 at 9:47 PM #89717Però se io volessi acquistare alle 09:05 come già detto, ma solo se RSI 2 periodi della barra giornaliera di ieri era minore di 20. E’ possibile farlo?
Cioè io posso acquistare a un determinato orario in base a al valore di un indicatore che si riferisce però alla barra giornaliera di ieri o di oggi fino al momento dell’acquisto? Non vorrei basarmi sull’indicatore di oggi o di ieri a 5 minuti ma solo dare un orario all’acquisto e alla vendita. Per la condizione vorrei far riferimento al TF giornaliero. Non so però se questo sia possibile.
Spero di essermi spiegato.
Grazie
Frank
01/26/2019 at 10:15 PM #89719Con il nuovo supporto MTF (Multi Time Frame), rilasciato a metà dello scorso anno ed ancora in beta test (ma già disponibile in demo e, su richiesta, anche in reale) è possibile usare più TF nella stessa strategia, per cui è possibile fare quello che vuoi fare tu.
Anche senza MTF, nel tuo caso è possibile ricorrendo alle costanti DCLOSE, DOPEN, DHIGH e DLOW che si riferiscono ai dati giornalieri dell’ultima candela chiusa.
Puoi fare una ricerca della parola MTF, oppure DCLOSE, ecc… e troverai molti esempi e la documentazione ufficiale.
Puoi comunque chiedere qui, se non riesci a fare qualcosa.
01/27/2019 at 3:16 PM #89730Ho provato a capire come applicare DCLOSE alla mia idea ma non ci sono riuscito.
Qual è l’istruzione per dire al programma di entrare a mercato oggi alle 09:05 solo se ieri l’RSI a 2 periodi era minore di 20 utilizzando DCLOSE?
Grazie
Frank
01/27/2019 at 3:34 PM #89731Puoi usare questo:
12345If time = 090500 thenIf Dclose(1) < rsi[2](Dclose(1)) then.....endifendif01/27/2019 at 3:35 PM #89732Buongiorno prova questo così
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
indicator3 = RSI[2]
c2 = (indicator3 < 20)
IF c2 and TIME <= 090500 THEN
BUY 10000 CASH AT MARKET
ENDIFIF TIME = 170000 THEN
SELL AT MARKET
ENDIF01/27/2019 at 3:41 PM #89733Però è meglio con più TF, per avere setup corretti (non testato):
12345678Timeframe(Daily,updateonclose)MioRsi = Rsi[2](close)Timeframe(default)If time = 090500 thenIf MioRsi < 20 then...EndifEndifPuoi lanciarlo dal grafico a 5 minuti o 1 minuto.
01/27/2019 at 3:45 PM #89734Il mio post 89731 è errato, questo è corretto:
12345If time = 090500 thenIf rsi[2](Dclose(1)) < 20 then.....endifendifMa è sicuramente meglio usare il MTF, non sono certo che questa soluzione funzioni.
01/27/2019 at 4:07 PM #89735Il mio post 89731 è errato, questo è corretto:
12345If time = 090500 thenIf rsi[2](Dclose(1)) < 20 then…..endifendifMa è sicuramente meglio usare il MTF, non sono certo che questa soluzione funzioni.
Grazie mille, ho provato questo codice e funziona! La cosa strana è che in un altra parte del trading system devo fare la stessa cosa con ADX[5] e mi dà errore! Che cambia dal RSI a ADX se il codice è uguale?
01/27/2019 at 4:42 PM #89737Se non indichi l’errore è difficile da dire, però ADX credo non voglia le parentesi tonde.
Adesso non sono al PC e non posso verificarlo.
01/27/2019 at 9:15 PM #89743Ecco la riga di codice:
1If adx[5] (Dclose(1)) > 45 thenL’errore che dà è: “Errore di sintassi, una delle espressioni seguenti sarebbe più appropriata di “(“:
e poi tutto un elenco di simboli come la “[“, il “+”, “=”, “*” ecc….
come posso risolvere?
Grazie
Frank
01/27/2019 at 9:30 PM #89745Come avevo immaginato ADX non vuole niente dopo le parantesi quadre.
01/28/2019 at 8:48 AM #89757Come avevo immaginato ADX non vuole niente dopo le parantesi quadre.
E quindi non posso utilizzare questo sistema con l’ADX?
-
AuthorPosts
Find exclusive trading pro-tools on