Buy & Hold la stretegia vincente

Ho analizzato il comportamento di un paniere di titoli per vederne il comportamento complessivo nel tempo. In particolare già in passato avevo analizzato la strategia buy & hold verificando che è difficile trovare una strategia di trading migliore di quella B&H.

Con l’occasione ho voluto sperimentare backtesting alternativi rispetto a Backtrader. Credo che Backtrader sia una delle piattaforme migliori sul mercato, in grado di simulare in odo molto fedele il comportamento dei broker e anche di agganciarsi a broker reali per algotrading direttamente a mercato. Per fare però delle semplici simulazioni occorre qualcosa di più snello, una volta verificata la bontà di una strategia attraverso un sistema snello si può implementare su backtrader che aggiunge tutti gli orpelli onerosi quali slippage, tobin tax, commissioni e vincoli su ordini in base alla disponibilità economica.

Per implementare un metodo snello ci sono tre framework che ci aiutano:

  • ta-lib: una collezione di funzione per l’analisi tecnica, comprende anche l’identificazione di candlestick e numerosi indicatori
  • pandas-ta, estende in modo semplice le funzioni di pandas aggiungendo diverse funzioni per applciare sul set di dati gli indicatori ta-lib
  • vector-bt: una libreria semplice di backtesting che consente di definire gli entry e exit point di una strategia. In base a questi elementi

Tornando alla strategia B&H, le prime prove fatte coinvolgono la librerie pandas-ta e, dato l’insieme dei titoli, calcolo in guadagno nel tempo per ciascun titolo. Il codice è molto semplice, per prima cosa carico i dati:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import pandas_ta as ta
df = pd.DataFrame() # Empty DataFrame
assets =["A2A.MI", "AMP.MI", "ATL.MI", "AZM.MI", "BGN.MI", "BMED.MI", "BAMI.MI", "BPE.MI", "BZU.MI",
"CPR.MI", "CNHI.MI", "DIA.MI", "ENEL.MI", "ENI.MI", "EXO.MI", "RACE.MI", "FBK.MI", "G.MI",
"HER.MI", "IP.MI", "ISP.MI", "INW.MI", "IG.MI", "LDO.MI", "MB.MI", "MONC.MI", "NEXI.MI",
"PIRC.MI", "PST.MI", "PRY.MI", "REC.MI", "SPM.MI", "SRG.MI", "STLA.MI", "STM.MI", "TIT.MI",
"TEN.MI", "TRN.MI", "UCG.MI", "UNI.MI"]
dfs = {}
for name in assets:
dfs[name]=pd.read_json(f"{name}_reg_5-60")
dfs[name].set_index(pd.DatetimeIndex(dfs[name]["Date"]), inplace=True)

I dati lì ho in locale per comodità, ma volendoli caricare con pandas-ta è sufficiente sostituire con questo:

dfs[name]=df.ta.ticker(name)

A questo punto calcolo il guadagno nel tempo per ciascun asset e creo una tabella di sintesi:

assets =["A2A.MI", "AMP.MI", "ATL.MI", "AZM.MI", "BGN.MI", "BMED.MI", "BAMI.MI", "BPE.MI", "BZU.MI", 
      "CPR.MI", "CNHI.MI", "DIA.MI", "ENEL.MI", "ENI.MI", "EXO.MI", "RACE.MI", "FBK.MI", "G.MI", 
      "HER.MI", "IP.MI", "ISP.MI", "INW.MI", "IG.MI", "LDO.MI", "MB.MI", "MONC.MI", "NEXI.MI", 
      "PIRC.MI", "PST.MI", "PRY.MI", "REC.MI", "SPM.MI", "SRG.MI", "STLA.MI", "STM.MI", "TIT.MI", 
      "TEN.MI", "TRN.MI", "UCG.MI", "UNI.MI"]

