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.
Lev = math.max(math.round(strategy.equity * leverage / close), 0)
, torná-la proporcional ao capital próprio e à alavancagemEsta 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)