
Originariamente Scritto da
alex69
Caspita!!!

Grazie fnet e Marco.
Mi sa che mi sono perso un bel po' di cose strada facendo, nonostante segua il forum costantemente.
Ci sono strumenti di cui ignoravo l'esistenza e che sono stati creati apposta per semplificarci la vita.
Marco, in riferimento al punto 4), puoi aiutarmi a capire meglio come devo intervenire?
Grazie.
Mi sembra che questo thread sia di grande utilità.
E' l'occasione per fare un bel ripasso generale e per sfruttare al meglio le potenzialità di BT.
Grazie Playoptions!!!
ciao,
guarda è molto semplice partiamo dal 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
print (v, o, PeriodoWilliams)
CROSSOVER(A, @lev1)
come vedi nell'istruzione:
SET VariaPeriodi = @periods + o - 50.0
c'è quel 50 che è una costante.
Magari non è adatta per il sottostante/TF/condizioni mercato....
Qui il coefficiente è sommatto/sottratto ma puoi anche moltiplicare dividere...inventare insomma premesso che le varianti sono ben piu che infinite... come prima cosa potresti PARAMETRIZZARLO:
INPUTS: @price(CLOSE), @periods(80), @lev1(-65), @lev2(-35), @variatore(50)
SET v = Variance(@price, @periods, SIMPLE)
SET o = Oscillator(v, @periods)
SET VariaPeriodi = @periods + o - @variatore
# 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
print (v, o, PeriodoWilliams)
CROSSOVER(A, @lev1)
adesso puoi quindi ottimizzarlo....

Questo è solo un esempio come ti dicevo...infatti essendo a sommare/sottrarre ed essendo lineare ottieni gli stessi risultati , della tua ottimizzazione originale... ma "shiftati" ....
Magari avvia a dividere / molitiplicare anche la varianza con un coeff. intorno all'unità...
esempio:
INPUTS: @price(CLOSE), @periods(80), @lev1(-65), @lev2(-35), @variatore(50)
SET v = (Variance(@price, @periods, SIMPLE)) * 1,1
SET o = Oscillator(v, @periods)
SET VariaPeriodi = @periods + o - @variatore
# 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
print (v, o, PeriodoWilliams)
CROSSOVER(A, @lev1)
poi magari al posto di 1,1 lo parametrizzi e lo fai muovere di qualche decimo o centesimo e guardi come risponde.
Mentre con questi esempi sei andato a "sfasare" l'argomente della funzione WilliamsPctR, potresti adesso invece intervenire andando proprio ad amplificare la grandezza A, che poi è quella che deve incrociarsi con i livelli B o C.
quindi anche qua ... coefficiente:
INPUTS: @price(CLOSE), @periods(80), @lev1(-65), @lev2(-35), @variatore(50)
SET v = (Variance(@price, @periods, SIMPLE)) * (1.1)
SET o = Oscillator(v, @periods)
SET VariaPeriodi = @periods + o - @variatore
set PLOT1 = v
# 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)) * 1,1
SET B = @lev1
SET C = @lev2
print (v, o, PeriodoWilliams)
CROSSOVER(A, @lev1)
come vedi adesso A si amplifica
SET A = (WilliamsPctR(PeriodoWilliams)) * 1,1
Infine a titolo di debug prendi lo stesso codice e crei il segnale.
Ed usando le funzioni plot vai a disegnare queste grandezze.
esempio:
set PLOT1 = v
....quando poi sei pratico guardi direttamente i numeri nella finestra di debug dell'ambiente di sviluppo.
procedete a piccole modifiche alla volta.
saluti