gains = {}
res = pd.DataFrame(columns=["start","end","initial","final","percret","logret"])
total = 0
for name in assets:
    df =dfs[name].copy()
    df.ta.log_return(cumulative=True, append=True)
    df.ta.percent_return(cumulative=True, append=True)
    gains[name] = df["CUMPCTRET_1"][len(df)-1]
    total +=gains[name]
    print(f"Guadagno {name} dal {df.index[0]:%m/%d/%Y} al {df.index[-1]:%m/%d/%Y} di {gains[name]*100:.02f} %")
    p = pd.DataFrame([[df.index[0],df.index[-1],df["Close"][0],df["Close"][len(df)-1],
                             df["CUMPCTRET_1"][len(df)-1],df["CUMLOGRET_1"][len(df)-1]]],
                            columns=["start","end","initial","final","percret","logret"],
                            index=[name])
    
    res = pd.concat([res,p])

print(f"Guadagno medio {total*100/len(gains)} %")



Il risultato mostra come alcuni titoli hanno performato molto, altri molto male:

Guadagno A2A.MI dal 01/03/2000 al 05/05/2022 di -56.15 %
Guadagno AMP.MI dal 10/01/2001 al 05/05/2022 di 2256.41 %
Guadagno ATL.MI dal 09/22/2003 al 05/05/2022 di 88.79 %
Guadagno AZM.MI dal 07/07/2004 al 10/27/2021 di 634.51 %
Guadagno BGN.MI dal 11/15/2006 al 05/05/2022 di 244.51 %
Guadagno BMED.MI dal 01/03/2000 al 05/05/2022 di -45.43 %
Guadagno BAMI.MI dal 01/03/2000 al 05/05/2022 di -97.02 %
Guadagno BPE.MI dal 01/03/2000 al 05/05/2022 di -88.98 %
Guadagno BZU.MI dal 01/03/2000 al 05/05/2022 di 62.49 %
Guadagno CPR.MI dal 07/06/2001 al 05/05/2022 di 6961.02 %
Guadagno CNHI.MI dal 09/30/2013 al 05/05/2022 di 44.78 %
Guadagno DIA.MI dal 07/19/2007 al 05/05/2022 di 868.90 %
Guadagno ENEL.MI dal 01/03/2000 al 05/05/2022 di 1.35 %
Guadagno ENI.MI dal 01/03/2000 al 05/05/2022 di 28.91 %
Guadagno EXO.MI dal 01/03/2000 al 05/05/2022 di 81.08 %
Guadagno RACE.MI dal 01/04/2016 al 05/05/2022 di 339.43 %
Guadagno FBK.MI dal 07/02/2014 al 05/05/2022 di 223.87 %
Guadagno G.MI dal 01/03/2000 al 05/05/2022 di -36.47 %
Guadagno HER.MI dal 03/28/2003 al 05/05/2022 di 95.84 %
Guadagno IP.MI dal 01/03/2000 al 05/05/2022 di 746.27 %
Guadagno ISP.MI dal 01/03/2000 al 05/05/2022 di -44.43 %
Guadagno INW.MI dal 06/22/2015 al 05/05/2022 di 151.35 %
Guadagno IG.MI dal 11/07/2016 al 05/05/2022 di 54.03 %
Guadagno LDO.MI dal 07/18/2005 al 05/05/2022 di -29.44 %
Guadagno MB.MI dal 01/03/2000 al 05/05/2022 di 8.58 %
Guadagno MONC.MI dal 12/16/2013 al 05/05/2022 di 197.93 %
Guadagno NEXI.MI dal 04/18/2019 al 05/05/2022 di 12.75 %
Guadagno PIRC.MI dal 10/04/2017 al 05/05/2022 di -31.25 %
Guadagno PST.MI dal 10/27/2015 al 05/05/2022 di 36.39 %
Guadagno PRY.MI dal 05/03/2007 al 05/05/2022 di 98.21 %
Guadagno REC.MI dal 01/03/2000 al 05/05/2022 di 4034.14 %
Guadagno SPM.MI dal 01/03/2000 al 05/05/2022 di -75.09 %
Guadagno SRG.MI dal 12/06/2001 al 05/05/2022 di 119.76 %
Guadagno STLA.MI dal 01/03/2000 al 05/05/2022 di 58.00 %
Guadagno STM.MI dal 01/03/2000 al 05/05/2022 di -30.69 %
Guadagno TIT.MI dal 01/03/2000 al 05/05/2022 di -93.51 %
Guadagno TEN.MI dal 12/17/2002 al 05/05/2022 di 704.95 %
Guadagno TRN.MI dal 06/23/2004 al 05/05/2022 di 337.61 %
Guadagno UCG.MI dal 01/03/2000 al 05/05/2022 di -93.24 %
Guadagno UNI.MI dal 01/03/2000 al 05/05/2022 di -90.98 %
Guadagno medio 441.97885234421864 %

