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.
Lev = math.max(math.round(strategy.equity * leverage / close), 0)
, le rendre proportionnel au capital et à l'effet de levierCette 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)