Benvenuto nella pagina di HELP di Options Backtest Engine


Premessa

Il trader in Opzioni sente la necessità di valutare se le sue strategie sono profittevoli e magari migliorabili.

L’esperienza sul campo difficilmente troverà un sostituto, ma avere un buon options backtest engine sarà certamente una scorciatoia.

Quello che spesso mi sono sentito chiedere è: ma i prezzi delle opzioni sono reali o sono teorici?

Ecco, su questo punto dobbiamo riflettere bene per capire se scegliere la modalità di test in reale o in teorico, sapendo che se eseguirò un test a time frame giornaliero, il più logico per un trader in opzioni, quale prezzo delle opzioni mi aspetterò?

Ogni giorno vengono offerti migliaia di prezzi su una singola opzione, infatti la chain cambia al variare del sottostante.

Però, se decido di fare il test a time frame giornaliero, vorrà dire che mi servirà solo il prezzo dell’opzione che segnava al close…

dobbiamo però considerare che all’approssimarsi dell’orario di chiusura delle contrattazioni, gli spread tra bid e ask si allargano in quanto i Market Maker hanno sempre meno tempo a disposizione per aggiustare le loro posizioni che debbono essere a delta zero.

Qui è il punto: quale prezzo mi aspetto?

Tra Bid e Ask c’è una grande differenza a volte anche del 200% che viene in parte ristretta se iniziamo a trattare con il Market Maker e quindi che prezzo potrei pensare di ottenere?

Sembrerebbe logico il prezzo middle, cioè il prezzo mediano tra Bid e Ask, ma l’opzionista un po’ esperto sa che non è quello il prezzo, non sarà mai quello.

E allora che prezzo?

Il punto è proprio questo: che non lo si saprà se non nel futuro e quindi, fare un backtest con prezzi reali, ma reali a caso, è fortemente fuorviante.

In questo momento Fiat offre sulla PUT a strike 8

Book

0,1945 oppure 0,4855 cioè il 149%…e questo è un book reale ma la domanda è a che prezzo sarei eseguito?

Magari alla metà tra i due valori, e invece io ho appena provato a chiudere i miei contratti e mi sono spinto a pagarli sino a 0,39 e non sono stato eseguito nemmeno al 24% di distanza tra due prezzi che tra loro distano il 149%.

E allora dico che molto meglio avere un prezzo teorico ma fisso, senza lo spread che potrei avere o non avere a queste dimensioni, sopratutto pensando che se uso la formula teorica di prezzaggio, avrò sicuramente le stesse differenze nel momento in cui apro la posizione e nel momento in cui la chiuderò.

Avrò quindi un valore attendibile di differenza tra i prezzi e, se sono teorici la differenza non varierà, altrimenti sarà incostante senza una formula che mi possa dire quale costante di rettifica usare.

Perciò, noi professionisti del trading in opzioni, preferiamo un modello ibrido ma molto attendibile e cioè:

prezzi teorici ma skew reali.

Questo è il segreto di un buon test, applicare alla formula teorica la struttura a termine applicata dal Market Maker.

Nota per i teorici ad oltranza:
nemmeno il prezzaggio Vanna Volga da risultati migliori!

Torna all’inizio

Perché & come eseguire un backtest … e cosa mi aspetto

Le strategie in opzioni sono sempre dinamiche e costringono il trader ad affrontare quotidianamente le situazioni che il mercato gli presenta: modificare lo strike, coprire la posizione, proteggersi con una opzione contraria a quella venduta…ecc., ecc., ecc.

Ogni operazione di correzione costa e quindi riuscire a capire se è meglio fare in una maniera anziché un’altra spesso fa la differenza.
Anche sapere se è meglio prendersi dei vantaggi/rischi comperando o vendendo le opzioni ATM anziché OTM o ancora ITM.

Insomma ci sono tante variabili che vengono insegnate dal mercato con il tempo che ci vorrà. Oppure ci si riferisce alla solita prova su un periodo passato, esattamente come si fa con un Trading System diretto sul sottostante.
Una volta aggiustati i parametri, oppure NON eseguendo in toto la strategia che verrà scartata a costo zero, si è pronti per affrontare il mercato con almeno dei valori/risultati statistici.