Il peggiore è stato BAMI con una perdita del 97.02% mentre il migliore è stato CPR con un guadagno del 6961.02%. Per capire l’entità dei due scostamenti, se avessi investito 10.000€ su BAMI oggi avrei 298€, mentre se avessi investito 10.000€ su CPR oggi avrei 706.102€. Sottolineo la precisazione, l’analisi è semplificata, non si considerano un insieme di fattori, oltre ai costi operativi evidenziati sopra (commissioni, ecc. ) non considero i dividendi distribuiti, gli split, gli aumenti di capitale e tutte quelle operazioni di capitale che portano guadagni o perdite all’azionista.

Il punto da capire è se il risultato di 6961.02% è da considerarsi un anomalia o meno. Vediamo altri outperformer come AMP e REC, anche questi sono un’eccezione. Il primo passo per affrontare quest’analisi è il passaggio alla scala logaritmica. Un titolo che perde ogni giorno l’ 1% perde in termini monetari assoluti sempre meno, un titolo che guadagna 1% ogni giorno guadagna in termini monetari assoluti sempre di più. Rispetto alla scala logaritmica i guadagni (e le perdite) seguono un andamento lineare. I risultati visti sopra, calcolati secondo una scala logaritmica diventano:

Guadagno A2A.MI dal 01/03/2000 al 05/05/2022 di -0.82 log
Guadagno AMP.MI dal 10/01/2001 al 05/05/2022 di 3.16 log
Guadagno ATL.MI dal 09/22/2003 al 05/05/2022 di 0.64 log
Guadagno AZM.MI dal 07/07/2004 al 10/27/2021 di 1.99 log
Guadagno BGN.MI dal 11/15/2006 al 05/05/2022 di 1.24 log
Guadagno BMED.MI dal 01/03/2000 al 05/05/2022 di -0.61 log
Guadagno BAMI.MI dal 01/03/2000 al 05/05/2022 di -3.51 log
Guadagno BPE.MI dal 01/03/2000 al 05/05/2022 di -2.21 log
Guadagno BZU.MI dal 01/03/2000 al 05/05/2022 di 0.49 log
Guadagno CPR.MI dal 07/06/2001 al 05/05/2022 di 4.26 log
Guadagno CNHI.MI dal 09/30/2013 al 05/05/2022 di 0.37 log
Guadagno DIA.MI dal 07/19/2007 al 05/05/2022 di 2.27 log
Guadagno ENEL.MI dal 01/03/2000 al 05/05/2022 di 0.01 log
Guadagno ENI.MI dal 01/03/2000 al 05/05/2022 di 0.25 log
Guadagno EXO.MI dal 01/03/2000 al 05/05/2022 di 0.59 log
Guadagno RACE.MI dal 01/04/2016 al 05/05/2022 di 1.48 log
Guadagno FBK.MI dal 07/02/2014 al 05/05/2022 di 1.18 log
Guadagno G.MI dal 01/03/2000 al 05/05/2022 di -0.45 log
Guadagno HER.MI dal 03/28/2003 al 05/05/2022 di 0.67 log
Guadagno IP.MI dal 01/03/2000 al 05/05/2022 di 2.14 log
Guadagno ISP.MI dal 01/03/2000 al 05/05/2022 di -0.59 log
Guadagno INW.MI dal 06/22/2015 al 05/05/2022 di 0.92 log
Guadagno IG.MI dal 11/07/2016 al 05/05/2022 di 0.43 log
Guadagno LDO.MI dal 07/18/2005 al 05/05/2022 di -0.35 log
Guadagno MB.MI dal 01/03/2000 al 05/05/2022 di 0.08 log
Guadagno MONC.MI dal 12/16/2013 al 05/05/2022 di 1.09 log
Guadagno NEXI.MI dal 04/18/2019 al 05/05/2022 di 0.12 log
Guadagno PIRC.MI dal 10/04/2017 al 05/05/2022 di -0.37 log
Guadagno PST.MI dal 10/27/2015 al 05/05/2022 di 0.31 log
Guadagno PRY.MI dal 05/03/2007 al 05/05/2022 di 0.68 log
Guadagno REC.MI dal 01/03/2000 al 05/05/2022 di 3.72 log
Guadagno SPM.MI dal 01/03/2000 al 05/05/2022 di -1.39 log
Guadagno SRG.MI dal 12/06/2001 al 05/05/2022 di 0.79 log
Guadagno STLA.MI dal 01/03/2000 al 05/05/2022 di 0.46 log
Guadagno STM.MI dal 01/03/2000 al 05/05/2022 di -0.37 log
Guadagno TIT.MI dal 01/03/2000 al 05/05/2022 di -2.73 log
Guadagno TEN.MI dal 12/17/2002 al 05/05/2022 di 2.09 log
Guadagno TRN.MI dal 06/23/2004 al 05/05/2022 di 1.48 log
Guadagno UCG.MI dal 01/03/2000 al 05/05/2022 di -2.69 log
Guadagno UNI.MI dal 01/03/2000 al 05/05/2022 di -2.41 log

