martes, 25 de julio de 2017
come appunto scriveva Michelangelo a volte succede che il ts pur effettuando una entrata giusta e poi producendo un gain virtuale positivo chiude poi l'operazione in perdita
l'esempio è l'ultima operazione short
venerdi 21 alle ore 12.45 il ts è entrato short a 10.06€..poi il titolo ha continuato a scendere toccando i minimi a 9.87 ( gain virtuale +1.54%) per poi risalire e chiudere stamane a 10.10€ ( -0.40%)
risolvere questa inefficienza non è semplice e si rischia di ottimizzare troppo il passato per poi probabilmente incasinare il futuro
comunque il detto..." mai trasformare una operazione in guadagno in una in perdita " sicuramente non è sbagliato ma tra il dire ed il fare vi è di mezzo il mare
una soluzione potrebbe essere quello di applicare un take profit sul 50% della esposizione diciamo quando è in gain del 1% ed adeguare lo sl per il rimanente
altra soluzione è monitorare costantemente l'andamento delle quotazioni ed ad esempio ieri si poteva notare che i prezzi dopo una certa ora han cominciato a rimanere sopra il 50% intraday che normalmente significa un indebolimento della tendenza short
sono soluzioni che rendono il sistema più reattivo e di conseguenza generano più operazioni ed + commissioni
è una scelta soggettiva...ogni investitore una volta a mercato ha differenti stati di emotivita..qualcuno preferisce l'uovo subito che la gallina domani( in questo caso niente gallina e uovo caduto a terra)
io oggi se riesco vi metto alcune soluzioni ed ognuno di voi decidera quale fa al suo caso
l'esempio è l'ultima operazione short
venerdi 21 alle ore 12.45 il ts è entrato short a 10.06€..poi il titolo ha continuato a scendere toccando i minimi a 9.87 ( gain virtuale +1.54%) per poi risalire e chiudere stamane a 10.10€ ( -0.40%)
risolvere questa inefficienza non è semplice e si rischia di ottimizzare troppo il passato per poi probabilmente incasinare il futuro
comunque il detto..." mai trasformare una operazione in guadagno in una in perdita " sicuramente non è sbagliato ma tra il dire ed il fare vi è di mezzo il mare
una soluzione potrebbe essere quello di applicare un take profit sul 50% della esposizione diciamo quando è in gain del 1% ed adeguare lo sl per il rimanente
altra soluzione è monitorare costantemente l'andamento delle quotazioni ed ad esempio ieri si poteva notare che i prezzi dopo una certa ora han cominciato a rimanere sopra il 50% intraday che normalmente significa un indebolimento della tendenza short
sono soluzioni che rendono il sistema più reattivo e di conseguenza generano più operazioni ed + commissioni
è una scelta soggettiva...ogni investitore una volta a mercato ha differenti stati di emotivita..qualcuno preferisce l'uovo subito che la gallina domani( in questo caso niente gallina e uovo caduto a terra)
io oggi se riesco vi metto alcune soluzioni ed ognuno di voi decidera quale fa al suo caso
lunes, 24 de julio de 2017
la situazione dei due ts su Fiat
quello openmese è flat perchè ha raggiunto il target del 7% e perciò sino ad agosto rimane in attesa
quello 50% ( modificato ) è short da 10.06€ di venerdi
esce oggi se si genera un close a 15 minuti superiore al 50% di venerdi ( 10.115€) oppure se per un movimento improvviso al rialzo scatta lo sl di protezione a 10.36€
quello openmese è flat perchè ha raggiunto il target del 7% e perciò sino ad agosto rimane in attesa
quello 50% ( modificato ) è short da 10.06€ di venerdi
esce oggi se si genera un close a 15 minuti superiore al 50% di venerdi ( 10.115€) oppure se per un movimento improvviso al rialzo scatta lo sl di protezione a 10.36€
jueves, 20 de julio de 2017
nel ts ho inserito solo a livello visivo un conteggio delle candele positive/negative
praticamente gli ho detto:
contami le candele( a15 minuti) che ...quando il titolo è long... chiudono sopra il prezzo di entrata e quelle che chiudono sotto il prezzo di entrata
idem per lo short
il risultato è:
20573 candele long positive
9996 candele long negative
17586 candele short positive
9020 candele short negative
dividendo il tutto poi per 34 candele giornaliere ad una media di 22 giorni borsistici mensili il risultato all'incirca:
il ts rimane a mercato negli ultimi 166 mesi...84 mesi..e di questi i 2/3 sono dalla parte giusta mentre 1/3 è dalla parte sbagliata
è solo un'informazione che può tornare utile per il fattore emotivo
praticamente gli ho detto:
contami le candele( a15 minuti) che ...quando il titolo è long... chiudono sopra il prezzo di entrata e quelle che chiudono sotto il prezzo di entrata
idem per lo short
il risultato è:
20573 candele long positive
9996 candele long negative
17586 candele short positive
9020 candele short negative
dividendo il tutto poi per 34 candele giornaliere ad una media di 22 giorni borsistici mensili il risultato all'incirca:
il ts rimane a mercato negli ultimi 166 mesi...84 mesi..e di questi i 2/3 sono dalla parte giusta mentre 1/3 è dalla parte sbagliata
è solo un'informazione che può tornare utile per il fattore emotivo
questo è il codice
nelle stringhe long e short sono attive solo 4 condizioni
poi come uscite la solita collegata al 50% del giorno precedente ed altre due...una migliora pochissimo ma non da fastidio..l'altra più importante( fa rimanere meno a mercato ed aumenta la resa ) che scatta solo in determinate situazioni ma dopo 34 candele col ts attivo
//__________________________________________Tecnica 50%________________________// 18 luglio 2017
Var: miomax5g,miomin5g,miomax11g,miomin11g,miomax22g,miomin22g,rangemensile5g,rangemensile11g,rangemensile22g;
Var: input1,input2;
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvmed;
Var: wmax,wmin,wmed,DMAX,DMIN,vp1;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,contanuovimassimi,contanuoviminimi,rapportosegnalepositivodown;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),condizioneA,condizioneB,ivp;
Var: condizionenolong,condizionenoshort;
Var: contalongsi,contalongno,contashortsi,contashortno,vp2,vp3;
Var: miomax5g;
miomax5g = HHV (H, 187);
Var: miomin5g;
miomin5g = LLV (L, 187);
Var: miomax11g;
miomax11g = HHV (H, 374);
Var: miomin11g;
miomin11g = LLV (L, 374);
Var: miomax22g;
miomax22g = HHV (H, 748);
Var: miomin22g;
miomin22g = LLV (L, 748);
rangemensile5g=(((miomax5g-miomin5g)/miomin5g)*100);
rangemensile11g=(((miomax11g-miomin11g)/miomin11g)*100);
rangemensile22g=(((miomax22g-miomin22g)/miomin22g)*100);
if rangemensile5g<10 and miomax5g>miomax5g[136] and miomin5g=miomin5g[136] then condizionenoshort=1;else condizionenoshort=0;endif;
if rangemensile5g<10 and miomax5g=miomax5g[136] and miomin5g<miomin5g[136] then condizionenolong=1;else condizionenolong=0;endif;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvmed= miomin+(50*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
PlotChart(WMED,0, gray, dot, 1);
Plotchart(dvmed,0,blue,solid,1);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
if positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
/////////////////////////////////// Gain /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
if positiondir=1 and gain>0 then contalongsi=contalongsi+1;endif;
if positiondir=1 and gain<0 then contalongno=contalongno+1;endif;
if positiondir=-1 and gain>0 then contashortsi=contashortsi+1;endif;
if positiondir=-1 and gain<0 then contashortno=contashortno+1;endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if c>highd(1)
and GetNumOpEnterLongToday=0
and c>input1 //migliora un 100% a 14 anni
and condizioneB=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 //ininfluente a 14 anni
//and condizionenolong=0 //migliora un 18% a 14 anni
then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=1 and gain>2 and rangemensile22g<12 then exitlong(nextbar,atopen);endif;// non da fastidio
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if c<lowd(1)
and GetNumOpEntershortToday=0
and c<input2 // migliora un 100% a 14 anni
and condizioneA=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 // ininfluente a 14 anni
//and condizionenoshort=0 //migliora un 18% a 14 anni
then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=-1 and gain>2 and rangemensile22g<12 then exitshort(nextbar,atopen);endif;//non da fastidio
vp1 = Createviewport(250);
Plotchart(Max_Gain_perc,vp1,red,solid,2);
Plotchart(Gain,vp1,green,solid,2);
vp2 = Createviewport(250);
Plotchart(contalongno,vp2,red,solid,2);
Plotchart(contalongsi,vp2,green,solid,2);
vp3 = Createviewport(250);
Plotchart(contashortno,vp3,red,solid,2);
Plotchart(contashortsi,vp3,green,solid,2);
nelle stringhe long e short sono attive solo 4 condizioni
poi come uscite la solita collegata al 50% del giorno precedente ed altre due...una migliora pochissimo ma non da fastidio..l'altra più importante( fa rimanere meno a mercato ed aumenta la resa ) che scatta solo in determinate situazioni ma dopo 34 candele col ts attivo
//__________________________________________Tecnica 50%________________________// 18 luglio 2017
Var: miomax5g,miomin5g,miomax11g,miomin11g,miomax22g,miomin22g,rangemensile5g,rangemensile11g,rangemensile22g;
Var: input1,input2;
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvmed;
Var: wmax,wmin,wmed,DMAX,DMIN,vp1;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,contanuovimassimi,contanuoviminimi,rapportosegnalepositivodown;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),condizioneA,condizioneB,ivp;
Var: condizionenolong,condizionenoshort;
Var: contalongsi,contalongno,contashortsi,contashortno,vp2,vp3;
Var: miomax5g;
miomax5g = HHV (H, 187);
Var: miomin5g;
miomin5g = LLV (L, 187);
Var: miomax11g;
miomax11g = HHV (H, 374);
Var: miomin11g;
miomin11g = LLV (L, 374);
Var: miomax22g;
miomax22g = HHV (H, 748);
Var: miomin22g;
miomin22g = LLV (L, 748);
rangemensile5g=(((miomax5g-miomin5g)/miomin5g)*100);
rangemensile11g=(((miomax11g-miomin11g)/miomin11g)*100);
rangemensile22g=(((miomax22g-miomin22g)/miomin22g)*100);
if rangemensile5g<10 and miomax5g>miomax5g[136] and miomin5g=miomin5g[136] then condizionenoshort=1;else condizionenoshort=0;endif;
if rangemensile5g<10 and miomax5g=miomax5g[136] and miomin5g<miomin5g[136] then condizionenolong=1;else condizionenolong=0;endif;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvmed= miomin+(50*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
PlotChart(WMED,0, gray, dot, 1);
Plotchart(dvmed,0,blue,solid,1);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
if positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
/////////////////////////////////// Gain /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
if positiondir=1 and gain>0 then contalongsi=contalongsi+1;endif;
if positiondir=1 and gain<0 then contalongno=contalongno+1;endif;
if positiondir=-1 and gain>0 then contashortsi=contashortsi+1;endif;
if positiondir=-1 and gain<0 then contashortno=contashortno+1;endif;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
//////////////////////////////////////////____________LONG___________________/////////////////////////////////////////////////////////
if c>highd(1)
and GetNumOpEnterLongToday=0
and c>input1 //migliora un 100% a 14 anni
and condizioneB=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 //ininfluente a 14 anni
//and condizionenolong=0 //migliora un 18% a 14 anni
then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=1 and gain>2 and rangemensile22g<12 then exitlong(nextbar,atopen);endif;// non da fastidio
//////////////////////////////////////////____________SHORT___________________/////////////////////////////////////////////////////////
if c<lowd(1)
and GetNumOpEntershortToday=0
and c<input2 // migliora un 100% a 14 anni
and condizioneA=0 // migliora un 25% a 14 anni
//and rangemensile22g>8 // ininfluente a 14 anni
//and condizionenoshort=0 //migliora un 18% a 14 anni
then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // migliora un 80% a 14 anni...meno tempo a mercato
if positiondir=-1 and gain>2 and rangemensile22g<12 then exitshort(nextbar,atopen);endif;//non da fastidio
vp1 = Createviewport(250);
Plotchart(Max_Gain_perc,vp1,red,solid,2);
Plotchart(Gain,vp1,green,solid,2);
vp2 = Createviewport(250);
Plotchart(contalongno,vp2,red,solid,2);
Plotchart(contalongsi,vp2,green,solid,2);
vp3 = Createviewport(250);
Plotchart(contashortno,vp3,red,solid,2);
Plotchart(contashortsi,vp3,green,solid,2);
martes, 18 de julio de 2017
vediamo in dettaglio la situazione su Fiat
il titolo negli ultimi giorni ha preso un pò di forza rompendo l'area di resistenza 10.06€ ma la volumetria ancora è piuttosto debole
i massimi sono stati 10.54€...il minimo degli ultimi 5 giorni 9.70€...quello degli ultimi 11 giorni 9.38€..quello dell'ultimo mese borsistico 9.21€
questo movimento rialzista ha permesso per il ts openmese andare al target del 7%
anche il ts 50% di conseguenza ha generato una buona operazione long
il titolo negli ultimi giorni ha preso un pò di forza rompendo l'area di resistenza 10.06€ ma la volumetria ancora è piuttosto debole
i massimi sono stati 10.54€...il minimo degli ultimi 5 giorni 9.70€...quello degli ultimi 11 giorni 9.38€..quello dell'ultimo mese borsistico 9.21€
questo movimento rialzista ha permesso per il ts openmese andare al target del 7%
anche il ts 50% di conseguenza ha generato una buona operazione long
martes, 11 de julio de 2017
10.06€ è il massimo degli ultimi 22 giorni ed il range mensile è ancora debole
meglio adeguare lo stoploss oppure monetizzare la posizione
io ho chiuso tutto perchè stacco completamente per alcuni giorni...niente tecnologie..solo boschi ed aria freesca
ci leggiamo la prossima settimana
buon lavoro a tutti
meglio adeguare lo stoploss oppure monetizzare la posizione
io ho chiuso tutto perchè stacco completamente per alcuni giorni...niente tecnologie..solo boschi ed aria freesca
ci leggiamo la prossima settimana
buon lavoro a tutti
viernes, 7 de julio de 2017
jueves, 6 de julio de 2017
ciao Michelangelo...la stringa che aumenta le operazioni è quella che dicevo mi piace meno...rende più reattivo il ts ed aumenta la resa ma non di molto...la lascio per ora ma la devo studiare meglio..è quella che conteggia massimi e minimi itraday e funziona da filtro se l'operazione si indebolisce
qui la sorgente:
//__________________________________________Tecnica 50%________________________//
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvsup,dvmed,dvinf,contavaliditasegnaleup,contavaliditasegnaledown;
Var: wmax,wmin,wmed,DMAX,DMIN,rrange,mediacinquanta,vp1,vp2,vp3,vp4,vp5;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,rapportosegnalepositivodown,contanuovimassimi,contanuoviminimi;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),input1,input2,condizioneA,condizioneB,ivp;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvsup= miomin+(261.8*(miomax-miomin))/100;
dvmed= miomin+(50*(miomax-miomin))/100;
dvinf= miomax-(261.8*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
rrange=(((highd(1)-lowd(1))/lowd(1))*100);
PlotChart(WMED,0, gray, dot, 1);
PlotChart(mediacinquanta,0, yellow, solid, 2);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
if positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
mediacinquanta=(dvmed+wmed)/2;
/////////////////////////////////// ACTUAL /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
{Actual}Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
{Actual}Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
{Actual}Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
///////////////////////////////////////////////////////////////////////////////////////////////////
if c<dvsup and c>highd(1) and GetNumOpEnterLongToday=0 and c>input1 and condizioneB=0 then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // valutare utilita
if c>dvinf and c<lowd(1) and GetNumOpEntershortToday=0 and c<input2 and condizioneA=0 then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // valutare utilita
if positiondir=1 and Max_Gain_perc >4 then ModifyStopLoss(INPERC,0.50);endif;
if positiondir=-1 and Max_Gain_perc >4 then ModifyStopLoss(INPERC,0.50);endif;
plotchart(dvmed,0,blue,solid,1);
vp1 = Createviewport(250);
Plotchart(rapportosegnalepositivoup,vp1,green,solid,2);
Plotchart(rapportosegnalepositivodown,vp1,red,solid,2);
vp2 = Createviewport(150);
Plotchart(contalg,vp2,green,solid,2);
Plotchart(contash,vp2,red,solid,2);
Plotchart(contaflat,vp2,gray,solid,1);
vp3 = Createviewport(150);
Plotchart(contanuovimassimi,vp3,green,solid,2);
Plotchart(contanuoviminimi,vp3,red,solid,2);
vp4 = Createviewport(150);
Plotchart(gain,vp4,green,solid,2);
Plotchart(Max_Gain_perc,vp4,red,solid,1);
vp5 = Createviewport(150);
Plotchart(condizioneA,vp5,green,solid,2);
Plotchart(condizioneB,vp5,red,solid,2);
qui la sorgente:
//__________________________________________Tecnica 50%________________________//
Var: newday(false), mioopen(0), miomin(0), miomax(0), mioclose(0),dvsup,dvmed,dvinf,contavaliditasegnaleup,contavaliditasegnaledown;
Var: wmax,wmin,wmed,DMAX,DMIN,rrange,mediacinquanta,vp1,vp2,vp3,vp4,vp5;
Var: fflat,lg,sh,contalg,contash,contaflat,rapportosegnalepositivoup,rapportosegnalepositivodown,contanuovimassimi,contanuoviminimi;
Var: Pr_Ingr(0), Max_Gain(0), Max_Gain_perc(0), Gain(0),input1,input2,condizioneA,condizioneB,ivp;
if IsFirstBarDay then input1=H;endif;
if IsFirstBarDay then input2=L;endif;
plotchart(input1, ivp, green, solid, 2);
plotchart(input2, ivp, red, solid, 2);
newday=GetValues(days,1,mioopen,miomin,miomax,mioclose);
dvsup= miomin+(261.8*(miomax-miomin))/100;
dvmed= miomin+(50*(miomax-miomin))/100;
dvinf= miomax-(261.8*(miomax-miomin))/100;
if isfirstbarday then
WMAX=H;
WMIN=L;
else
WMAX=iif(H>=WMAX[1],H,WMAX[1]);
WMIN=iif(L<=WMIN[1],L,WMIN[1]);
WMED=wmax-(wmax-wmin)*0.5;
endif;
rrange=(((highd(1)-lowd(1))/lowd(1))*100);
PlotChart(WMED,0, gray, dot, 1);
PlotChart(mediacinquanta,0, yellow, solid, 2);
DrawText(NEWOGG,0 , D,wmed , "50% intraday",wmed , red, 12, 2+2,Alright);
DrawText(NEWOGG,0 , D,dvmed , "50% ieri",dvmed , white, 14, 3+2,Alleft);
//////////////////////___CONTA_Situazione___///////////////////////////////////////////////
if positiondir=0 then fflat=1;endif; if positiondir<>0 then fflat=0;contaflat=0;endif; if fflat=1 and fflat[1]=1 then contaflat=(contaflat[1]+1);endif;
if positiondir=1 then lg=1;endif; if positiondir<>1 then lg=0;contalg=0;endif; if lg=1 and lg[1]=1 then contalg=(contalg[1]+1);endif;
if positiondir=-1 then sh=1;endif; if positiondir<>-1 then sh=0;contash=0;endif; if sh=1 and sh[1]=1 then contash=(contash[1]+1);endif;
if positiondir=1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if positiondir=1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmin<wmin[1] then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=-1 and wmax>wmax[1] then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=1 then contanuoviminimi=contanuoviminimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuovimassimi=contanuovimassimi+1;endif;
if isfirstbarday and positiondir=-1 then contanuoviminimi=contanuoviminimi+1;endif;
if positiondir=0 then contanuovimassimi=0;endif;
if positiondir=0 then contanuoviminimi=0;endif;
rapportosegnalepositivoup=op(contanuovimassimi,contanuoviminimi,divis);
rapportosegnalepositivodown=op(contanuoviminimi,contanuovimassimi,divis);
mediacinquanta=(dvmed+wmed)/2;
/////////////////////////////////// ACTUAL /////////////////////////////////////////////////////
if Positionvalue<>0 then
Pr_Ingr = positionValue;
if Positiondir=1 then
if (C>Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Max_Gain-Pr_ingr)*100)/Pr_Ingr;
endif;
{Actual}Gain = ((C-Pr_ingr)*100)/Pr_Ingr;
else
if (C<Max_Gain) or (Max_Gain=0) then
Max_Gain = C;
Max_Gain_perc = ((Pr_ingr-Max_Gain)*100)/Pr_Ingr;
endif;
{Actual}Gain = ((Pr_ingr-C)*100)/Pr_Ingr;
endif;
else
Pr_ingr = 0;
Max_Gain = 0;
{Actual}Gain = 0;
endif;
/////////////////////////////////////////////////////////////////////////////
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=1 then condizioneA=1;else condizioneA=0;endif;
if (LastTradeClosedPerc > 3.00) and contaflat<90 and lastopclosed=3 then condizioneB=1;else condizioneB=0;endif;
////////////////////////////////////////////////////////////////////////////////////////////////
installstoploss(inperc,3.00,"SL", STARTNEXTBAR);
plotchartNoZero(getstoploss, 0, red, solid, 2);
DrawText(NEWOGG,0 , D,getstoploss , "sl",getstoploss , red, 25, 1+4,Alright);
///////////////////////////////////////////////////////////////////////////////////////////////////
if c<dvsup and c>highd(1) and GetNumOpEnterLongToday=0 and c>input1 and condizioneB=0 then enterlong( nextbar,atopen);endif;
if positiondir=1 and c<dvmed then exitlong(nextbar,atopen);endif;
if positiondir=1 and contalg>34 and rapportosegnalepositivoup<8 then exitlong(nextbar,atopen);endif; // valutare utilita
if c>dvinf and c<lowd(1) and GetNumOpEntershortToday=0 and c<input2 and condizioneA=0 then entershort( nextbar,atopen);endif;
if positiondir=-1 and c>dvmed then exitshort(nextbar,atopen);endif;
if positiondir=-1 and contash>34 and rapportosegnalepositivodown<8 then exitshort(nextbar,atopen);endif; // valutare utilita
if positiondir=1 and Max_Gain_perc >4 then ModifyStopLoss(INPERC,0.50);endif;
if positiondir=-1 and Max_Gain_perc >4 then ModifyStopLoss(INPERC,0.50);endif;
plotchart(dvmed,0,blue,solid,1);
vp1 = Createviewport(250);
Plotchart(rapportosegnalepositivoup,vp1,green,solid,2);
Plotchart(rapportosegnalepositivodown,vp1,red,solid,2);
vp2 = Createviewport(150);
Plotchart(contalg,vp2,green,solid,2);
Plotchart(contash,vp2,red,solid,2);
Plotchart(contaflat,vp2,gray,solid,1);
vp3 = Createviewport(150);
Plotchart(contanuovimassimi,vp3,green,solid,2);
Plotchart(contanuoviminimi,vp3,red,solid,2);
vp4 = Createviewport(150);
Plotchart(gain,vp4,green,solid,2);
Plotchart(Max_Gain_perc,vp4,red,solid,1);
vp5 = Createviewport(150);
Plotchart(condizioneA,vp5,green,solid,2);
Plotchart(condizioneB,vp5,red,solid,2);
ho aggiunto un ulteriore filtro...il ts entralong sopra i massimi ed entrashort sotto i minimi del giorno precedente...ora controlla anche la prima candela a 15 minuti...tiene in memoria i suoi massimi e minimi ed applica lo stesso sistema...entralong solo se li supera al rialzo e short se li perfora al ribasso...avevo notato che a volte in apertura il titolo rompeva massimi e minimi del giorno precedente ma poi il segnale rientrava
altra condizione...se si completa una operazione long con una resa maggiore del 3% il ts non rientra short per 90 candele a 15 minuti(circa 3 giorni scarsi )..idem per lo short
il ragionamento logico è che se si genera un gain di oltre il 3% si presuppone ci sia una tendenza in atto abbastanza ben delineata e di conseguenza prima di entrare nella direzione opposta meglio aspettare un certo periodo
altra condizione di money management è il conteggio di nuovi massimi e minimi una volta che il sistema è a mercato...ad esempio in una operazione long se continuano a generarsi nuovi massimi il segnale è robusto ma se invece cominciano a formarsi nuovi minimi il segnale si indebolisce
perciò una volta che ho il conteggio dei nuovi massimi e nuovi minimi li divido ed ottengo un parametro che uso come livello di uscita..questa soluzione è quella che mi piace meno perchè potrebbe far parte di ottimizzazioni che normalmente a lungo andare nei ts creano problemi
altra condizione logica introdotta...dopo un massimo gain generato del 4% ancora con la posizione aperta diminuisco lo stoploss dal 3% allo 0.50%
con queste soluzioni si abbassano le operazioni negative...si alza la resa ma sopratutto il ts è più reattivo e sta meno a mercato
altra condizione...se si completa una operazione long con una resa maggiore del 3% il ts non rientra short per 90 candele a 15 minuti(circa 3 giorni scarsi )..idem per lo short
il ragionamento logico è che se si genera un gain di oltre il 3% si presuppone ci sia una tendenza in atto abbastanza ben delineata e di conseguenza prima di entrare nella direzione opposta meglio aspettare un certo periodo
altra condizione di money management è il conteggio di nuovi massimi e minimi una volta che il sistema è a mercato...ad esempio in una operazione long se continuano a generarsi nuovi massimi il segnale è robusto ma se invece cominciano a formarsi nuovi minimi il segnale si indebolisce
perciò una volta che ho il conteggio dei nuovi massimi e nuovi minimi li divido ed ottengo un parametro che uso come livello di uscita..questa soluzione è quella che mi piace meno perchè potrebbe far parte di ottimizzazioni che normalmente a lungo andare nei ts creano problemi
altra condizione logica introdotta...dopo un massimo gain generato del 4% ancora con la posizione aperta diminuisco lo stoploss dal 3% allo 0.50%
con queste soluzioni si abbassano le operazioni negative...si alza la resa ma sopratutto il ts è più reattivo e sta meno a mercato
martes, 4 de julio de 2017
la situazione del long con il ts 50%
il segnale è scattato ieri a 9.41€ dopo il superamento dei massimi del giorno borsistico precedente
oggi il sistema esce dal long se si verifica un close a 15 min. sotto il 50% di ieri (9.5375€)..praticamente il 50% del giorno precedente funziona da trailing profit
nella giornata di ieri si son generati ( a 15 minuti ) 9 nuovi massimi su un totale di 30 candele a mercato del long
il segnale è scattato ieri a 9.41€ dopo il superamento dei massimi del giorno borsistico precedente
oggi il sistema esce dal long se si verifica un close a 15 min. sotto il 50% di ieri (9.5375€)..praticamente il 50% del giorno precedente funziona da trailing profit
nella giornata di ieri si son generati ( a 15 minuti ) 9 nuovi massimi su un totale di 30 candele a mercato del long
Suscribirse a:
Entradas (Atom)
oggi scadenze tecniche..le ultime di settembre risolte a 13.60€ vediamo alle 1200
-
un caro collega mi fa presente che l'impulsiva down del 17 settembre potrebbe essere differente come valori da quelli postati sulla can...
-
ora è presente sul giornaliero un impulso ribassista...quello del 17 settembre..supportato da un aumento volumetrico di circa 7 volte la me...
-
ho deciso di utilizzare la statistica dello sviluppo giornaliero tarato sul range medio mensile per determinare la tendenza del titolo...so...