Pek
Forumer storico
La tua strategia è controproducente per un retail, visto che i costi di transazione non giustificano eventuali problemi di liquidità del mercato.
Non ho capito come entra in gioco la liquidità
La tua strategia è controproducente per un retail, visto che i costi di transazione non giustificano eventuali problemi di liquidità del mercato.
La tua strategia è controproducente per un retail, visto che i costi di transazione non giustificano eventuali problemi di liquidità del mercato.
Pek ha scritto:Non ho capito come entra in gioco la liquidità
Reef non puoi usare una strategia che compra quello che cade senza avere un database survivorship bias free. Dai miei test invece se compri quello che sale l'influenza del bias è trascurabile. Cmq ottima iniziativa, anche se fosse solo un esercizio di programmazione in Amibroker vai avanti senza indugi
Malnati a Mechanica l'anno scorso aveva mostrato il suo modello di ranking, nn era market neutral ma iniziava con una media mobile a 200 periodi sull'indice e sulle singole azioni. Correlazione tra indice e singola azione, break dei massimi di periodo ecc ecc. Era il sistema che usava per far girare il fondo asiatico, nulla di eccezionale solo buon senso.
Occhio solo ad evitare l'overfitting ragioniamo prima di lanciare i backtester.
//SetOption("CommissionMode",2);
//SetOption("CommissionAmount",5);
SetBacktestMode(backtestRegularRaw);
SetOption("InitialEquity", 200000); // Capitale iniziale
SetOption("MaxOpenPositions", 5); // Ma operazioni aperte simultanee
SetPositionSize( 10000, spsValue ); // Importo per ogni posizione
SetTradeDelays( 0, 0, 0, 0 ); // Compro e Vendo in chiusura contestualmente al calcolo dell'indicatore
soglia = Optimize("Soglia", 15, 5, 30, 5); //eventuale ottimizzazione (overfitting)
periodo = Optimize("Periodo", 3, 3, 30, 3); //eventuale ottimizzazione (overfitting)
if (Name() != "FTSEMIB.MI") { //nella WatchList, se oltre al basket c'è l'indice di riferimento, questo viene ignorato nell'apertura dei long
BuyPrice = Sellprice = C;
B = RSI(periodo)<soglia;
S = RSI(periodo)>100-soglia;
Buy = ExRem (B, S);
Sell = ExRem (S, B);
Short = Cover = 0;
AddToComposite(Buy,"RSILong", "Open", atcFlagDefaults|atcFlagEnableInBacktest|atcFlagDeleteValues); //Memorizza i buy long
AddToComposite(Sell,"RSILong", "Close", atcFlagDefaults|atcFlagEnableInBacktest|atcFlagDeleteValues); //Memorizza i sell long
}
//SetOption("CommissionMode",2);
//SetOption("CommissionAmount",5);
SetBacktestMode(backtestRegularRaw);
SetOption("InitialEquity", 200000);
SetOption("MaxOpenPositions", 1);
SetPositionSize( 10000, spsValue );
SetTradeDelays( 0, 0, 0, 0 );
fixAmt = 10000;
indice = "FTSEMIB.MI";
SetForeign (indice);
ShortPrice = C;
CoverPrice = C;
atcShort = Foreign ("RSILong", "Open");
atcCover = Foreign ("RSILong", "Close");
Buy = Sell = 0;
a = atcShort - atcCover;
PositionSize = fixAmt * abs(a);
Short = IIf(a>0, sigScaleIn, IIf(a<0, sigScaleOut, 0));
L'acquisto sul titolo scatta con un RSI(3)<10 e la vendita >90
E' solo l'inizio e sono pure abbastanza confuso (e scettico, visto che non credo nell'AT), .
L'argomento, per chi progetta TS, è affascinante dal punto di vista della programmazione.
Prendo un basket di centinaia si titoli e scelgo un indice sottostante, disponibile sul mercato, che ne replichi l'andamento medio. Poi cerco criteri per selezionare quei (pochi) titoli che, in certi momenti, mostrano andamenti che si scostano sensibilmente dall'indice. In questi momenti compro i titoli e bilancio la posizione vendendo l'indice, o viceversa.
In caso di catastrofi (come oggi, -5% sul FTSEMIB) la posizione complessiva resta comunque neutrale.
Programmare questa strategia in automatico non è banale, specie se si vuole effettuare un backtest sugli algoritmi da verificare.
Sarebbe interessante sapere se qualcuno ha esperienza, e quali, si ritiene, siano gli strumenti e le modalità più interessanti per sviluppare una simile strategia.
Se ne uscirà una discussione produttiva, alla fine pubblicherò un semplice codice scritto in Amibroker.
Spero che si faccia sotto chi ha argomenti, ma anche chi ha voglia di imparare e sperimentare (come il sottoscritto)...