Pine 스크립트에서 레버리지 전략 설정


생성 날짜: 2023-12-29 10:46:35 마지막으로 수정됨: 2023-12-29 10:46:35
복사: 0 클릭수: 1170
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

Pine 스크립트에서 레버리지 전략 설정

개요

이 전략은 피네 스크립트 재검토시 레버리지 설정이 불가능한 문제를 해결하기 위해 고안되었습니다. 전략은 전략의 이득, 설정된 레버리지 배수 및 종료 가격을 계산하여 포지션을 열 수 있는 수를 동적으로 계산합니다.

전략 원칙

  1. 정밀도 세팅, 포장수 수를 제어하는 정밀도
  2. 레버리지 배수 (leverage) 가 1배로 설정되어 있습니다.
  3. 포지션 개시자 수를 계산합니다.Lev = math.max(math.round(strategy.equity * leverage / close), 0)이자율과 리베이트에 비례해서
  4. 입점: RSI 지표가 낮은 지점에서 30을 넘어서면 더 많이; 높은 지점에서 70을 넘어서면 더 많이
  5. 계산된 수에 따라 Lev 주문

우위 분석

  1. 파인 스크립트가 레버를 설정하지 못하는 문제를 해결합니다.
  2. 지분 변화와 포지셔너 수에 비례하여 리베이트 수익을 얻습니다.
  3. RSI 지표가 필터링되어 무의미한 거래가 방지됩니다.
  4. 손수 계산 정밀도 (precision) 는 다양한 요구에 맞게 조정할 수 있습니다.

위험 분석

  1. 지렛대가 너무 높으면 부실할 수 있습니다.
  2. 레버리지를 적절하게 조정하고, 포지션 수를 늘리고, 위험을 통제해야 합니다.

최적화 방향

  1. 다양한 변수 아래의 안정성을 테스트할 수 있다
  2. 손해 방지 전략과 결합하여 위험을 더욱 제어할 수 있습니다.
  3. 다중 요소 모델을 고려하여 전략의 효과를 높일 수 있습니다.

요약하다

이 전략은 파인 스크립트에서 레버리지 설정을 구현하고, 리테크를 통해 레버리지 모의 불가능 문제를 해결하고, 포지션 개설자 수와 권리 이익의 연계를 계산하고, 레버리지 수익을 완료한다. 이 전략은 간단하고 효과적이며, 추가적으로 최적화할 수 있으며, 학습할 가치가 있다.

전략 소스 코드
/*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)