Non è una prova alla cieca!

Sapere che se rollo 1 contratto ogni volta che lo strike è raggiunto dal sottostante e che se questo contratto lo vendo con scadenza 30 giorni, distante dal prezzo il 10% mi porta ad avere un numero di contratti pari a 10 oppure 100, è un’informazione preziosissima perché già so se posso affrontare quel tipo di strategia oppure “scopro ” che è più conveniente vendere ATM e quindi affronterò il mercato reale con cognizione di causa.

Perciò il backtest deve essere uno strumento che mi darà dei risultati e informazioni che mi serviranno per affrontare il mercato reale, non importa se l’equity è di 1000 euro oppure di 1025 euro…la cosa importante è che sia positiva, che abbia una pendenza che mi soddisfi e che non abbia dei drawdown che non riuscirei a sostenere…
Hedging & Rolling, tecniche di strategia


Torna all’inizio

Tecnica dell’Hedging:

per una trattazione completa visita il seguente link.

Consiste nel bilanciare la posizione in opzioni con il sottostante e lo si può bilanciare in base al delta dell’opzione oppure in base al contratto di opzione.

Un contratto di opzione Call su FIAT iscrive 500 azioni e quindi se lo vendo mi obbligo, nel caso il contratto scada ITM a consegnare le 500 azioni che mi verranno pagate il prezzo dello strike.

Prima di essere ITM l’opzione passerà certamente dallo stato ATM ed in quel preciso momento il suo delta è di 0,5 e perciò anche la probabilità che scada ITM è del 50%. Se ragioniamo in delta allora anziché acquistare subito i 500 contratti li compreremo in base alla probabilità, in base al valore del delta.
Ovvero quando il delta sarà o,5 compreremo 0,5 * 500 = 250 azioni per poi aggiustarle al variare del delta nel caso in cui da 0,5 vada in salita, oppure liberarle completamente nel caso in cui il delta da 0,5 scenda.

Per lasciare un po’ di agio tra il comprare ed il vendere ecco che si possono impostare delle soglie di attivazione che sono impostate secondo il disegno seguente, con quella di attivazione o ON più alta del valore dello strike e quella di disattivazione dell’hedging o OFF più bassa.

Soglie Hedging


Torna all’inizio

Tecnica del rolling:

quando una opzione che compone la nostra strategia ha le caratteristiche che riteniamo opportune diciamo al sistema di chiudere l’opzione stessa e metterne a mercato una nuova con caratteristiche differenti che dobbiamo definire.

In pratica si tratta di muovere la opzione che abbiamo a mercato in modo tale che il prezzo del sottostante sia ad una distanza dallo strike dell’opzione stessa.

Se vendiamo una Put strike 10 e incassiamo 1 euro, quando il sottostante batte 11 significa che l’opzione NON è ITM per cui se a scadenza il Last del sottostante batte un valore superiore a 10, il premio che abbiamo incassato pari ad 1 euro, rimane il nostro.

Durante la vita dell’opzione il prezzo del sottostante varierà e se supponiamo che prenda la via della discesa, nel momento in cui quoterà un valore pari a 10 ecco che la nostra opzione diventa ITM e, ad ogni frazione di discesa, iniziamo a perdere dapprima il premio incassato e poi anche la parte eccedente, non coperta dal premio. Facciamo due esempi:

a) se il sottostante terminerà la sua corsa a 9 la nostra posizione sarà :

strike 10 – Last 9 = -1 euro di perdita

-1 euro di perdita + 1 euro di premio = 0

b) se il sottostante terminerà la sua corsa a 8 la nostra posizione sarà :

strike 10 – Last 8 = -2 euro di perdita

-2 euro di perdita + 1 euro di premio = 1 euro di perdita

A questo punto abbiamo visto che stando fermi con l’opzione siamo in balia del mercato, se invece a determinate condizioni che poi vedremo, si fosse chiusa l’opzione a strike 10 e si fosse aperta l’opzione a strike 9 avremmo potuto difendere la posizione. Teniamo presente che chiudere una posizione comporta certamente una perdita che però si può recuperare aumentando il numero dei contratti su cui ci si sposta.

Facciamo un esempio con riferimento alla posizione precedente:

il sottostante quota 10 e decido perciò di chiudere l’opzione pagando un premi che sarà superiore al premi che avevo incassato e che era pari ad 1 euro.

Supponiamo che l’opzione strike 10 che da OTM è diventata ATM abbia un premio pari a 2 euro.

Chiudendola, dovrò pagare 2 euro meno 1 euro che avevo incassato e quindi subisco una perdita di 1 euro;

mi sposto su uno strike inferiore, supponiamo lo strike 9 che ora è OTM e supponiamo di incassare 1 euro.

Se ne vendo una solamente il premio che incasserò sarà pari alla perdita ma se ne venderò due ecco che il guadagno, se si confermano le condizioni dell’esempio precedente con il Last che quota 9, sarò in guadagno di 1 euro.

Quindi la rollata mi permette di spostare l’operazione incassando altri premi ma AUMENTANDO il numero dei contratti.

Per ottenere un premio maggiore senza aumentare il numero dei contratti dovrò spostare anche la scadenza dell’opzione che avendo più giorni avrà ovviamente più premio.

In pratica la partita si gioca proprio su quando spostare l’opzione che sta perdendo , sul numero massimo di contratti che si vogliono mettere a mercato e sulla durata dell’opzione su cui vado a rollare.

Tutti questi parametri sono settabili dall’utente.

Nota: la rollata si può decidere a Strike e cioè in base alla distanza che intercorre tra il Last del sottostante e lo strike, ad esempio appena il last è al 2% di distanza dallo strike chiudo e rollo;

oppure a delta (in valore assoluto senza tenere conto del segno algebrico!)
premesso che il delta di una opzione varia al variare della distanza tra lo strike ed il sottostante, alla volatilità, alla durata del contratto, i Traders possono decidere di gestire la posizione controllando questo parametro,ad esempio il delta dell’opzione, nel momento in cui la mettiamo a mercato, ha un valore di 0,4 (leggermente OTM) e decidiamo che quando questo valore raggiungerà lo 0,5 chiuderemo questa posizione per aprirne una successiva con un delta pari o inferiore a 0,4.

Torna all’inizio

Istruzioni di utilizzo di options backtest engine
options backtest

Nella sezione Basket si seleziona il sottostante si cui si vuole testare la strategia,

Scelta Sottostante

il periodo storico ed il time frame.

options backtest Storico Sottostante Selezionato

Di seguito si imposta la Strategia e le caratteristiche con cui dovrà essere rimessa a mercato una volta che è scaduta,

ovvero si imposta:

options backtest Creo la Strategia

la quantità,

il segno,(Long/Short),

il tipo (Call/Put),

la Moneyness (ATM/OTM/ITM),

la distanza in percentuale dal Valore del sottostante (lo strike ATM coincide con il valore del sottostante arrotondato al più vicino),

la durata (Giorni) sia minima che massima perché se volessimo comperare una Call a Scadenza di 30 giorni e così per 10 anni, ci saranno dei mesi in cui la condizione non verrà soddisfatta in quanto ila vita potrebbe essere di 29 o 28 giorni, o ancora se ho impostato di chiudere la strategia a livelli di Gain /Loss questi potrebbero scattare i primi giorni e quindi il residuo per quel mese potrebbe essere, a titolo di esempio, anche di 15 giorni o 10,

il premio minimo o il controvalore minimo al di sotto del quale non si ritiene conveniente andare a mercato.

Torna all’inizio

Applico un trading system

In questa sezione si stabilisce se si vuole gestire la strategia impostando dei parametri di money management come lo Stop Loss o il Take Profit, oppure se si desidera chiudere la strategia se il sottostante ha superato un dato numero di deviazioni standard da quando è stata costruita la strategia.

Nota: questa ultima regola si usa nelle figura chiuse come il Condor.

Imposto StopLoss e Take Profit

Torna all’inizio

Strategy

Si decide se una o più parti (leg) che la compongono saranno gestite con la tecnica del Rolling oppure con la tecnica dell’Hedging

Applicazione per impostare una rollata che:

– avvenga quando il delta della opzione a mercato ha un valore => a 0,5

– ci si sposti su un’opzione che ha un delta <= a 0,4

