Chiến lược này nhằm mục đích giải quyết vấn đề rằng Pine Script không thể đặt đòn bẩy trong quá trình kiểm tra lại để đạt được lãi suất hỗn hợp với đòn bẩy. Chiến lược tính toán kích thước vị trí một cách năng động dựa trên vốn chính chiến lược, tỷ lệ đòn bẩy đặt và giá đóng.
Lev = math.max(math.round(strategy.equity * leverage / close), 0)
, làm cho nó tương xứng với vốn chủ sở hữu và đòn bẩyChiến lược này thực hiện cài đặt đòn bẩy trong Pine Script, giải quyết vấn đề rằng backtesting không thể mô phỏng đòn bẩy, tính toán kích thước vị trí liên kết với vốn chủ sở hữu để đạt được lãi suất hỗn hợp với đòn bẩy.
/*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)