COSTRUZIONE INDICATORE PER ANALISI CICLICA CON VISUAL TRADER (2 lettori)

solospread

Forumer storico
Oggi qui in Trentino è una splendida giornata di sole ideale per andare a sciare . E' ora di postare il listato dell'utimo TS. Vi metto la versione base che potete modificare a vostro piacimento. Un invito a tutti di postare le vostre modifiche per dare un senso a questo thread. Questa versione dà il suo meglio su frame 5 minuti (io l'ho modificata per il 2 minuti). Negli ultimi 10 gg ha portato a casa circa 1000 punti. Buona domenica.
///////////////////////////////////////////////////////////////////////////////////////
Var: miavar(0),mioosc5;
Var: miovel1,miopistaciclica1;
Var: miavar(0),MioVALORITIT1, miovol (0);
Var: OPA,OPB,MMA,MMB,miomoxx,OP1,OP2;
Var: indvp,MAXD2,MIND3,MAXD3,MIND2,MMUP,MMDW;
Var: MioMOV1,MioKRM2,miomovww,MioKRM3,miomaxCO,MINPC1,MAXPC1,mediavol1;
Var: pp,llow,hhigh,aa,bb,expoa,expob,dd,mmm2,nnn3,indvp1,MEDM5;
Var: previousH,previousL,previousC,
Pivot,R1,S1, R1mid,S1mid, prova, cambiatogiorno,
lin1,lin2,lin3,lin4,lin5,
indperiodo, numper, ggini, primavolta(-1);

////////////////////////////////////////////////////////////////////////////////

previousH=EOD.H[1];
previousL=EOD.L[1];
previousC=EOD.C[1];
cambiatogiorno = GetValues(days, 1, prova, prova, prova, prova);
// Calcola Pivot
R1=(2*Pivot)-previousL;
Pivot=(previousH+previousC+previousL)/3;
S1=(2*Pivot)-previousH;
R1mid=(R1+pivot)/2;
S1mid=(S1+pivot)/2;
if cambiatogiorno then
// Termina le linee precedenti qui, Crea nuove Linee per il prossimo Giorno
lin1 = CREATEOGG;
lin2 = CREATEOGG;
lin3 = CREATEOGG;
lin4 = CREATEOGG;
lin5 = CREATEOGG;
indperiodo = 0;
ggini = GetDate;
// da dove parto a tracciare la linea orizzontale
primavolta = false;
endif;
indperiodo = indperiodo + 1;
numper = indperiodo;
// Disegna Linee orizzontali lunghe solo in quel giorno
lin1 = drawhlineper(lin1,0,ggini, r1, numper, fuchsia,2,0);
lin2 = drawhlineper(lin2,0,ggini, Pivot, numper, blue,2,0);
lin3 = drawhlineper(lin3,0,ggini, s1, numper, black,2,0);
lin4 = drawhlineper (lin4,0,ggini, R1mid, numper, fuchsia,2,2);
lin5 = drawhlineper (lin5,0,ggini, S1mid, numper, black,2,2);

////////////////////////////////////////////////////////////////////////////////

miomaxCO = OSC_COMPAREVALUES (C, O, G,C, O);
MioPISTACICLICA1 = PISTACICLICA(C,25);
MioMOV1 = MOV(Miopistaciclica1,14, 0, 0, 0);
MioKRM2 = DIFF(Miopistaciclica1, MioMOV1, 0);
MioKRM3 = DIFF(mioMOV1,Miopistaciclica1,0);
mmm2= MOV(MioKRM2,14,s);
nnn3 = MOV(MioKRM3,14,s);
miomovww = MOV(MioKRM2,14,s);
miomoxx =MOV(MioKRM3,14,s);
MMUP = MOV(MioKRM2,34,s);
MMDW = MOV(MioKRM3,34,s);
miovol = VolumeTit (C);
mediavol1 = MOV(miovol,50,s);
MioVALORITIT1 = VALORITIT(C, 3);
OPA = OP(miopistaciclica1,miovol,add);
OPB = OP(miopistaciclica1,miovol,sub);
MMA = MOV(OPA,14,s);
MMB = MOV(OPB,14,s);
OP1 = OP(MioKRM2,MioKRM3,sub);
OP2 = OP(MioKRM3,MioKRM2,sub);
MAXD2 = HHV(MioKRM2,20);
MIND3 = LLV(MioKRM3,20);
MAXD3 = HHV(MioKRM3,20);
MIND2 = LLV(MioKRM2,20);
mioosc5 = ForceIndex (C,8);
MEDM5 = MOV(mioosc5,5,s);
MINPC1 = LLV(miopistaciclica1,20);
MAXPC1 = HHV(miopistaciclica1,20);

////////////////////////////////////////////////////////////////////////////////

if Crossunder(MioKRM3,miomoxx) then EnterLong(Bar, Atclose); endif;
if Crossunder(miomoxx,MioKRM3) then Exitlong(Bar,AtClose); endif;
if Crossunder(miomoxx,MioKRM3) then Entershort(Bar,AtClose); endif;
if Crossunder(MioKRM3,miomoxx) then exitshort (Bar,AtClose); endif;


////////////////////////////////////////////////////////////////////////////////
installstoploss(INPERC,1.5,"STOP");
indvp1 = createviewport(200,true,true);
indvp = createviewport(200, true, true);
PlotChart(MioKRM2, indvp, red, solid,2);
PlotChart(MioKRM3, indvp,blue, solid,2);
PlotChart(miomovww, indvp, fuchsia, solid,1);
PlotChart(miomoxx, indvp,green, solid,1);
PlotChart(Mioosc5, indvp1,black, solid,1);
PlotChart(MEDM5, indvp1, red, solid,1);
 
Ultima modifica:

solospread

Forumer storico
Ho provato a fare copia ed incolla ma purtroppo nel trasferimento si sono spostate delle lettere. Quick's mi aveva postato come inserire il codice ma io i tre pulsantini non li trovo. Ho trovato gli errori però:
sesta riga partendo dall'alto MAXPC1 (c'è uno spazio all'interno della parola e quindi bisogna toglierlo e scrivere come l'ho scritta io)
settima riga indvp 1 (unire l'1 a indvp) e viene indvp1
PS: per chi l'ha scaricata domenica mattina prima delle 11 occhio che c'era una stringa sbagliata e conviene cancellarla e ricopiarla. Ora è OK.
 
Ultima modifica:

misterx

Nuovo forumer
BATTLEPLAN in VT

Per chi lo gradisse posto il codice per visualizzare il battleplan di Migliorino su VT (qualcosa che ci assomiglia). Si accettano suggerimenti per migliorarlo.

i 6 parametri sono:

durataciclo
tipotrend (negativo = trend discendente positivo = trend ascendente)
coef1 per ampiezza del ciclo
molt e centratore per centrarlo sul grafico principale
shiftbarra per gestire lo spostamento sull'asse (solo a destra)

{******************************************************************************
* Battleplan.
******************************************************************************}
input: durataciclo(360),tipotrend(-1),coef1(0.01),molt(400),centratore(20000),shiftbarra(0);
var: ciclo,ciclo1,ciclo2,ciclo3,ciclo4,battleplan,battleplan1, battleplan2,
indzona1,contatore,
gradi,coef,contatore1;

//BATTLEPLAN
if currentbar>shiftbarra then //shifto il ciclo a destra di n barre
contatore=contatore+1;
coef=(360/(durataciclo*16))*contatore; //coefficiente di ciclo
gradi=-90; //Sfasatura della sinusoide
ciclo1=sin(8*coef+gradi);
ciclo2=sin(4*coef+gradi);
ciclo3=sin(2*coef+gradi);
ciclo4=sin(coef+gradi);
ciclo=ciclo1+ciclo2+ciclo3+ciclo4; //sommatoria delle 4 sinusoidi
battleplan=(coef1*tipotrend*1); //ciclo + linea per trend ascendente/discendente
contatore1=contatore1+battleplan;
battleplan1=contatore1+ciclo; //ciclo completo
battleplan2=(battleplan1*molt)+centratore; //centratura su grafico centrale
Indzona1 = CreateViewport(150, true, true);
PlotChart(battleplan2, 0, blue, solid, 2);
endif;
 

misterx

Nuovo forumer
E un suo utilizzzo centrato sull'attuale TF5 del FIB

con parametri:

durata 475
tipotrend 0
coef1 0.01
molt 300
centratore 19000
shift 126

Buon divertimento..

BATTLEPLAN.GIF
 

solospread

Forumer storico
Per chi lo gradisse posto il codice per visualizzare il battleplan di Migliorino su VT (qualcosa che ci assomiglia). Si accettano suggerimenti per migliorarlo.

i 6 parametri sono:

durataciclo
tipotrend (negativo = trend discendente positivo = trend ascendente)
coef1 per ampiezza del ciclo
molt e centratore per centrarlo sul grafico principale
shiftbarra per gestire lo spostamento sull'asse (solo a destra)

{******************************************************************************
* Battleplan.
******************************************************************************}
input: durataciclo(360),tipotrend(-1),coef1(0.01),molt(400),centratore(20000),shiftbarra(0);
var: ciclo,ciclo1,ciclo2,ciclo3,ciclo4,battleplan,battleplan1, battleplan2,
indzona1,contatore,
gradi,coef,contatore1;

//BATTLEPLAN
if currentbar>shiftbarra then //shifto il ciclo a destra di n barre
contatore=contatore+1;
coef=(360/(durataciclo*16))*contatore; //coefficiente di ciclo
gradi=-90; //Sfasatura della sinusoide
ciclo1=sin(8*coef+gradi);
ciclo2=sin(4*coef+gradi);
ciclo3=sin(2*coef+gradi);
ciclo4=sin(coef+gradi);
ciclo=ciclo1+ciclo2+ciclo3+ciclo4; //sommatoria delle 4 sinusoidi
battleplan=(coef1*tipotrend*1); //ciclo + linea per trend ascendente/discendente
contatore1=contatore1+battleplan;
battleplan1=contatore1+ciclo; //ciclo completo
battleplan2=(battleplan1*molt)+centratore; //centratura su grafico centrale
Indzona1 = CreateViewport(150, true, true);
PlotChart(battleplan2, 0, blue, solid, 2);
endif;

Complimenti Misterx . Bel lavoro.
 

solospread

Forumer storico
Ho mixato il vecchio TS REgrelin_velocità con l'ultimo. Ho usato gli ingressi dell'ultimo e le uscite della REGRLIN_VEL sfruttando l'anticipo. Il frame da utilizzare è il 5 minuti e fà il 13% in 10gg.
///////////////////////////////////////////////////////////////////////////////////////
Var: miavar(0),MioREGRLIN0,MioVEL1,MioPISTACICLICA2, MioMOV3,MioMov4,MioMOV5;
Var: miavar(0),mioosc5;
Var: miovel1,miopistaciclica1;
Var: miavar(0),MioVALORITIT1, miovol (0);
Var: OPA,OPB,MMA,MMB,miomoxx,OP1,OP2;
Var: indvp,MAXD2,MIND3,MAXD3,MIND2,MMUP,MMDW;
Var: MioMOV1,MioKRM2,miomovww,MioKRM3,miomaxCO,MINPC1,MaXPC1,mediavol1;
Var: indvp1,MEDM5,MMM2,NNN3;
MioREGRLIN0 = REGRLIN(C, 34);
MioVEL1 = VEL(C, 30, 0, 10);
MioPISTACICLICA2 = PISTACICLICA(C,25);
MioMov3 =MOV(H,21,1,0,0);
MioMOV4 = MOV(L, 21, 1, 0, 0);
MioMOV5 = MOV ( C,9,0,0);

miomaxCO = OSC_COMPAREVALUES (C, O, G,C, O);
MioPISTACICLICA1 = PISTACICLICA(C,25);
MioMOV1 = MOV(Miopistaciclica1,14, 0, 0, 0);
MioKRM2 = DIFF(Miopistaciclica1, MioMOV1, 0);
MioKRM3 = DIFF(mioMOV1,Miopistaciclica1,0);
mmm2= MOV(MioKRM2,14,s);
nnn3 = MOV(MioKRM3,14,s);
miomovww = MOV(MioKRM2,14,s);
miomoxx =MOV(MioKRM3,14,s);
MMUP = MOV(MioKRM2,34,s);
MMDW = MOV(MioKRM3,34,s);
miovol = VolumeTit (C);
mediavol1 = MOV(miovol,50,s);
MioVALORITIT1 = VALORITIT(C, 3);
OPA = OP(miopistaciclica1,miovol,add);
OPB = OP(miopistaciclica1,miovol,sub);
MMA = MOV(OPA,14,s);
MMB = MOV(OPB,14,s);
OP1 = OP(MioKRM2,MioKRM3,sub);
OP2 = OP(MioKRM3,MioKRM2,sub);
MAXD2 = HHV(MioKRM2,20);
MIND3 = LLV(MioKRM3,20);
MAXD3 = HHV(MioKRM3,20);
MIND2 = LLV(MioKRM2,20);
mioosc5 = ForceIndex (C,8);
MEDM5 = MOV(mioosc5,5,s);
MINPC1 = LLV(miopistaciclica1,20);
MAXPC1 = HHV(miopistaciclica1,20);

////////////////////////////////////////////////////////////////////////////////

if Crossunder(MioKRM3,miomoxx) then EnterLong(Bar, Atclose); endif;
if (MioREGRLIN0 > C and MioVEL1 < 0 and MioPISTACICLICA2 < 0) then
if (MioREGRLIN0 > C and mioREGRLIN0 < MioREGRLIN0 [1] and MioVEL1 < mioVEL1 [1] ) then
ExitLong (NextBar,Atopen);
endif;
if C < MioMov3 then
Exitlong(NextBar, AtOpen);
endif;
endif;

if Crossunder(miomoxx,MioKRM3) then Entershort(Bar,AtClose); endif;
if (MioREGRLIN0 < C and MioVEL1 > 0 and MioPISTACICLICA2 > 0) then
if (MioREGRLIN0 < C and mioREGRLIN0 > MioREGRLIN0 [1] and MioVEL1 > mioVEL1 [1] ) then
Exitshort (NextBar,atOpen);
endif;
if C > MioMov3 then
ExitShort(NextBar, AtOpen);
endif;
endif;


installstoploss(INPERC,3,"STOP");
installtrailingprofit(inperc,5,0.1);
 

enryg70

Nuovo forumer
x solospread
devi andare su modifica avanzata quando rispondi e li trovi i tre pulsantini (penso sia quello col cancelletto da usare che dice code, però mai provato
1228686064cattura.jpg
 

enryg70

Nuovo forumer
x
solospread

Meglio dare dei bei nomi a questi TS così ci capiamo quando c'è da far confronti così abbiamo dei riferimenti precisi
 

quicksilver

Forumer storico
Quick's mi aveva postato come inserire il codice ma io i tre pulsantini non li trovo. OK.


PER TUTTI
Se volete postare codice (le istruzioni dei vostri trading system sono codice di programmazione in pratica) dovete inserirlo usando questa funzione cosi non ci saranno errori di sintassi dovuti alla formattazione dei post fatta dal forum

Per farlo dovete copiare il vostro codice e incollarlo qui dove si scrivono i messaggi, poi selezionarlo tutto con il mouse e cliccare il pulsantino indicato dalla freccia rossa nell'immagine che allego sotto

Solospread fammi sapere se lo trovi

Ciao

ddddddddd.PNG
 

Wile Coyote

Nuovo forumer
Ho mixato il vecchio TS REgrelin_velocità con l'ultimo. Ho usato gli ingressi dell'ultimo e le uscite della REGRLIN_VEL sfruttando l'anticipo. Il frame da utilizzare è il 5 minuti e fà il 13% in 10gg.
///////////////////////////////////////////////////////////////////////////////////////
Var: miavar(0),MioREGRLIN0,MioVEL1,MioPISTACICLICA2, MioMOV3,MioMov4,MioMOV5;
Var: miavar(0),mioosc5;
Var: miovel1,miopistaciclica1;
Var: miavar(0),MioVALORITIT1, miovol (0);
Var: OPA,OPB,MMA,MMB,miomoxx,OP1,OP2;
Var: indvp,MAXD2,MIND3,MAXD3,MIND2,MMUP,MMDW;
Var: MioMOV1,MioKRM2,miomovww,MioKRM3,miomaxCO,MINPC1,MaXPC1,mediavol1;
Var: indvp1,MEDM5,MMM2,NNN3;
MioREGRLIN0 = REGRLIN(C, 34);
MioVEL1 = VEL(C, 30, 0, 10);
MioPISTACICLICA2 = PISTACICLICA(C,25);
MioMov3 =MOV(H,21,1,0,0);
MioMOV4 = MOV(L, 21, 1, 0, 0);
MioMOV5 = MOV ( C,9,0,0);

miomaxCO = OSC_COMPAREVALUES (C, O, G,C, O);
MioPISTACICLICA1 = PISTACICLICA(C,25);
MioMOV1 = MOV(Miopistaciclica1,14, 0, 0, 0);
MioKRM2 = DIFF(Miopistaciclica1, MioMOV1, 0);
MioKRM3 = DIFF(mioMOV1,Miopistaciclica1,0);
mmm2= MOV(MioKRM2,14,s);
nnn3 = MOV(MioKRM3,14,s);
miomovww = MOV(MioKRM2,14,s);
miomoxx =MOV(MioKRM3,14,s);
MMUP = MOV(MioKRM2,34,s);
MMDW = MOV(MioKRM3,34,s);
miovol = VolumeTit (C);
mediavol1 = MOV(miovol,50,s);
MioVALORITIT1 = VALORITIT(C, 3);
OPA = OP(miopistaciclica1,miovol,add);
OPB = OP(miopistaciclica1,miovol,sub);
MMA = MOV(OPA,14,s);
MMB = MOV(OPB,14,s);
OP1 = OP(MioKRM2,MioKRM3,sub);
OP2 = OP(MioKRM3,MioKRM2,sub);
MAXD2 = HHV(MioKRM2,20);
MIND3 = LLV(MioKRM3,20);
MAXD3 = HHV(MioKRM3,20);
MIND2 = LLV(MioKRM2,20);
mioosc5 = ForceIndex (C,8);
MEDM5 = MOV(mioosc5,5,s);
MINPC1 = LLV(miopistaciclica1,20);
MAXPC1 = HHV(miopistaciclica1,20);

////////////////////////////////////////////////////////////////////////////////

if Crossunder(MioKRM3,miomoxx) then EnterLong(Bar, Atclose); endif;
if (MioREGRLIN0 > C and MioVEL1 < 0 and MioPISTACICLICA2 < 0) then
if (MioREGRLIN0 > C and mioREGRLIN0 < MioREGRLIN0 [1] and MioVEL1 < mioVEL1 [1] ) then
ExitLong (NextBar,Atopen);
endif;
if C < MioMov3 then
Exitlong(NextBar, AtOpen);
endif;
endif;

if Crossunder(miomoxx,MioKRM3) then Entershort(Bar,AtClose); endif;
if (MioREGRLIN0 < C and MioVEL1 > 0 and MioPISTACICLICA2 > 0) then
if (MioREGRLIN0 < C and mioREGRLIN0 > MioREGRLIN0 [1] and MioVEL1 > mioVEL1 [1] ) then
Exitshort (NextBar,atOpen);
endif;
if C > MioMov3 then
ExitShort(NextBar, AtOpen);
endif;
endif;


installstoploss(INPERC,3,"STOP");
installtrailingprofit(inperc,5,0.1);

Ciao Solospread. Ho provato a testare il tuo ultimo TS sul Minifib per un periodo di due mesi. Devo informarti che il risultato è molto deludente, anche se è vero che negli ultimi 10 giorni si è comportato discretamente. Il problema è che su un time frame così piccolo il TS entra in posizione tantissime volte e questo a scapito delle commissioni da pagare.
 

Users who are viewing this thread

Alto