– che si mantenga il valore complessivo del premio e quindi, aumentando i contratti

– che non si superi il numero massimo di 15 contratti, (Leggi Nota)*

– che questi contratti che si apriranno abbiano un valore almeno pari al 1% del valore del premio dei contratti che si chiuderanno,

– che lo si faccia sino ad 1 giorno prima della scadenza dell’opzione con cui è costruita la strategia

– che NON si voglia trasferirsi su una scadenza superiore

si dovrà seguire il seguente schema.

*NOTA: scrivere che si accetta di rollare su di un contratto che potrebbe avere un valore pari all’1% del contratto che si chiude e scrivere che non si vuole superare il numero di 15 contratti, porterà a casi in cui il valore totale del premio non sarà mantenuto. Infatti, per mantenere intatto il premio si dovrebbe scrivere che il numero minimo dei contratti non superi i 100!

options backtest Impostazioni a delta 1

Viceversa, fermo restando le condizioni di delta e di valore, se non si dovessero trovare le condizioni di prezzo (1%) o di contratti minimi (15) vogliamo che si apra una posizione su una scadenza successiva che abbia una durata di almeno 10 giorni e non superiore ai 30 si seguirà lo schema precedente cambiando solo le scadenze.

options backtest Applico un trading system

ATTENZIONE: in questa scelta stiamo dicendo al sistema di rollare su una scadenza successiva ma NON di chiudere la strategia a quella scadenza.

Infatti supponiamo di avere come strategia di partenza una Call a scadenza 10 giorni ed una Put a scadenza 10 giorni.

Supponiamo che sia avvenuta una rollata sulla Put con scadenza a 30 giorni.

La strategia si chiuderà alla scadenza iniziale della strategia e cioè a 10 giorni e nel grafico “Profit / Loss per Strategia” si leggeranno i valori dei premi che si sono incassati ma che si sono chiusi senza aspettare la loro scadenza naturale e che quindi NON sono stati realizzati.

Applico un trading system

Per incassarli si deve impostare il software in modo che possa cambiare la scadenza della strategia iniziale che ATTENZIONE, diventerà una strategia nuova in cui NON ci saranno le leg che sono scadute ma solamente quelle rollate. Nel caso in esempio ci sarà solo la PUT!

Applico un trading system

Torna all’inizio

Ed il grafico precedente cambierà nel modo seguente proprio perché vengono portati a scadenza i premi incassati dalla rollata .

Profit Loss per strategia con premi

NOTA: se non trova le condizioni impostate nella parte illustrata nella figura seguente, la strategia o l’opzione NON verrà rollata.

Condizioni rolling

Le volte in cui non si sono verificate le condizioni, è evidenziato nel grafico Rolling per Strategie e Failure e si potrà di conseguenza modificare la percentuale del prezzo minimo o i giorni impostati.

Condizioni rolling

Vita min.gg.

Vita minima opzioni rolling

Sono i giorni di vita minima residui nell’opzione che si vuole chiudere per rollare. Ad esempio:

se NON si vuole rollare l’ultimo giorno della scadenza perché si ritiene che il premio incassato sia sufficiente a coprire lo scostamento probabile del sottostante, nella casella si imposterà 2. In questo modo il giorno residuo è 1 e di conseguenza la condizione non è soddisfatta.

Torna all’inizio

Applicazione per impostazione Hedging con l’utilizzo del sottostante:

scelta dell’hedging a soglia con le soglie distanti l’1% rispetto al valore dello strike che si dovrà difendere

Impostazioni Hedging

scelta dell’hedging a soglia con le soglie distanti l’1% rispetto al valore dello strike che si dovrà difendere

Impostazioni Hedging di delta

Per evitare di correggere comperando o vendendo 1 sola azione per volta, posso settare il numero minimo di contratti al raggiungimento del quale scatta l’operazione di correzione. In genere il 10% dei contratti iscritti dall’opzione.

Impostazioni Hedging di delta con sottostante

Rimanendo nell’esempio potrei decidere di proteggere la Call su Fiat con una Call di segno contrario, di strke uguale ma scadenza diversa oppure di strike diverso e/o stessa scadenza.

In questo caso dovrò settare il software in modo che sappia anche la durata dell’opzione che voglio usare e il delta minimo dell’opzione stessa.
Pertanto il settaggio sarà come da immagine:

