-
03-12-14, 10:58 #51
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.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455INPUTS
:
@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 ApoUltima modifica di Apocalips; 03-12-14 alle 11:07
....non si desidera ciò che è facile ottenere (Ovidio)....
-
03-12-14, 11:13 #52
-
03-12-14, 11:14 #53
- Data Registrazione
- Mar 2011
- Messaggi
- 718
proposta:
- visto che oramai parecchi di noi ha diverse versione di questo TS, perchè non lo condividiamo sulla tradingroom? (sempre se per i padroni di casa non ci sono problemi)
-
03-12-14, 11:18 #54
-
03-12-14, 11:28 #55
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
-
03-12-14, 11:34 #56
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
123456789101112131415161718192021INPUTS
:
@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
123456789101112131415161718SET
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.
-
03-12-14, 11:43 #57
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:
12345678910INPUTS
:
@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
Ultima modifica di Cagalli Tiziano; 03-12-14 alle 11:53
..se corri dietro a due lepri, non ne prendi nemmeno una.
-
03-12-14, 11:47 #58
-
03-12-14, 11:48 #59..se corri dietro a due lepri, non ne prendi nemmeno una.
-
03-12-14, 11:50 #60..se corri dietro a due lepri, non ne prendi nemmeno una.