Stratégie RSI à effet de levier dans le script Pine

Auteur:ChaoZhang est là., Date: 2023-12-29 à 10 h 46 min 35 s
Les étiquettes:

img

Résumé

Cette stratégie vise à résoudre le problème selon lequel Pine Script ne peut pas définir l'effet de levier pendant le backtesting pour atteindre l'intérêt composé avec l'effet de levier.

La logique de la stratégie

  1. Régler la précision de précision pour contrôler la précision de la taille de la position
  2. Le taux de levier est fixé à 1x.
  3. Calcul de la taille de la position:Lev = math.max(math.round(strategy.equity * leverage / close), 0), le rendre proportionnel au capital et à l'effet de levier
  4. Signal d'entrée: long lorsque le RSI dépasse 30 depuis le bas; court lorsque le RSI dépasse 70 depuis le haut
  5. Placez la commande avec la taille calculée Lev

Analyse des avantages

  1. Résoudre le problème que Pine Script ne peut pas définir levier
  2. La taille de la position change proportionnellement aux variations de capitaux propres, ce qui permet d'obtenir des intérêts composés avec effet de levier
  3. RSI filtré, évitant les transactions inutiles
  4. La précision de la précision est réglable pour répondre à différentes exigences

Analyse des risques

  1. L'effet de levier excessif peut facilement entraîner une liquidation
  2. Nécessité d'ajuster correctement l'effet de levier et la taille de la position pour contrôler le risque

Direction de l'optimisation

  1. Peut tester la stabilité sous différents paramètres
  2. Peut intégrer un stop loss pour contrôler davantage le risque
  3. Peut envisager un modèle multifactoriel pour améliorer les performances de la stratégie

Résumé

Cette stratégie implémente le réglage de l'effet de levier dans Pine Script, résolvant le problème que le backtesting ne peut pas simuler l'effet de levier, calcule la taille de la position liée à l'équité pour atteindre un intérêt composé avec effet de levier.


/*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)

Plus de