Il grafico dei guadagni percentuali e logaritmici sono i seguenti:

Osservando il grafico sulle % sembra che i picchi siano delle anomalie, mentre rappresentando i medesimi dati in scala logaritmica sembrano coerenti e seguire un moto Browniano. I dati sono troppo esigui per rappresentarli con un’istogramma sensato, ma facendolo lo stesso otteniamo i seguenti diagrammi:

Istogramma dei guadagni percentuali
Istogramma dei guadagni logaritmici

A occhio, ma servirebbe un matematico, la curva dei guadagni sembra seguire una distribuzione di chi-quadro, mentre la distribuzione dei guadagni logaritmici sembra seguire una distribuzione normale. Ipotesi da approfondire con un set di dati più ampio.

Come ultima simulazione tolgo tutti i titoli che hanno un valore logaritmico elevato fino a ottenere una media di valore logaritmico inferiore a zero. In altre parole sommando i logaritmi di guadagni e perdite prevalgono le perdite. Calcolando il guadagno % otteniamo un guadagno (seppure piccolo) positivo e come si vede il grafico del guadagno logaritmico è stato privato della parte alta con un significativo sbilanciamento verso i numeri negativi.

Guadagno medio -0.0327 log
Guadagno medio 80.35%

In conclusione:

  • Se ci aspettiamo che i guadagni logaritmici seguano una distribuzione normale, il mercato premia sempre un investimento a lungo termine diversificato su un paniere ampio di azioni (B&H)
  • L’andamento nel lungo periodo delle azioni è legato all’analisi fondamentale e alle scelte strategiche operate dalle aziende

Studio della regressione lineare applicata ai titoli

Tra i diversi indicatori non si trovano spesso indicatori basati sulla regressione lineare, che a mio avviso ha alcuni aspetti interessanti di applicazione.

Dati lineari o logaritmici