Impostazioni Hedging di delta con opzioni

Avendo cura di non scordare il delta minimo ed il numero minimo di contratti raggiunto il quale scatta la correzione (nel caso di hedging di opzione contro opzione si tende ad utilizzare l’1% dei contratti totali da difendere)

Delta opzione hedging


Torna all’inizio

La strategia seguirà un Trading System
Backtest con TradingSystem

Se si decide di mettere a mercato determinate parti delle componenti della strategia, tutta la strategia o chiudere delle parti o tutte le componenti, a seconda che un Trading System dia il segnale, si deve attivare la casella riferita all’immagine qui sopra e trasferirsi nell’area Scripts.

Script
Nota:
Seguire un Trading System migliorerà di molto le prestazioni della strategia, basti infatti pensare a quanto più performante sarebbe mettere a mercato delle Put comperate nelle fasi in cui il mercato scende, oppure vendere delle Call durante la discesa e vendere delle PUT nella fase di salita.

Per scrivere un Trading System, cioè delle regole all’avverarsi delle quali si attiveranno le condizioni che abbiamo stabilito, abbiamo predisposto delle aree che dovranno essere compilate scrivendo con un linguaggio veramente semplice che abbiamo chiamato Easy Script di cui troverete il manuale di istruzione a questo link
oppure la possibilità di copiare ed incollare degli esempi preconfezionati tra quelli messi a disposizione a questo link.

Vi ricordo che il linguaggio Easy Script è lo stesso linguaggio che si utilizza in beeTrader per cui è possibile copiare ed incollare sistemi di segnali già costruiti o presenti in beeTrader.

Propongo un esempio tanto per chiarire:

se volessi mettere a mercato le componenti di uno Straddle venduto, e lo volessi mettere a mercato in due fasi distinte:

vendere la Call quando il prezzo del sottostante è in discesa e sotto la media mobile a 21 periodi (e NON avere PUT vendute)

vendere la Put quando il prezzo del sottostante è in salita e sopra la media mobile a 21 periodi (e NON avere Call vendute)

è sufficiente scrivere:

close > SMA (close, 21) per il segnale di salita e
close < SMA (close, 21) per il segnale di discesa
Nota: SMA= Simple Moving Average calcolata sul close a 21 periodi

Quindi:

1) scrivo la condizione di salita,

Script per salita

2) verifico con l’apposito pulsante che non ci siano errori

Verifica Scipt TS

e istruisco il software che voglio aprire solamente la parte coerente con il trend in salita e cioè la SHORT PUT e chiudere ciò che non è coerente con la salita qualora fosse già a mercato.

Operazione per Long

A questo punto mi serve una ulteriore area di scrittura che predispongo con l’apposito pulsante:

Aggiungi Script

e nella nuova area scrivo la condizione di discesa:

Script per discesa

e istruisco il software che voglio aprire solamente la parte coerente con il trend in discesa e cioè la SHORT CALL e chiudere ciò che non è coerente con la discesa qualora fosse già a mercato.

Azione short

Torna all’inizio

NOTE:

ricordo che le combinazioni che si possono creare hanno come unico limite la gestione separata di 8 Legs che comunque possono essere gestite a loro volta in migliaia di modalità.

A questo punto abbiamo una ulteriore possibilità che ci è data da il seguente settaggio

Setting

dal quale si può scegliere come creare le opzioni che compongono le strategie.

I modi disponibili sono due:
1. “Tutte le leg hanno scadenza calcolata a partire dallo stesso momento”

2. “Ogni leg ha scadenza calcolata a partire dalla generazione del segnale”.

Supponiamo di avere una strategia composta da 2 leg, una Call ed una Put, entrambe con scadenza compresa tra 10 e 40 giorni, e di avere 2 script diversi per aprire le posizioni delle 2 leg, uno con la condizione impostata come prezzo superiore alla sua media mobile, ed uno con la condizione impostata come prezzo inferiore alla sua media mobile.

In questa situazione, sempre e soltanto una delle 2 condizioni può essere vera, pertanto sempre e soltanto una delle 2 opzioni della strategia verrà simulata come messa a mercato.

