COSTRUZIONE INDICATORE PER ANALISI CICLICA CON VISUAL TRADER (1 Viewer)

solospread

Forumer storico
PICCHI BUONI.PNG
Ora il secondo step è scegliere i picchi buoni da quelli meno influenti.
Io ho già messo insieme qualcosa MINIMUM ed ELICA e li ho uniti in un'unica stringa.
Anche voi potete estrarli dal codice e costruirli. Provateci e postateli che magari lavorando insieme non esca l'uovo di Colombo. Elica e minimum sono segnali già identificati mentre il picco non sai mai quando si forma finchè il puntatoresegnaminimi non torna indietro. Per elica ho lavorato sulla percentuale di ritracciamento dal picco. Ovviamente sono tutte scelte che lasciano fuori una parte dei segnali, ma del resto non si può tenerli buoni tutti.
 

solospread

Forumer storico
Integro il listato con MINIMUM-SLIP-R2S.
Metto il codice per intero per non creare bug.
Buona Pasqua a tutti.

Codice:
// TS-PUNTATORE SEGNAMINIMI BY SOLOSPREAD

Var: miomov1,miomax1,miomin1,AA,BB,CC,DD,VV,ZZ,HH,PP,MINIMI,QQ,KK;
var: mio1,tank,please,SDE,SDO,UU,miorsi1,SLOW,segnamassimi,miorsi2;
var: indzona1,indzona2,indzona3,SEGNAMASSIMI;
var: PUNTATORESEGNAMINIMI,SEGNAMINIMI,media1,media2;
Var: mioosc3(0);
Var: mioosc1(0);
Var: mioosc2(0);
var: RA,RB,RC,RD,RCRD,TANK1,PLEASE1;
var: miorsi1,mioMOV1,mioMAX1,mioMIN1,AA,BB,CC,DD;
var: tank,please,VV,ZZ,HH,PP;
var: aaa,bbb,ccc,ddd,MIOMOV2,MIOMAX2,MIOMIN2;
var: A1,B1,C1,D1,minsegnamassimi;
var: maxsegnamassimi,minpuntatoresegnaminimi;
var: TREND,STREET,med;
var: slip,R2S,Mslip,MR2s,minimum;

mioRSI1 = RSI(C,14,s); //RSI da usare suframe 5 minuti
mioRSI2 = RSI(C,21,s); // RSI da usare su frame giornaliero


mioMOV1 = MOV(mioRSI1,3,s);
mioMAX1 = HHV(mioRSI1,30);
mioMIN1 = LLV(mioRSI1,30);

miomax2 = HHV(H,30);
miomin2 = LLv(L,30);
miomov2 = MOV(C,3,s);

// BANDE DI SOLOSPREAD
AA = ((miomax1 - C)+ (miomov1)*miomax1)/H;
BB = ((miomin1 - C)+ (miomov1)*miomin1)/L;
CC = (miomax1- miomov1)+ (C * miomax1)/(C);
DD = (miomin1 - miomov1)+ ( C *miomin1)/(C);

//BANDE MODIFICATE CON RSI
AAA = ((mioMAX1 - mioRSI1) + (mioMOV1)*mioMAX2)/H;
BBB = ((mioMIN1 - mioRSI1) + (mioMOV1)*mioMIN2)/L;
CCC = (miomax1- miomov1)+ (mioRSI1 * miomax2)/C;
DDD = (miomin1 - miomov1)+ ( mioRSI1 *miomin2)/C;


a1 =aa+aaa;
b1=bb+bbb;
c1 =cc+ccc;
d1 = dd+ddd;

TANK = MOV(A1,3,s);
PLEASE = MOV(B1,3,s);

VV = (CC-AA);
ZZ = (BB-DD);
HH = VV-ZZ;
PP = tank - please;


media1 = MOV(C, 10, S);
media2 = MOV(C,50,s);


// BOLLINGER
mioosc2 = BBandLower (C, 20, 4, 0);
mioosc1 = BBandUpper (C, 20, 4, 0);
mioosc3 = BBandCenter (C, 20, 4, 0);



miomax1 = HHV(H,30);
miomin1 = LLV(L,30);
miomov1 = MOV(C,3,s);
RA = ((miomax1 - C)+ (miomov1)*miomax1)/H;
RB = ((miomin1 - C)+ (miomov1)*miomin1)/L;
RC = (miomax1- miomov1)+ (C * miomax1)/(C);
RCRD = (miomin1 - miomov1)+ ( C *miomin1)/(C);