La regressione lineare può essere applicata per interpolare i dati di chiusura del mercato e individuare un trend di mercato. L’approccio può essere considerato simile a quelli di una media mobile, con il vantaggio di poter calcolare la pendenza. La prima domanda è se utilizzare i dati lineari o logaritmici. Il dato lineare ha come effetto di essere poco rappresentativo nel momento in cui ci sono grosse variazioni di prezzo. Anche la regressione lineare è sensibile a questa distorsione.

Vediamo a confronto la regressione lineare applicata al medesimo set di dati (TEN ; 2011-10-01 ; 2012-01-01 ) quindi 3 mesi.

Linreg su logaritmo di chiusura con scatter: LinregressResult(slope=0.00877559504812757, intercept=3.338707364650828, rvalue=0.9162344705541173, pvalue=2.5800716530357888e-26, stderr=0.0004873389193687765, intercept_stderr=0.017796213444974496)
Linreg su chiusura con scatter: LinregressResult(slope=0.07284649435853784, intercept=10.049163569395358, rvalue=0.9224407497042941, pvalue=2.605894502505374e-27, stderr=0.0038727335236461253, intercept_stderr=0.14142107199561024)

I due grafici sono molto simili, ma un occhio attento non sfuggono diverse differenze, come ad esempio l’ultimo gruppo in alto a destra di punti, che risulta molto più vicino alla retta di regressione lineare. Considerando che i titoli possono avere scostamenti considerevoli utilizzerò la regressione lineare su dati esponenziali.

Curva di regressione

Utilizzando la regressione lineare, si può stimare il valore punto successivo della sequenza. Nel caso di scala linerare, il punto futuro è semplicemente y = intercept + slope * (period +1), dove period è il perdo di osservazione del campione. Nel caso di scala logaritmica il punto futuro può essere stimato con y = e ^ intercept * e ^ slope ^ (period +1). Rappresentando graficamente i dati si può verificare la bontà del valore stimato.

In rosso la SMA(20) mentre in Blu è rappresetnata la regressione su scala esponneziale con periodo 20 e in verde la regressione con scala lineare e period (20)

Come per la media mobile, anche la regressione mostra un ritardo (come tutti gli indicatori trend following) , coglie con maggior tempestività il cambio di direzione, ma sembra con un ritardo. L’aspetto interessante è che anche con periodi di osservazione ampi mantiene una buona aderenza con la curva del titolo.

In rosso la SMA(50) mentre in Blu è rappresentata la regressione su scala esponenziale con periodo 50 e in verde la regressione con scala lineare e period (50)

La SMA è decisamente più sensibile all’ampliamento del periodo di osservazione rispetto alla regressione lineare.

Slope/ pendenza ed errore della regressione

La regressione lineare restituisce i seguenti valori: slope, intercept, rvalue, pvalue, sterr = linregress(x, returns). I primi due sono quelli che ho utilizzato per disegnare la curva, il primo stabilisce la pendenza della regressione, il secondo il punto del intercetta sull’asse y. La pendenza della regressione lineare non va confusa con la pendenza della curva rappresenta. Per convertire il coefficiente di pendenza in un incremento % giornaliero occorre tornare nel campo lineare da quello esponenziale. Data la pendenza, ,l’incremento % è dato da % = exp(slope)-1. Il grafico mostra il risultato la curva della pendenza trasformata in %.

Curva rossa WAM(20), curva blu SMA(20), curva verde REG(20), grafico inferiore incremento %

Un aspetto interessante nel grafico soprastante è che WMA, SMA, e REG si intersecano nel punto in cui l’incremento % di REG è pari a 0. Infatti per costruzione quando la pendenza della regressione è pari a 0, il valore successivo è apri all’intercetta, che a sua volta è uguale alla media dei punti, che a sua volta è uguale alla media mobile ponderata. Da osservare che la curva, data dalla formula vista in precedenza, cambia direzione prima che cambi la pendenza. Infatti via via che arrivano nuove osservazioni nella nuova direzione. la pendenza inizia a variare, ma lo fa anche l’intercetta. Il coefficiente di correlazione si comporta in modo simile alla pendenza delle retta di regressione. Nei punti in cui la pendenza cambia segno la correlazione è pari a 0.

