Milano 29 novembre 2014
Collapse
This topic is closed.
X
X
-
Eccomi !!
Sono riuscito a legare il periodo del Williams alla volatilità dello strumento espressa da un ATR.
La cosa bella è che non c\'è piu bisogno di cambiare i parametri ogni volta che si cambia time-frame in quanto
ho trasformato l\'indicatore Atr a cui si collega il Williams in un Oscillatore con valori normalizzati che vanno sempre da 0 a 100 indipendentemente dal Timeframe.
Con questo Sript il williams avrà un periodo che oscillerà in base alla volatilità da un valore di 1/5 a 2 volte il valore iniziale (inputabile). Nel nostro esempio il periodo varierà da min 20 a max 200, aumenterà quando la vola aumenta e diminuira quando la vola scende.
Vediamo subito il confronto con quello standard a periodo 100
In verde quello a periodo variabile (lisciato con una Ema breve) e in rosso quello standard
Si vede molto bene come cambia la reattività dell\' indicatore in funzione della volatilità
Se vi piace l\'idea, domani lo pubblico
ApoLast edited by Apocalips; 03-12-14, 00:43.....non si desidera ciò che è facile ottenere (Ovidio)....
Comment
-
Ahhhh ma non state attenti ....
scherzo!
Comunque Denis (mi pare) da qualche parte qui nel Forum aveva messo questo codice per un indicatore wil%R modificato (vabbè io ci ho fatto qualche altra modifica ... vedete voi) ....
INPUTS: @period1(200), @period2(100), @lev1(-65), @lev2(-35), @coeff(2)
SET allungaAccorcia = (StandardDeviations(CLOSE, @period2, 1, SIMPLE)/@coeff)
SET VariaPeriodi = ROUND((@period1 * allungaAccorcia),0)
SET PLOT1 = WilliamsPctR(VariaPeriodi)
SET PLOT2 = @lev1
SET PLOT3 = @lev2
Comunque con un pò di settaggio dei parametri un signal basato su questo indicator mi pare che vada più che bene!![/QUOTE]
Se utilizzo questo codice la CPU del PC mi va al 100% e diventa tutto lentissimo... succede a qualcun altro?Comment
-
Apo, sei di un altro pianeta.Eccomi !!
Sono riuscito a legare il periodo del Williams alla volatilità dello strumento espressa da un ATR.
La cosa bella è che non c\'è piu bisogno di cambiare i parametri ogni volta che si cambia time-frame in quanto
ho trasformato l\'indicatore Atr a cui si collega il Williams in un Oscillatore con valori normalizzati che vanno sempre da 0 a 100 indipendentemente dal Timeframe.
Con questo Sript il williams avrà un periodo che oscillerà in base alla volatilità da un valore di 1/5 a 2 volte il valore iniziale (inputabile). Nel nostro esempio il periodo varierà da min 20 a max 200, aumenterà quando la vola aumenta e diminuira quando la vola scende.
Vediamo subito il confronto con quello standard a periodo 100
In verde quello a periodo variabile (lisciato con una Ema breve) e in rosso quello standard
[ATTACH=CONFIG]17017[/ATTACH]
Si vede molto bene come cambia la reattività dell\' indicatore in funzione della volatilità
Se vi piace l\'idea, domani lo pubblico
Apo
L\'idea mi sembra ottima.
Hai avuto modo di testarlo in backtest e valutarne i risultati rispetto all\'indicatore normale?Comment
-
Ciao Alex, sono solo un terrestre come voi
Se si chiama linguaggio Easyscript ci sarà pure un motivo altrimenti Tiziano lo avrebbe chiamato solo Script.
Posto il codice e a voi tutte le prove che desiderate
Aggiungo che con questa logica si puo modificare il periodo di qualsiasi indicatore con fasce di escursioni impostabili a piacimento basta solo fare le giuste sostituzioni
APO - Williams %R a periodo variabile
PS: per utilizzare questo indicatore in un Signal, per non riscrivere tutto l\'ambaradan vi dovete creare la relativa funzione per poi richiamarla nello script del Signal e qui Max ci puo dare una mano.Codice:INPUTS: @WPRperiod (100), @Atrperiod(21), @lowMark(-20), @highMark(-80) SET A= ATR(@Atrperiod,SIMPLE) #Atr normalizzato 0-100 SET B = ROUND(OSC(A,480),0) # Definiamo 10 fascie di oscillazione dell\'Atr normalizzato: SET S1 = B>=0 AND B<=10 SET S2 = B>=11 AND B<=20 SET S3 = B>=21 AND B<=30 SET S4 = B>=31 AND B<=40 SET S5 = B>=41 AND B<=50 SET S6 = B>=51 AND B<=60 SET S7 = B>=61 AND B<=70 SET S8 = B>=71 AND B<=80 SET S9 = B>=81 AND B<=90 SET S10 = B>=91 AND B<=100 #Definiamo i moltiplicatori di periodo per ciascuna fascia: SET M1 = IF(S1=1,0.2,0) SET M2 = IF(S2=1,0.4,0) SET M3 = IF(S3=1,0.6,0) SET M4 = IF(S4=1,0.8,0) SET M5 = IF(S5=1,1,0) SET M6 = IF(S6=1,1.2,0) SET M7 = IF(S7=1,1.4,0) SET M8 = IF(S8=1,1.6,0) SET M9 = IF(S9=1,1.8,0) SET M10= IF(S10=1,2,0) #Valore del periodo istante per istante: SET PeriodoVariabile= @WPRperiod*(M1+M2+M3+M4+M5+M6+M7+M8+M9+M10) #...ed infine ecco il WPR a periodo variabile lisciato con una Ema breve: SET C= EMA(WPR(PeriodoVariabile),6) # plottiamo il tutto: SET PLOT1= C SET PLOT2= @lowMark SET PLOT3= @highMark SET PLOTCOLOR2= COLOR_GREEN SET PLOTCOLOR3= COLOR_RED #...e controlliamo con il Debug PRINT(A,B,C,PeriodoVariabile) #....e abbiamo finito xD, buon divertimento !! # Apo
Saluti ApoLast edited by Apocalips; 03-12-14, 11:07.....non si desidera ciò che è facile ottenere (Ovidio)....
Comment
-
Scusami MRTMSS perchè non cominci a postare il codice della versione in tuo possesso ?
grazie
Apo....non si desidera ciò che è facile ottenere (Ovidio)....
Comment
-
Fantastico lavoro APO, ma io l\'ho provato e mi plotta solo le due linee a -20 e -80...nient\'altroCiao Alex, sono solo un terrestre come voi
Se si chiama linguaggio Easyscript ci sarà pure un motivo altrimenti Tiziano lo avrebbe chiamato solo Script.
Posto il codice e a voi tutte le prove che desiderate
Aggiungo che con questa logica si puo modificare il periodo di qualsiasi indicatore con fasce di escursioni impostabili a piacimento basta solo fare le giuste sostituzioni
APO - Williams %R a periodo variabile
PS: per utilizzare questo indicatore in un Signal, per non riscrivere tutto l\'ambaradan vi dovete creare la relativa funzione per poi richiamarla nello script del Signal e qui Max ci puo dare una mano.Codice:INPUTS: @WPRperiod (100), @Atrperiod(21), @lowMark(-20), @highMark(-80) SET A= ATR(@Atrperiod,SIMPLE) #Atr normalizzato 0-100 SET B = ROUND(OSC(A,480),0) # Definiamo 10 fascie di oscillazione dell\'Atr normalizzato: SET S1 = B>=0 AND B<=10 SET S2 = B>=11 AND B<=20 SET S3 = B>=21 AND B<=30 SET S4 = B>=31 AND B<=40 SET S5 = B>=41 AND B<=50 SET S6 = B>=51 AND B<=60 SET S7 = B>=61 AND B<=70 SET S8 = B>=71 AND B<=80 SET S9 = B>=81 AND B<=90 SET S10 = B>=91 AND B<=100 #Definiamo i moltiplicatori di periodo per ciascuna fascia: SET M1 = IF(S1=1,0.2,0) SET M2 = IF(S2=1,0.4,0) SET M3 = IF(S3=1,0.6,0) SET M4 = IF(S4=1,0.8,0) SET M5 = IF(S5=1,1,0) SET M6 = IF(S6=1,1.2,0) SET M7 = IF(S7=1,1.4,0) SET M8 = IF(S8=1,1.6,0) SET M9 = IF(S9=1,1.8,0) SET M10= IF(S10=1,2,0) #Valore del periodo istante per istante: SET PeriodoVariabile= @WPRperiod*(M1+M2+M3+M4+M5+M6+M7+M8+M9+M10) #...ed infine ecco il WPR a periodo variabile lisciato con una Ema breve: SET C= EMA(WPR(PeriodoVariabile),6) # plottiamo il tutto: SET PLOT1= C SET PLOT2= @lowMark SET PLOT3= @highMark SET PLOTCOLOR2= COLOR_GREEN SET PLOTCOLOR3= COLOR_RED #...e controlliamo con il Debug PRINT(A,B,C,PeriodoVariabile) #....e abbiamo finito xD, buon divertimento !! # Apo
Saluti ApoComment
-
In Easy script esiste una funzione che si chiama Oscillator che serve per trasformare in oscillatore ogni tipo di indicatore.
Per variare i periodi ci sono mille modi, questo è uno ed è decisamente performante.
(Qui ho usato la varianza che è la radice quadrata della deviazione standard)
Nell\'immagine del Dax notate i punti di svolta che sono stati presi millimetricamente proprio perchè è variato il periodo!!!
Buy Script
Codice:INPUTS: @price(CLOSE), @periods(80), @lev1(-65), @lev2(-35) SET v = Variance(@price, @periods, SIMPLE) SET o = Oscillator(v, @periods) SET VariaPeriodi = @periods + o - 50.0 # EasyScript internamente esegue gia\' l\'arrotondamento all\'intero piu\' vicino nel calcolo dei periodi # quindi questa riga non e\' necessaria. # SET VariaPeriodi = ROUND((@period1 * allungaAccorcia),0) # Assicura di avere un valore valido per il calcolo di %R SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi) SET A = WilliamsPctR(PeriodoWilliams) SET B = @lev1 SET C = @lev2 CROSSOVER(A, @lev1)
Sell script
Codice:SET v = Variance(@price, @periods, SIMPLE) SET o = Oscillator(v, @periods) SET VariaPeriodi = @periods + o - 50.0 # EasyScript internamente esegue gia\' l\'arrotondamento all\'intero piu\' vicino nel calcolo dei periodi # quindi questa riga non e\' necessaria. # SET VariaPeriodi = ROUND((@period1 * allungaAccorcia),0) # Assicura di avere un valore valido per il calcolo di %R SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi) SET A = WilliamsPctR(PeriodoWilliams) SET B = @lev1 SET C = @lev2 CROSSOVER(@lev2, A )
..se corri dietro a due lepri, non ne prendi nemmeno una.Comment
-
Non avevo visto la versione di periodi variabili fatta da APO, altrimenti non avrei riproposto una seconda delle mie!
Comunque l\'idea di cambiare il periodo è un\'idea logica che ho scritto sul forum di TRadestation almeno 18 anni fa.
Come ho già detto nel filmato del mese scorso, quando l\'ho presentato, esistono infniti modi di variarlo ed ognuno troverà quello che preferisce.
Io non consiglio mai nulla ma ho visto che meno cose si scrivono e meglio i TS funzionano per cui non entrate in meandri difficili.
A questo punto vi metto anche l\'indicatore:
Codice:INPUTS: @price(CLOSE), @periods(100), @lev1(-65), @lev2(-35) SET v = Variance(@price, @periods, SIMPLE) SET o = Oscillator(v, @periods) SET VariaPeriodi = @periods + o - 50.0 SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi) SET PLOT1 = WilliamsPctR(PeriodoWilliams) SET PLOT2 = @lev1 SET PLOT3 = @lev2
Last edited by Cagalli Tiziano; 03-12-14, 11:53...se corri dietro a due lepri, non ne prendi nemmeno una.Comment
-
Comment
-
..se corri dietro a due lepri, non ne prendi nemmeno una.Comment
-



...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
Comment