Estratégia de RSI alavancada em Pine Script

Autora:ChaoZhang, Data: 29 de dezembro de 2023 às 10:46:35
Tags:

img

Resumo

Esta estratégia visa resolver o problema de que o Pine Script não pode definir alavancagem durante o backtesting para alcançar juros compostos com alavancagem.

Estratégia lógica

  1. Configurar a precisão de precisão para controlar a precisão do tamanho da posição
  2. Definição da taxa de alavancagem alavancagem, por defeito é 1x
  3. Calcular o tamanho da posição:Lev = math.max(math.round(strategy.equity * leverage / close), 0), torná-la proporcional ao capital próprio e à alavancagem
  4. Signal de entrada: longo quando o RSI ultrapassa 30 a partir de baixo; curto quando o RSI ultrapassa 70 a partir de cima
  5. Ordem de colocação com tamanho calculado Lev

Análise das vantagens

  1. Resolver o problema de que o Pine Script não pode definir alavancagem
  2. O tamanho da posição varia proporcionalmente às alterações do capital próprio, atingindo juros compostos com alavancagem
  3. RSI filtrado, evitando negociações desnecessárias
  4. Precisão de precisão é ajustável para atender a diferentes requisitos

Análise de riscos

  1. A alavancagem excessiva pode facilmente causar liquidação
  2. Necessidade de ajustar adequadamente a alavancagem e o tamanho da posição para controlar o risco

Direcção de otimização

  1. Pode testar a estabilidade sob diferentes parâmetros
  2. Pode incorporar o stop loss para controlar ainda mais o risco
  3. Pode considerar um modelo multifator para melhorar o desempenho da estratégia

Resumo

Esta estratégia implementa a configuração de alavancagem em Pine Script, resolvendo o problema de que o backtesting não pode simular alavancagem, calcula o tamanho da posição ligada ao patrimônio para alcançar juros compostos com alavancagem.


/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RingsCherrY

//@version=5
strategy("How to use Leverage in PineScript", overlay=true, pyramiding=1, initial_capital=1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.04)

//////////////////////////////////////////
////////////////Indicators////////////////
//////////////////////////////////////////

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

//////////////////////////////////////////
/////////////////Leverage/////////////////
//////////////////////////////////////////


//The number of decimal places for each position opening, i.e., the accuracy
precision = input.int(1,title='Precision')

//Leverage, the default is 1, here is not recommended to open a high leverage

leverage = input.int(1,title='Leverage',minval = 1, maxval = 100 ,step = 1)

//Calculate the number of open contracts, here using equity for calculation, considering that everyone compound interest is used for trading equity
Lev = math.max(math.round(strategy.equity * leverage  / close , precision), 0)

if (not na(vrsi))
	if (co)
		strategy.entry("RsiLE", strategy.long,qty = Lev, comment="RsiLE")
	if (cu)
		strategy.entry("RsiSE", strategy.short,qty = Lev, comment="RsiSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Mais.