Curva rossa WAM(20), curva blu SMA(20), curva verde REG(20), grafico inferiore indice di correlazione
TEN ; 2011-03-15 ; 2011-06-01 LinregressResult(slope=0.0001654577957133202, intercept=4.06461066740901, rvalue=0.06658391304605706, pvalue=0.6323851192867931, stderr=0.00034383604540743945, intercept_stderr=0.010570745127746129)

Il grafico a alato mostra il momento di cambio direzione su Tenaris nel periodo, si possono osservare un insieme di aumenti di prezzo, fortemente correlati, seguiti da un insieme di punti non correlati rispetto a quelli iniziali. Sia la pendenza delle rette, che il coefficiente di correlazione si stanno avvicinando allo 0.

Se la correlazione è minima nei punti in cui la retta cambia pendenza, il valore p diventa massimo. Rappresentando in un grafico il valore p-val, otteniamo evidenza della correlazione inversa tra r e p-val.

L’ultimo grafico riporta l’errore standard associato alla curva generata dalla regressione.

Conclusione

Utilizzare la regressione lineare al posto della media può avere un’applicazione pratica concreta per diversi fattori. Il più significativo è a mio avviso la possibilità di confrontare i valori di due diversi strumenti, questo può essere fatto tramite la pendenza della linea di regressione su scala logaritmica. La pendenza stessa può essere utilizzata come indicatore di momento, in modo analogo all’RSI. Potrebbe essere interessante applicare alcuni indicatori come MACD alla regressione lineare. O anche l’incrocio di medie mobili sfruttando la regressione lineare.

Comportamento indicatore SuperTrend

L’indicatore SuperTrend è uno degli indicatori che mi piace maggiormente, prima di scoprirne e conoscerne l’esistenza ho costruito in modo simile, ne condivido i razionali sottostante. Non entro sui dettagli implementativi e mi limito a studiarne il comportamento nel suo utilizzo.

L’indicatore è di tipo trend-following, l’aspetto che lo rende interessante è che non usa medie mobili, ma la volatilità espressa in ATR. In qualche modo tenta di intercettare il rumore di fondo, isolando l’andamento principale, in base al True Range. L’ATR viene usato spesso nella definizione degli stop sui trade multiday. (Nell’intraday lo vedo complesso salvo l’uso di automatismi). I parametri che trovo spesso sono ATR(20,6) per gli stop loss.

Eseguo tre test con tre strategie usando solo il SuperTrend, la prima close-reverse, la seconda solo long, la terza solo short. uso parametri ottimizzati sul periodo di test, questo significa che mi trovo in una situazione di overfit. Successivamente userò il SuperTrend, secodno il suggerimento di molti, come strategia di uscita da un trade. In tutti i test uso le seguenti condizioni ambientali

  • slippage : 1%
  • tobin tax: 0.1%
  • Commissione eseguito: 6.75€
  • periodo: 2010-2020
  • ticker: 40 azioni FTSEMIB ()
  • importo a trade fisso 10.000€
  • cash iniziale: 400.000€ (10K x azione)
  • Parameteri ottimizzati: periodo:20, moltiplicatore:7
  • interessi short: NA

Close&Reverse

In caso di close&reverse mi trovo sempre a mercato con tutte le posizioni, o sono aperte long o short. Il risultato è interessante, indipendentemente dall’andamento del mercato il risultato è pressoché costate e piatto.

MetricStrategyBenchmark
Risk-Free Rate0.0%0.0%
Time in Market100.0%100.0%
Cumulative Return17.97%180.68%
CAGR%1.51%9.84%
Sharpe0.190.55
Sortino0.270.75
Sortino/√20.190.53
Max Drawdown-17.76%-38.59%
Longest DD Days932742
Volatility (ann.)11.19%21.0%
R^20.070.07
Calmar0.090.26
Skew0.79-0.77
Kurtosis14.77.84

Solo Long

