Configuración de una estrategia de apalancamiento en el script Pine


Fecha de creación: 2023-12-29 10:46:35 Última modificación: 2023-12-29 10:46:35
Copiar: 0 Número de Visitas: 1170
1
Seguir
1621
Seguidores

Configuración de una estrategia de apalancamiento en el script Pine

Descripción general

Esta estrategia tiene como objetivo resolver el problema de la imposibilidad de establecer el apalancamiento en la retrospectiva del guión de Pine, para obtener ganancias de apalancamiento. La estrategia calcula el derecho de apalancamiento de la estrategia, el multiplicador de apalancamiento establecido y el precio de cierre, y calcula dinámicamente el número de posiciones abiertas.

Principio de estrategia

  1. Precisión de ajuste, control de la precisión del número de jugadores
  2. Configuración de un multiplicador de apalancamiento, 1 por defecto
  3. Calcular el número de jugadores que han abierto una posición:Lev = math.max(math.round(strategy.equity * leverage / close), 0)Es decir, que se proporcione a los intereses y el apalancamiento.
  4. Entrada: hacer más cuando el indicador RSI se rompe 30 desde el nivel bajo hacia arriba; hacer vacío cuando el nivel alto se rompe 70 hacia abajo
  5. Lev en el orden de la cantidad calculada de manos

Análisis de las ventajas

  1. Soluciona el problema de que el script de Pine no puede configurar la palanca
  2. Cambios en los derechos y intereses en relación con el número de titulares de posiciones, con un aumento de la ganancia por el apalancamiento
  3. El RSI se filtra para evitar transacciones sin sentido
  4. La precisión de cálculo de la mano se puede ajustar para satisfacer diferentes necesidades

Análisis de riesgos

  1. El apalancamiento es demasiado alto y la posición puede explotar.
  2. Ajuste adecuado de la palanca, el número de jugadores y el control del riesgo

Dirección de optimización

  1. Estabilidad bajo diferentes parámetros
  2. Se puede combinar con estrategias de stop loss para controlar aún más el riesgo
  3. Modelos multifactoriales para mejorar la eficacia de las estrategias

Resumir

Esta estrategia implementa la configuración de la palanca en el guión Pine, resuelve el problema de que la retroalimentación no puede simular la palanca, calcula la relación entre el número de postores abiertos y el derecho y el interés, y completa la recuperación de la palanca. La estrategia es simple y efectiva, se puede optimizar aún más y vale la pena aprenderla.

Código Fuente de la Estrategia
/*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)