tank1 = MOV(RA,3,s);
please1 = MOV(RB,3,s);


QQ = (RC-RA)/please1;
KK = (mioosc1-RB)/tank1;
med = (miomax2-miomin2)/2 + miomin2;

PUNTATORESEGNAMINIMI = (100/( miorsi1+(qq-kk))+48); // MOTORE
SEGNAMASSIMI = (a1/c1);

slip = (segnamassimi/puntatoresegnaminimi)*100;
r2s =  (PUNTATORESEGNAMINIMI/SEGNAMASSIMI)/100;
Mslip = LLV(slip,15);
Mr2s = HHV(r2s,15);

if slip = Mslip and slip < slip[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10; else minimum = 0; endif;
if r2s = mr2s and r2s > r2s[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1]  then minimum = 10 ; else minimum = 0; endif;

indzona1 = createviewport(200,true,true);
indzona2 = createviewport(200,true,true);
indzona3 = createviewport(200,true,true);


DrawHLine (NEWOGG,indzona1,50,fuchsia, 1, 0);
plotchart (puntatoreSEGNAMINIMI,indzona1,black,solid,1);
plotchart (puntatoreSEGNAMINIMI,indzona1,black,istogramma,1);
plotchart (minimum,indzona2,blue,solid,1);

plotchart (SLIP,indzona3,blue,solid,1);
plotchart (R2S,indzona3,red,solid,1);
plotchart (MSLIP,indzona3,black,solid,1);
plotchart (MR2S,indzona3,black,solid,1);


INVESTIREOGGI.PNG
 

solospread

Forumer storico
Il motore di MINIMUM è la stringa:
if slip = Mslip and slip < slip[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10; else minimum = 0; endif;
if r2s = mr2s and r2s > r2s[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10 ; else minimum = 0; endif;
Variando l'1.2 vengono segnalati piu' o meno picchi. Io non l'ho testato per motivi di tempo, ma dato che ci sono un paio di giorni di vacanza e disponendo di uno storico decente
qualcuno lo può fare.
 

newmoon

Forumer attivo
c'è un piccolo errore sul listato, precisamente qui:

r2s = (PUNTATORESEGNAMINIMI/SEGNAMASSIMI)/100;

va corretto con *100
 

newmoon

Forumer attivo
Il motore di MINIMUM è la stringa:
if slip = Mslip and slip < slip[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10; else minimum = 0; endif;
if r2s = mr2s and r2s > r2s[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10 ; else minimum = 0; endif;
Variando l'1.2 vengono segnalati piu' o meno picchi. Io non l'ho testato per motivi di tempo, ma dato che ci sono un paio di giorni di vacanza e disponendo di uno storico decente
qualcuno lo può fare.

@ solospread
ho notato che i picchi del "MINIMUM" sono poco significativi se non controproducenti quando il valore del "puntatore segnaminimi" è sotto il valore di 50.
io condizionerei il MINIMUM in modo che segnali solo se il valore del puntatore segnaminimi è oltre il valore di 50.
ho fatto queste osservazioni sul forex.
 

solospread

Forumer storico
c'è un piccolo errore sul listato, precisamente qui:

r2s = (PUNTATORESEGNAMINIMI/SEGNAMASSIMI)/100;

va corretto con *100
Mi sono dimenticato di scrivere che questo insieme di indicatori che poi sfocerà in un vero e proprio T.S. è parametrato per il FIB.
Se lo usi sul forex dove le grandezze sono 10.000 volte inferiori non funziona correttamente , ma devi parametrarlo a quei valori.
Mentre il PUNTATORESEGNAMINIMI ed il SEGNAMASSIMI ( anzi se volete , potete plottarlo per vedere come lavora) funzionano su qualsiasi sottostante
il MINIMUM è vincolato ai parametri del listato. Sostituendo il * a / viene plottato il MINIMUM sul forex , ma SLIP perde la sua funzione ed infatti sul grafo lo vedi molto in basso
perchè ha una grandezza molto inferiore e non arriva mai a toccare MSLIP. Bisognerebbe aggiustarlo un pò per ottimizzarlo meglio.
 

solospread

Forumer storico
Basta sostituire le due stringhe aggiungendo il vincolo. Si può anche aumentare oltre 50, dipende da come si comporta il sottostante , ricordandosi che le virgole non sono ammesse si deve usare il punto (50.3 per esempio)

Codice:
if slip = Mslip and slip < slip[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1]and puntatoresegnaminimi > 50 then MINIMUM = 10; else MINIMUM = 0; endif;
if r2s = mr2s and r2s > r2s[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1]  and puntatoresegnaminimi > 50 then MINIMUM = 10; else MINIMUM = 0; endif;
@ solospread
ho notato che i picchi del "MINIMUM" sono poco significativi se non controproducenti quando il valore del "puntatore segnaminimi" è sotto il valore di 50.
io condizionerei il MINIMUM in modo che segnali solo se il valore del puntatore segnaminimi è oltre il valore di 50.
ho fatto queste osservazioni sul forex.
 

newmoon

Forumer attivo
Mi sono dimenticato di scrivere che questo insieme di indicatori che poi sfocerà in un vero e proprio T.S. è parametrato per il FIB.
Se lo usi sul forex dove le grandezze sono 10.000 volte inferiori non funziona correttamente , ma devi parametrarlo a quei valori.
Mentre il PUNTATORESEGNAMINIMI ed il SEGNAMASSIMI ( anzi se volete , potete plottarlo per vedere come lavora) funzionano su qualsiasi sottostante
il MINIMUM è vincolato ai parametri del listato. Sostituendo il * a / viene plottato il MINIMUM sul forex , ma SLIP perde la sua funzione ed infatti sul grafo lo vedi molto in basso
perchè ha una grandezza molto inferiore e non arriva mai a toccare MSLIP. Bisognerebbe aggiustarlo un pò per ottimizzarlo meglio.

ciao solospread
cosa bisogna scrivere sul listato per plottare il segnamassimi? ho provato ma mi dà errore
per SLIP, su quali parametri bisogna intervenire per ottimizzarlo sul forex?
 

solospread

Forumer storico
ciao solospread
cosa bisogna scrivere sul listato per plottare il segnamassimi? ho provato ma mi dà errore
per SLIP, su quali parametri bisogna intervenire per ottimizzarlo sul forex?

Ho riparametrato Slip per l'euro.
Ho plottato il SEGNAMASSIMI.
ti ho messo a fianco delle dichiarazioni delle variabili , le istruzioni per ottimizzarlo per altri frame.
Si usano le // per scrivere degli appunti nei listati. Il TS non legge tutto quello che si scrive dopo le //
Leggi gli appunti che ti ho messo e ottimizzalo variando i valori che ti ho indicato ( dato che oggi è una giornata uggiosa).
Se vuoi plottare qualsiasi altra cosa riportata nel TS devi solo cambiare la variabile nel plotchart.
Esempio: plotchart (SEGNAMASSIMI,indzona4,black,istogramma,1);
Al posto di segnamassimi puoi mettere qualsiasi altra variabile.
Ti metto il listato e Buona Pasquetta.
Codice:
// TS-PUNTATORE SEGNAMINIMI BY SOLOSPREAD  OTTIMIZZATO PER EURO 5 MINUTI

Var: miomov1,miomax1,miomin1,AA,BB,CC,DD,VV,ZZ,HH,PP,MINIMI,QQ,KK;
var: mio1,tank,please,SDE,SDO,UU,miorsi1,SLOW,segnamassimi,miorsi2;
var: indzona1,indzona2,indzona3,INDZONA4,SEGNAMASSIMI;
var: PUNTATORESEGNAMINIMI,SEGNAMINIMI,media1,media2;
Var: mioosc3(0);
Var: mioosc1(0);
Var: mioosc2(0);
var: RA,RB,RC,RD,RCRD,TANK1,PLEASE1;
var: miorsi1,mioMOV1,mioMAX1,mioMIN1,AA,BB,CC,DD;
var: tank,please,VV,ZZ,HH,PP;
var: aaa,bbb,ccc,ddd,MIOMOV2,MIOMAX2,MIOMIN2;
var: A1,B1,C1,D1,minsegnamassimi;
var: maxsegnamassimi,minpuntatoresegnaminimi;
var: TREND,STREET,med,MAXIM;
var: slip,R2S,Mslip,MR2s,minimum;

mioRSI1 = RSI(C,14,s); //RSI da usare suframe 5 minuti
mioRSI2 = RSI(C,21,s); // RSI da usare su frame giornaliero


mioMOV1 = MOV(mioRSI1,3,s);
mioMAX1 = HHV(mioRSI1,30);
mioMIN1 = LLV(mioRSI1,30);

miomax2 = HHV(H,30);
miomin2 = LLv(L,30);
miomov2 = MOV(C,3,s);

// BANDE DI SOLOSPREAD
AA = ((miomax1 - C)+ (miomov1)*miomax1)/H;
BB = ((miomin1 - C)+ (miomov1)*miomin1)/L;
CC = (miomax1- miomov1)+ (C * miomax1)/(C);
DD = (miomin1 - miomov1)+ ( C *miomin1)/(C);

//BANDE MODIFICATE CON RSI
AAA = ((mioMAX1 - mioRSI1) + (mioMOV1)*mioMAX2)/H;
BBB = ((mioMIN1 - mioRSI1) + (mioMOV1)*mioMIN2)/L;
CCC = (miomax1- miomov1)+ (mioRSI1 * miomax2)/C;
DDD = (miomin1 - miomov1)+ ( mioRSI1 *miomin2)/C;


a1 =aa+aaa;
b1=bb+bbb;
c1 =cc+ccc;
d1 = dd+ddd;

TANK = MOV(A1,3,s);
PLEASE = MOV(B1,3,s);

VV = (CC-AA);
ZZ = (BB-DD);
HH = VV-ZZ;
PP = tank - please;


media1 = MOV(C, 10, S);
media2 = MOV(C,50,s);


// BOLLINGER
mioosc2 = BBandLower (C, 20, 4, 0);
mioosc1 = BBandUpper (C, 20, 4, 0);
mioosc3 = BBandCenter (C, 20, 4, 0);



miomax1 = HHV(H,30);
miomin1 = LLV(L,30);
miomov1 = MOV(C,3,s);
RA = ((miomax1 - C)+ (miomov1)*miomax1)/H;
RB = ((miomin1 - C)+ (miomov1)*miomin1)/L;
RC = (miomax1- miomov1)+ (C * miomax1)/(C);
RCRD = (miomin1 - miomov1)+ ( C *miomin1)/(C);

tank1 = MOV(RA,3,s);
please1 = MOV(RB,3,s);


QQ = (RC-RA)/please1;
KK = (mioosc1-RB)/tank1;
med = (miomax2-miomin2)/2 + miomin2;

PUNTATORESEGNAMINIMI = (100/( miorsi1+(qq-kk))+48); // MOTORE
SEGNAMASSIMI = (a1/c1);

slip = (segnamassimi/puntatoresegnaminimi)* 2.5;  // VARIARE IL 2.5 PER OTTIMIZZARLO CON ALTRI FRAME
r2s =  (PUNTATORESEGNAMINIMI/SEGNAMASSIMI);
Mslip = LLV(slip,15);
Mr2s = HHV(r2s,15);

///////////////////////if slip = Mslip and slip < slip[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1] then minimum = 10; else minimum = 0; endif;
//////////////////////if r2s = mr2s and r2s > r2s[1] and (Mr2s -Mslip)> 1.2 and puntatoresegnaminimi < puntatoresegnaminimi[1]  then minimum = 10 ; else minimum = 0; endif;
  if slip >= R2s then maxim = 10; else maxim = 0; endif;
  if (R2S - slip) < 0.2 then maxim = 10; else maxim = 0; endif; // VARIARE LO 0.2 PER PTTIMIZZARLO CON ALTRI FRAME
indzona1 = createviewport(200,true,true);
indzona2 = createviewport(200,true,true);
indzona3 = createviewport(200,true,true);
INDZONA4 = createviewport(200,true,true);

DrawHLine (NEWOGG,indzona1,50,fuchsia, 1, 0);
plotchart (puntatoreSEGNAMINIMI,indzona1,black,solid,1);
plotchart (puntatoreSEGNAMINIMI,indzona1,black,istogramma,1);

plotchart (maxim,indzona2,blue,solid,1);

plotchart (SLIP,indzona3,blue,solid,1);
plotchart (R2S,indzona3,red,solid,1);
plotchart (MR2S,indzona3,black,solid,1);
plotchart (MSLIP,indzona3,black,solid,1);
plotchart (SEGNAMASSIMI,indzona4,black,solid,1);
plotchart (SEGNAMASSIMI,indzona4,black,istogramma,1);
 

Users who are viewing this thread

Alto