L’andamento complessivamente positivo e segue il trend del mercato, con performance nettamente peggiori rispetto a un buy&hold. L’andamento positivo, confrontato con Close&Reverse ci aspettiamo che la strategia solo short abbia un anadamento fortemente negativo

MetricStrategyBenchmark
Risk-Free Rate0.0%0.0%
Time in Market99.0%99.0%
Cumulative Return47.66%205.05%
CAGR%3.61%10.68%
Sharpe0.450.59
Sortino0.610.8
Sortino/√20.430.57
Max Drawdown-15.96%-38.59%
Longest DD Days909742
Volatility (ann.)8.74%20.92%
R^20.50.5
Calmar0.230.28
Skew-0.6-0.78
Kurtosis4.887.99

Solo short

Come ci si aspettava la componente short è molto forte, tanto che l’andamento cumulativo tra solo long e solo short, crea la linea piatta, nonostante l’andamento del FTSE di riferimento sia incrementato del 200%.

MetricStrategyBenchmark
Risk-Free Rate0.0%0.0%
Time in Market100.0%100.0%
Cumulative Return-29.7%180.68%
CAGR%-3.15%9.84%
Sharpe-0.160.55
Sortino-0.250.75
Sortino/√2-0.180.53
Max Drawdown-44.26%-38.59%
Longest DD Days3320742
Volatility (ann.)13.79%21.0%
R^20.720.72
Calmar-0.070.26
Skew2.44-0.77
Kurtosis39.217.84

Considerazioni

Il risalutato è tuttavia in linea con le strategie di tipo trend following, si ha infatti un ritardo tra l’inserimento nel mercato del trade e il cambio di direzione del mercato stesso. Maggiori sono i cambi di direzione e maggiore è la componente di perdita della strategia trend following. Una strategia che segue il trend performa malissimo in un mercato laterale. Con un po’ di pazienza potremmo calcolare l’efficienza di una strategia di inseguimento.

Chiusura con SuperTrend

Spesso l’indicatore SuperTrend viene proposto per chiudere le posizioni di una strategia. Proviamo quindi a usare il SuperTrend per chiudere le posizioni in una strategia di cui conosciamo le prestazioni, la solita basata sui Candle che uso in genere.

MetricStrategyBenchmark
Risk-Free Rate0.0%0.0%
Time in Market92.0%100.0%
Cumulative Return23.54%45.83%
CAGR%1.94%3.49%
Sharpe0.450.82
Sortino0.631.21
Sortino/√20.440.85
Max Drawdown-9.53%-6.46%
Longest DD Days1375461
Volatility (ann.)4.45%4.28%
R^20.410.41
Calmar0.20.54
Skew-0.450.04
Kurtosis7.213.51

Il peggioramento rispetto al comportamento della strategia pura è notevole, indice che l’utilizzo del SuperTrend come condizione di chiusura di una posizione non è la soluzione ottimale.

Stoploss

Lasciando le condizioni di uscita della strategia, e aggiungendo uno StopLoss basato su SuperTrend si ottengono queste prestazioni.

MetricStrategyBenchmark
Risk-Free Rate0.0%0.0%
Time in Market85.0%100.0%
Cumulative Return12.88%45.83%
CAGR%1.11%3.49%
Sharpe0.470.82
Sortino0.671.21
Sortino/√20.480.85
Max Drawdown-5.72%-6.46%
Longest DD Days1279461
Volatility (ann.)2.39%4.28%
R^20.490.49
Calmar0.190.54
Skew-0.130.04
Kurtosis6.613.51

Anche qui il benchmark, ossia la strategia di partenza, evidenza il decadimento delle prestazioni utilizzano il supertrend come stoploss. Da notare come le prestazioni della strategia si avvicinano in entrambi i casi, alle prestazioni “solo long” nell’utilizzo del SuperTrend, segno che prevale l’inefficienza della condizione di uscita rispetto alla condizione d’entrata.

Riferimenti

WP to LinkedIn Auto Publish Powered By : XYZScripts.com