TS su indice FTSE MIB

il trys presentato è solo una prova.........è inutile dire.....
manca questo ....manca quello..........
ciò che volevo testare è la validità del motore del sistema........
provando qualcosa di nuovo ...ma anche di molto semplice ...
poi n'altra cosa.......ho sbagliato a menzionare la vola storica nel post iniziale.........non c'entra niente........infatti lo correggo...
adesso cerco di spiegare il sys .....con dei commenti tra le righe

Codice:
Var:prevH,prevL ,prevC,prevR,zona;
var:pp,ap,vola,dir,forzavol,fattore,EL,ES;
[COLOR=Red][I]//calcolo i valori precedenti delle barre DAY del Max, Min, Close[/I][/COLOR]
prevH=ref(EOD.H,1);
prevL=ref(EOD.L,1);
prevC=ref(EOD.C,1);

[COLOR=Red]// calcolo del rapporto tra l'ampiezza delle oscillazioni (max e min) a 3 mesi (64) e l'ampiezza settimanale (5) sempre dei valori DAY sopracitati....il tutto moltiplicato x 3.......cioè una costante che può cambiare ovviamente....
[/COLOR]
fattore=op( op(op(HHV(prevH,64),LLV(prevL,64),divis),op(HHV(prevH,5),LLV(prevL,5),divis),divis),constval(3),mul);

[COLOR=Red]//valore odierno dell'open[/COLOR]
ap=EOD.O;
PP=prevC;

[COLOR=Red]//calcolo della volatilità con l'atr del close precedente[/COLOR]
vola=atr(prevC,5);

[COLOR=Red]// il supertrend viene usato come trailing stop[/COLOR]
dir=supertrend(c,10,4);

[COLOR=Red]//forzavol= rapporto tra la "vola" sopra calcolata e la sua media a 20 gg[/COLOR]
forzavol=op(vola,mov(vola,20,s),divis);
RoundTickMin(true);

[COLOR=Red]//EL ed ES rappresentano i valori soglia di ingresso long/short determinati sommando all'open della giornata il "fattore" moltiplicato per la "vola" sopra calcolata[/COLOR]

EL=ap+(fattore*vola);
ES=ap-(fattore*vola);

installtakeprofit(inperc,9);
installstoploss(inperc,1.5,"loss");

[COLOR=Red]//regole di ingresso long / short[/COLOR]

if positiondir <>1 and crossover(c,EL) and forzavol>0.9
then enterlong(bar,atclose);endif;
if positiondir=1 and c<dir then modifystoploss(inperc,1.5);endif;

if positiondir <>-1 and crossunder(c,ES) and forzavol>0.9
then entershort(bar,atclose); endif;
if positiondir=-1 and c>dir then modifystoploss(inperc,1.5);endif;

//zona=createviewport(200, true,true);
PlotChart( dir,0,gray,solid,2 );
PlotChart( EL,0,black,solid,1 );
PlotChart( ES,0,black,solid,1 );
se proprio dovete fare delle critiche........almeno fatelo nel merito....per l'algoritmo........e magari .....con suggerimenti costruttivi.....:rolleyes::)
 
Ultima modifica:
il trys presentato è solo una prova.........è inutile dire.....
manca questo ....manca quello..........
ciò che volevo testare è la validità del motore del sistema........
provando qualcosa di nuovo ...ma anche di molto semplice ...
poi n'altra cosa.......ho sbagliato a menzionare la vola storica nel post iniziale.........non c'entra niente........infatti lo correggo...
adesso cerco di spiegare il sys .....con dei commenti tra le righe

Codice:
Var:prevH,prevL ,prevC,prevR,zona;
var:pp,ap,vola,dir,forzavol,fattore,EL,ES;
[COLOR=Red][I]//calcolo i valori precedenti delle barre DAY del Max, Min, Close[/I][/COLOR]
prevH=ref(EOD.H,1);
prevL=ref(EOD.L,1);
prevC=ref(EOD.C,1);

[COLOR=Red]// calcolo del rapporto tra l'ampiezza delle oscillazioni (max e min) a 3 mesi (64) e l'ampiezza settimanale (5) sempre dei valori DAY sopracitati....il tutto moltiplicato x 3.......cioè una costante che può cambiare ovviamente....
[/COLOR]
fattore=op( op(op(HHV(prevH,64),LLV(prevL,64),divis),op(HHV(prevH,5),LLV(prevL,5),divis),divis),constval(3),mul);

