Errore giorno
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Errore giorno
- This topic has 13 replies, 3 voices, and was last updated 7 years ago by Luigi5192.
-
-
10/13/2017 at 7:52 PM #49318
Salve ho creato un codice di un indicatore che deve lavorare su un grafico giornaliero, dove prende in considerazione i range di ogni venerdi, con il seguende codice:
if DayOfWeek=5 then
x = range
endif
return xPerò quando vado a farlo girare non mi prende in considerazione nessun giorno, considerando che il mercato è il forex, e in piu DayOfWeek=5 dovrebbe significare il venerdi, se metto DayOfWeek=1 sarebbe lunedi invece mi prende le domeniche sul grafico daily.
Se qualcuno mi potrebbe aiutare a risolvere questo problema.
10/13/2017 at 8:56 PM #49321Prova con OpenDayOfWeek.
10/15/2017 at 1:33 PM #4940210/16/2017 at 12:47 AM #49450Ho provato con il DAX sul Daily ed OpenDayOfWeek funziona benissimo tutti i giorni.
Forse dipende dalle tue impostazioni circa l’orario della piattaforma e di quel determinato strumento in particolare, non saprei cos’altro suggerirti.
10/16/2017 at 9:14 AM #4949910/16/2017 at 9:25 AM #49503ho provato a fare un sistema che apre una posizione ogni venerdi e la chiude a chiusura del giorno, è funziona mi prende tutti i venerdi, vado a fare l’indicatore facendolo prendere tutti i range di tutti i giorni, ma quando lo faccio girare non mi da nessun valore, come tolgo il venerdi allora funziona.
La candela del venerdi è presente ma l’indicatore non me la prende, ho visto anche l’orario è sta impostato su roma +2.00.
I mercati che ho fatto girare l’indicatore sono il forex, indici e qualche azione, è tutti mi danno lo stesso problema.
10/16/2017 at 10:02 AM #49511Senza vedere il codice è impossibile riprodurre l’eventuale errore e fare verifiche.
Se ti va postalo.
1 user thanked author for this post.
10/18/2017 at 2:19 PM #49833123456giorno = openDayOfWeek=5if giorno and close>open theny = abs(range)x = abs(y+x[1])endifreturn xIl codice è questo, però ho scoperto dopo tanti tentativi che si crea un errore nelle sedute con chiusura superiore all’apertura, infatti ho rifatto il codice precedente mettendo:
123456giorno = openDayOfWeek=5 //venerdiif giorno and close<=open theny = abs(range)x = abs(y+x[1])endifreturn xé funziona perfettamente solo pero prende le sedute negative e anche quelle in pari.
Sono passato da eur/usd a Microsoft, è li funziona tutto pure le sedute positive, quindi il problema starebbe nei grafici di alcuni mercati, anche nel mercato del Cac40 funziona tutto pero sul s&p 500 mi da l’errore il lunedi si verifica lo stesso problema.
Non riesco a capire forse devo installare di nuovo prorealtime oppure c’è qualcos’altro che bisogna resettare?
10/18/2017 at 5:14 PM #49856Per favore utilizza il pulsante “Insert PRT code” sulla barra grigia, quello indicato con <>.
Quanto al codice, alla riga 3 è superfluo usare ABS(), in quanto RANGE non può mai essere nagativo, in quanto indica la grandezza dell’intervallo di dati tra il massimo ed il minimo, senza tenere conto del colore della candela.
La riga 4
1abs(y+x[1])fa riferimento ad x[1] che non è mai stata inizializzata né utilizzata prima, quindi non può che avere un valore indefinito e neppure sempre uguale!
Cosa vorresti che facesse quella riga?
10/24/2017 at 8:20 PM #50415Scusate non lo sapevo che c’era il comando Insert PRT code per inserire i codici.
Comunque nella riga 4, x[1], voglio sommare il valore di x cioe il range, con la somma dei range precedenti.
Cioè voglio fare in modo che l’ultimo valore dell’indicatore mi restituisce la somma dei range delle barre che aprono nel giorno specifico e sono positive o negative.
10/25/2017 at 8:31 AM #50438Cioè voglio fare in modo che l’ultimo valore dell’indicatore mi restituisce la somma dei range delle barre che aprono nel giorno specifico e sono positive o negative.
Essendo su un TF giornaliero c’è solo una barra al giorno!
10/25/2017 at 10:11 AM #50451Ho capito che il giornaliero ha solo una barra, ma io devo prendere solo le barre del lunedi o del martedi ecc, non tutte le barre insieme.
Per sommare il valore precedente dell’indicatore a quello che calcola adesso sull’ultima barra, c’è un altro modo?
10/25/2017 at 12:00 PM #50467Se ho ben capito, in pratica fai un accumolo, giorno dopo giorno. Se la tua somma è data da X (che avrai inizializzato precedentemente, quando vuoi tu, il lunedì o ad inizio strategia, ecc…), allora devi fare solo:
1x = x + rangeSe il risultato viene da un indicatore allora sarà:
1x = x + CALL "Mio Indicatore"(parametro1, ...)Se, invece, iniziando dal lunedì, vuoi avere la somma di tutti i range in modo progressivo giorno per giorno (Lunedi= lunedì, Martedì=lunedì+Martedì, ecc…), allora devi usare:
1x = summation[OpenDayOfWeek](range) //Lunedì somma 1 giorno, Martedì 2, Mercoledì 3, ecc...10/25/2017 at 12:17 PM #50470Adesso funziona tutto, infatti sbagliavo nella riga 4 cioe
12y = abs(range)x = abs(y+x[1])basta che mettevo come avete scritto voi cioe
1x = x + rangeinfatti accumila i range e l’ultimo valore e la somma del tutto, e funziona su tutti i giorni della settimana su tutti i mercati e time frame.
la ringrazio.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on