Retorno mensal em estratégias PineScript

Autora:ChaoZhang, Data: 2022-05-06 23:19:37
Tags:Pivot

Eu não estou 100% satisfeito com a saída de desempenho da estratégia que recebo do TradingView. Muitas vezes eu quero ver algo que não está disponível por padrão. Mas com tabelas, você pode construir métricas adicionais e ferramentas para suas estratégias com bastante facilidade.

Este script irá apenas mostrar uma tabela com o desempenho mensal/anual do seu script. Muitos traders/investidores costumavam olhar para retornos assim. Também, pode ajudá-lo a identificar períodos de tempo em que sua estratégia teve um bom/ruim desempenho do que o esperado e tentar analisar melhor. O roteiro é muito simples e acredito que você pode facilmente aplicá-lo às suas próprias estratégias.

Disclaimer Lembre-se de que o desempenho passado pode não ser indicativo dos resultados futuros. Devido a vários fatores, incluindo a mudança das condições de mercado, a estratégia pode não funcionar tão bem como no backtesting histórico. Este post e o roteiro não fornecem nenhum conselho financeiro.

Revisão img


/*backtest
start: 2021-05-05 00:00:00
end: 2022-05-04 23:59:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy("Monthly Returns in PineScript Strategies", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 25, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.1)

// Inputs 
leftBars  = input(2,"leftBars")
rightBars = input(2,"rightBars")
prec      = input(2, title = "Return Precision")

// Pivot Points 
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

hprice = 0.0
hprice := not na(swh) ? swh : hprice[1]

lprice = 0.0
lprice := not na(swl) ? swl : lprice[1]

le = false
le := not na(swh) ? true : (le[1] and high > hprice ? false : le[1])

se = false
se := not na(swl) ? true : (se[1] and low < lprice ? false : se[1])

if (le)
	strategy.entry("PivRevLE", strategy.long, comment="PivRevLE")

if (se)
	strategy.entry("PivRevSE", strategy.short, comment="PivRevSE")

plot(hprice, color = color.green, linewidth = 2)
plot(lprice, color = color.red,   linewidth = 2)


Relacionados

Mais.