[COLOR=Red]//valore odierno dell'open[/COLOR]
ap=EOD.O;
PP=prevC;

[COLOR=Red]//calcolo della volatilità con l'atr del close precedente[/COLOR]
vola=atr(prevC,5);

[COLOR=Red]// il supertrend viene usato come trailing stop[/COLOR]
dir=supertrend(c,10,4);

[COLOR=Red]//forzavol= rapporto tra la "vola" sopra calcolata e la sua media a 20 gg[/COLOR]
forzavol=op(vola,mov(vola,20,s),divis);
RoundTickMin(true);

[COLOR=Red]//EL ed ES rappresentano i valori soglia di ingresso long/short determinati sommando all'open della giornata il "fattore" moltiplicato per la "vola" sopra calcolata[/COLOR]

EL=ap+(fattore*vola);
ES=ap-(fattore*vola);

installtakeprofit(inperc,9);
installstoploss(inperc,1.5,"loss");

[COLOR=Red]//regole di ingresso long / short[/COLOR]

if positiondir <>1 and crossover(c,EL) and forzavol>0.9
then enterlong(bar,atclose);endif;
if positiondir=1 and c<dir then modifystoploss(inperc,1.5);endif;

if positiondir <>-1 and crossunder(c,ES) and forzavol>0.9
then entershort(bar,atclose); endif;
if positiondir=-1 and c>dir then modifystoploss(inperc,1.5);endif;

//zona=createviewport(200, true,true);
PlotChart( dir,0,gray,solid,2 );
PlotChart( EL,0,black,solid,1 );
PlotChart( ES,0,black,solid,1 );
se proprio dovete fare delle critiche........almeno fatelo nel merito....per l'algoritmo........e magari .....con suggerimenti costruttivi.....:rolleyes::)

Gilato: l'atr forse è calcolato in maniera sbagliata, plotta i due indicatori e vedi se sono uguali. Inoltre il supertrend non viene usato come trailing stop.
Il motore non si capisce qual'è. La costruttività c'è stata, ti abbiamo detto di togliere il fitting e plottare una equity così ti rendi conto del motore.
Per capire la validità di un motore io scrivo il motore senza filtri, senza stop e senza gestione della posizione. Se l'equity parte dal basso e sale verso l'alto su più strumenti allora è buono:up:
 
Ho voluto provare un trys basato sulla volatilità i cui parametri per gli ingressi il sistema se li calcola da solo in base ad una particolare misura della volatilità.
Quindi non c'è nulla di ottimizzato.

il trys presentato è solo una prova.........è inutile dire.....
manca questo ....manca quello..........
ciò che volevo testare è la validità del motore del sistema........
provando qualcosa di nuovo ...ma anche di molto semplice ...
poi n'altra cosa.......ho sbagliato a menzionare la vola storica nel post iniziale.........non c'entra niente........infatti lo correggo...

se proprio dovete fare delle critiche........almeno fatelo nel merito....per l'algoritmo........e magari .....con suggerimenti costruttivi....
.:rolleyes::)

