Backtest of the week: Ethereum Interessante backtesting su Ethereum ( BINANCE:ETHUSDT ).
Il backtesting è stato effettuato utilizzando il nostro algoritmo open source iMoku
La strategia utilizzata è una Kumo Twist .
Parametri utilizzati:
Tenkan Sen Lenght: 10
Kijun Sen Lenght: 10
Leading Span B Lenght: 60
Lagging Span: 13
Timeframe di analisi: 4H
Costi di transazione: 0.10%
I risultati offerti dal backtesting sono quantitativamente migliori rispetto al rendimento dell'asset, possiamo infatti notare 89 trades effettuati all'interno del periodo di analisi (20 Settembre 2017 - Oggi). Il ritorno in termini di performance percentuale si attesta a 404.38%, con un drawdown massimo del 22% circa. Analizzando il backtesting con il rendimento buy and hold possiamo notare una minore volatilità e una maggiore solidità dell'equity da parte della strategia, rispetto all'asset di riferimento. Un approccio buy and hold avrebbe generato il 60% in più in termini di rendimento, surplus che non giustifica in ogni modo il rischio derivante dall'alta volatilità e dalla mancata stabilità dell'equity line. In conclusione, possiamo ritenere quantitativamente migliore il trading workflow basato sulla strategia rispetto all'approccio buy and hold di questo asset.
Algorithm
Come impostare uno script strategy con Pine Script Benvenuto a questo primo tutorial che vuole aiutare trader e investitori a comprendere al meglio il potente linguaggio di programmazione Pine Script.
Pine Script permette di utilizzare due forme differenti di script; strategy e indicator. Ciascuna ha le proprie caratteristiche tecniche che devono essere comprese prima di iniziare a sviluppare il proprio progetto.
Che cos'è uno script ?
In generale nel mondo della programmazione uno script è un insieme di stringhe di codice che permette di compiere determinate funzioni nella vita reale, possiamo quindi considerare uno script come un piccolo software che compie determinate azioni. In questo caso gli script programmabili su Trading View permettono di compiere funzioni e azioni inerenti al mondo del trading e della finanza.
In Pine Script esistono due tipologie di script:
1) Strategy: con funzioni e variabili dedicate permettono di generare un backtesting per una determinata strategia.
2) Indicator: permettono di creare visual tool e vengono spesso utilizzati per creare mini applicazioni, tabelle e indicatori personalizzabili.
Nel tutorial di oggi analizzeremo gli script strategy .
Qui di seguito trovi un esempio di codice introduttivo, il codice si riferisce solo alla parte iniziale di uno script di tipo strategy e ti aiuterà a comprendere al meglio come impostare e configurare la parte iniziale del tuo script.
//@version=5
strategy(title = " Strategy Tutorial - The Quant Science ™ ",
overlay = false,
initial_capital = 1000,
currency = currency.EUR,
commission_type = strategy.commission.percent,
commission_value = 0.03,
slippage = 10,
default_qty_value = 100,
default_qty_type = strategy.percent_of_equity,
process_orders_on_close = true)
Come avrai notato, la parte iniziale di uno script inizia sempre con la dichiarazione della versione di Pine Script che stiamo utilizzando.
Nel nostro esempio utilizziamo l'ultima versione rilasciata da Trading View, la versione 5.
Quindi dichiareremo la versione con: //@version=5
In seguito alla dichiarazione della versione utilizzata, andremo a dichiarare la tipologia di script che vogliamo utilizzare, in questo caso inseriremo: strategy() .
All' interno delle parentesi doppie possiamo definire e aggiungere caratteristiche di base al nostro script. In questo esempio non abbiamo riportato tutte le variabili disponibili da includere all' interno di una strategia ma solo alcune. Per visualizzare tutte le variabili puoi consultare la guida Pine Script V5 oppure semplicemente fare doppio click su "strategy" dalla tua console di Trading View.
Iniziamo ad arricchire le funzionalità base del nostro script strategy:
title : si riferisce al nome che vogliamo assegnare al nostro script e tramite il quale gli utenti potranno ricercarlo all' interno della libreria di Trading View.
overlay : permette di proiettare il nostro indicatore, impostato su true l' indicatore sarà applicato sul grafico, impostato su false l' indicatore sarà proiettato sotto al grafico.
initial_capital : si riferisce all'ammontare di capitale iniziale che utilizzerai per la tua strategia. In questo esempio impostiamo 1000.
currency : si riferisce alla valuta base con cui desideri calcolare le performance della tua strategia, in questo caso scegliamo come moneta EUR (Euro). Trading View offre la possibilità di scegliere una vasta gamma di valute base, puoi trovare maggiori informazioni al riguardo all' interno della guida.
Per impostare la valuta Euro quindi inseriremo: currency.EUR.
commission_type : si riferisce al modo in cui vogliamo calcolare le commissioni,
Possiamo scegliere tre differenti tipologie di calcolo: strategy.commission.percent , strategy.commission.cash_per_contract , strategy.commission.cash_per_order . Di default lo script strategy calcola le commissioni in maniera percentuale, se non viene dichiarato un altro metodo.
commission_value : si riferisce al valore della commissione che il tuo broker applica a ciascun trade, in questo esempio utilizziamo Kucoin Exchange che applica una commissione dello 0.03% per l' apertura e 0.03% per la chiusura di ogni singolo trade.
slippage : è espresso in tick, questo valore viene aggiunto o sottratto al prezzo degli ordini market/stop per rendere il prezzo meno favorevole per la strategia, creando così un backtesting più reale. Nel nostro esempio impostiamo a 10 tick il nostro slippage.
default_qty_value : si riferisce alla quantità da investire ad ogni singolo trade, in questo caso investiamo il 100% del capitale per ogni singolo trade.
default_qty_type : si riferisce al tipo di calcolo con cui misurare il capitale investito per ogni singolo trade, nel nostro esempio dichiariamo
strategy.percent_of_equity che si riferisce al calcolo percentuale (avendo inserito 100 precedentemente).
process_orders_on_close : se impostato su true , genera un ulteriore tentativo di esecuzione degli ordini dopo la chiusura di una barra. Se gli ordini sono a mercato, lo script li esegue prima dell'apertura della barra successiva. Se gli ordini dipendono dal prezzo, saranno eseguiti solo se le condizioni di prezzo sono soddisfatte. Questa opzione è utile se si desidera chiudere le posizioni nella barra corrente. L'opzione predefinita è false . Per il nostro esempio scegliamo true .
Abbiamo concluso il nostro breve tutorial sulla dichiarazione di uno script di tipo strategy . In questo esempio abbiamo mostrato in maniera molto veloce alcune delle funzioni base con cui impostare il tuo algoritmo. Puoi trovare maggiori informazioni e tutte le funzioni disponibili consultando il manuale per il linguaggio Pine Script.