Se ho scelto il modo 1, sia la Call che la Put avranno sempre la stessa scadenza tra loro, perché appena ho una condizione che apre una posizione calcolo le date di scadenza delle opzioni della strategia.

Potrebbe quindi succedere che la seconda opzione non venga mai messa a mercato oppure che venga messa a mercato con pochissimi giorni di vita residua. In queste condizioni, non otterrò mai un Calendar.

In pratica tutta la strategia è dominata dalla data di scadenza delle opzioni e non dal segnale.

Se ho scelto il modo 2, ogni volta che si verifica la condizione per aprire la posizione di una opzione della strategia, viene calcolata la scadenza esclusivamente di quella opzione.

In questo modo ho la certezza di simulare la messa a mercato delle opzioni con una vita residua tra 10 e 40 giorni, ma non ho la certezza di avere la stessa scadenza per entrambe le opzioni. Posso quindi trovare dei Calendar.

In pratica tutta la strategia è dominata dal segnale e non dalla data di scadenza delle opzioni.

Premesse per la scrittura di Codici di Easy Script

Nota: le differenze tra scrivere il codice in beeTrader e in option backtest engine sono:

In option backtest non sono presenti le funzioni informative sullo stato della strategia, quali ad esempio CurrentContracts(), OpenPosition(), DrawDown(), RunUp(), eccetera

In option backtest non sono supportate le proprietà relative al money management, cioè STOP_LOSS, TAKE_PROFIT, TRAILING_STOP, TRAILING_PERCENT, MAX_OPEN_POSITION

In option backtest non è possibile utilizzare scripts con variabili in ingresso dichiarate tramite INPUTS, vale a dire che la riga degli input non ci deve essere ed i valori che sarebbero stati scritti negli input vanno invece sostituiti direttamente all’interno degli script.

Esempio:

Codice bee

e

Script per OptionBacktest

semplicemente i numeri dei periodi vanno scritti direttamente a fianco della funzione.

NOTA: in option backtest engine è presente la possibilità di verificare la correttezza dello script che si è scritto, cliccando sull’apposito pulsante “Verifica TS”.

Verifica TS

Se lo script contiene errori, una finestra di popup informerà l’utente su che tipo di errore è presente.

Finestra verifica errori

Una volta terminate le impostazioni … si avvia il Backtest !!

Esegui Backtest

e si verificano i risultati nelle due sezioni che li rappresentano in due modalità:


Torna all’inizio

Modalità Grafica

Sezione Grafici

In questa sezione ci sono numerosi grafici che restituiranno dei valori solo nel caso siano state utilizzate utilizare le relative funzionalità…ad esempio se non ho selezionato Hedging nessun grafico relativo alle misurazioni dell’hedging restituirà qualche valore.

 

ZOOM:

Tutti i grafici presenti in quest’area sono interattivi.

Ad esempio per eseguito uno zoom +, basta semplicemente cliccare con il tasto sinistro del mouse e trascinare “tale clic” per la zona di interesse del grafico, una volta che il clic verrà rilasciato il grafico automaticamente sarà zoomato nella modalità richiesta dall’utente.


Sezione Grafici

Automaticamente una volta che il grafico è in modalità zoom +, in alto a destra comparirà il pulsante “Reset zoom” per ripristinare il grafico.

 

Legenda Interattiva:

Anche a legenda del grafici è interattiva, si possono cioè selezionare/deselezionare le serie che sono indicate.

Nell’immagine d’esempio tra tutte le greche si è deciso di rendere visibili solo il Delta ed il Gamma.


Legenda interattiva

Torna all’inizio

Modalità Numerica

Oppure in forma numerica, andando nella sezione “Riepilogo”

Sezione Grafici

Dove troveremo una tabella di dati che ci elencano tutti i dettagli delle operazioni eseguite.”

Tabella risultati


Contattaci

Chiama gli esperti
+39 0425 792923

Chiamaci
Email

Richiedi informazioni via E-MAIL
info@playoptions.it

Scrivici
Nostri Uffici

Vieni a trovarci
45100 Rovigo

Contattaci

Serve Aiuto?

Contattaci per maggiori informazioni.

Denis MorettoSpecialista Finanziario
Contattaci