a Gila'!!! dato l'incipit e metaforicamente parlando... e' come se Rossi-Focardi dopo averci abbacinato sulla loro fusione fredda ci aprono il cubo e noi si scorge all'interno due pile DURACELL... :D:D:D
[in questo caso, a parte la costruzione concettuale del trsys, c'erano una marea di parametri occulti; non esterni ma interni]

inoltre a me sembra che Ender fosse stato il + chiaro (e propositivo) di tutti...
ti ha dato prima e dopo ottime indicazioni...
l'ha fatto pure in maniera molto gentile... :bow:
Skarso lo e' stato pure lui... ma a suo modo... ;)

io non entro nel merito dell'algoritmo e non sono in grado di aiutarti perche' a mio avviso sbattersi continuamente a codificare (con il conseguente pericolo di overfittare) serve a poco...
 
Ultima modifica:
ciò che volevo testare è la validità del motore del sistema........
provando qualcosa di nuovo ...


io non vedo “qualcosa di nuovo” ma la solita minestra di “indicatori” . . .
i cosiddetti “indicatori” ( che secondo me non indicano proprio nulla ), sebbene siano divertenti e democratici, hanno almeno 2 grossi difetti :
operano sui prezzi, i quali non essendo stazionari portano a risultati come minimo incoerenti
non riescono a cogliere eventuali relazioni presenti nei dati, il cui sfruttamento è l’ unica possibilità di poter fare previsioni oltre il 50%
 
Ultima modifica:
Allora resettiamo tutto..........e ripartiamo da bomba........
la prima versione di CATONE era questa che di seguito illustro.....poi non mi piaceva la curva equity e ho fatto numerose modifiche ...quella che ho postato in precedenza è sola una delle tante versioni.......

PREMESSA: cerco un sistema che mi dia dei livelli di ingresso giornoxgiorno......senza far ricorso ai soliti oscillatori dell'AT

quindi ....ho misurato la volatilità in modo semplice.........calcolo l'ampiezza Min/Max a 30 giorni del close che deve essere ovviamente quello DAY precedente...altrimenti ...visto che gira in intraday sul 15min.......cambierebbe ogni attimo.......
poi aggiungo e sottraggo il valore ottenuto all'open del giorno ed ottengo dei livelli di ingresso long/short per il giorno stesso...........

prima domanda: ma c'è qualcosa che nn va perchè i livelli non sono fissi per tutto il giorno..........ma variano.........dove sta l'errore?

poi metto un unico filtro........la volatilità calcolata come ATR(c,5) deve essere almeno il 90% della sua SMA20........cioè molto vicina alla sua media.....
TUTTO QUI'

questo è il report e la equity del trys.........
visto che il profit era decente.........ho provato tante altre modifiche.......

allora ripartiamo da quì........e vediamo se INSIEME si riesce a produrre qualcosa di BUONO........
Spero di essere stato chiaro.......mannaggia la fretta!!!!!!!!

Codice:
Var:prevC,PREVh,PREVl,amp,zona,ap,vola,forzavol,EL,ES;

prevC=ref(EOD.C,1);
prevH=ref(EOD.H,1);
prevL=ref(EOD.L,1);

amp=op(HHV(prevc,30),LLV(prevc,30),sub);
ap=EOD.O;
vola=atr(close,5);
forzavol=op(vola,mov(vola,20,s),divis);
RoundTickMin(true);
EL=ap+amp;
ES=ap-amp;

if positiondir <>1 and crossover(c,EL) and forzavol>0.9
then enterlong(nextbar,atopen);endif;

if positiondir <>-1 and crossunder(c,ES) and forzavol>0.9
then entershort(nextbar,atopen); endif;

zona=createviewport(200, true,true);
PlotChart( EL,0,black,solid,1 );
PlotChart( ES,0,black,solid,1 );
PlotChart( amp,zona,black,solid,1 );
 

Allegati

  • catone_1.GIF
    catone_1.GIF
    40,3 KB · Visite: 441
  • catone_2.GIF
    catone_2.GIF
    31,7 KB · Visite: 433
Ultima modifica:
Senza giudicare il tuo lavoro voglio farti capire come lavorerei io utilizzando i tuoi strumenti.
Il motore scritto così potrebbe andare, verifichiamolo.

Passo 1:
Posta l'equity e il report del sistema sia sul FIB che su altri due future azionari a tua scelta. Il tutto senza commissioni, slippage e al massimo della serie storica che possiedi :up:
 
prima domanda: ma c'è qualcosa che nn va perchè i livelli non sono fissi per tutto il giorno..........ma variano.........dove sta l'errore?

Codice:
Var:prevC,PREVh,PREVl,amp,zona,ap,vola,forzavol,EL,ES;

prevC=ref(EOD.C,1);

amp=op(HHV(prevc,30),LLV(prevc,30),sub);

HHV(prevc,30) il 30 corrisponde a 30 barre da 15 minuti non a barre daily.

Stesso errore logico che ti avevo segnalato nel calcolo precedente dell'ATR...
 
Ultima modifica:
Codice:
Var:prevC,PREVh,PREVl,amp,zona,ap,vola,forzavol,EL,ES;

prevC=ref(EOD.C,1);

amp=op(HHV(prevc,30),LLV(prevc,30),sub);
HHV(prevc,30) il 30 corrisponde a 30 barre da 15 minuti non a barre daily.

Stesso errore logico che ti avevo segnalato nel calcolo precedente dell'ATR...

si ho capito anch'io...che c'era qualcosa che non andava......avevo detto infatti che si otteneva così un valore non fisso..........
domanda : come si fa ad ottenere il max e il min per un certo periodo dei close day.......a comniciare dal precedente ???
 

Users who are viewing this thread

Back
Alto