동적 위험 조정 레버리지 거래 시스템


생성 날짜: 2023-10-16 16:00:52 마지막으로 수정됨: 2023-10-16 16:00:52
복사: 0 클릭수: 774
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

동적 위험 조정 레버리지 거래 시스템

개요

이 거래 체계는 다이내믹 리스크 조정 레버리지 거래 시스템이라고 불리며, 현재 시장의 변동율에 따라 거래를 관리하기 위해 고안되었다. 이 시스템은 ATR (평균 실제 범위) 지표에 따라 목표 포지션 개수를 계산하고 그에 따라 레버리지를 조정한다. 이 시스템은 피라미드 포지션 개설 방식을 채택하여 동시에 여러 포지션을 열 수 있다.

전략 원칙

이 시스템은 다음과 같은 단계로 진행됩니다.

  1. 14일 ATR 주기의 ATR값을 계산하고, 현재 종료 가격으로 나누어 표준화한다.

  2. 표준화된 ATR의 100일 간단한 이동 평균 ((SMA) 을 계산한다.

  3. 표준화된 ATR과 100일 SMA의 비율을 계산한다.

  4. 비율의 역수 ((2 / 비율) 에 따라 목표 레버리지를 결정한다.

  5. 목표 레버리지를 5로 곱하여 목표 포지션 수를 계산합니다.

  6. 목표 포지션 개시량과 현재 포지션 개시량을 차트에 그려보세요.

  7. 구매 기회가 있는지 확인하기 (현재 포지션 개설수가 목표 수보다 적다면) 또는 매각 기회가 있는지 확인하기 (현재 포지션 개설수가 목표 수보다 많다면) 더하기 1) .

  8. 구매할 기회가 있다면, 더 많은 상표를 작성하고 OpenTrades 배열에 거래를 추가하십시오.

  9. 만약 평점 기회가 있고 openTrades 배열에 거래가 있다면, 최신 거래를 평정하고 배열에서 삭제한다.

이 시스템은 포지션 개시 수와 레버리지를 동적으로 조정하여 시장의 추세를 잡기 위해 고안되었으며, 포지션 개시 상황을 배열로 추적하여 단일 거래의 개시 가격을 더 잘 제어 할 수 있습니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 동적으로 레버리지와 포지션 수를 조정하여 시장의 변동률 변화에 따라 위험 틈을 조정할 수 있다. 변동률이 낮을 때 레버리지와 포지션 수를 늘리고, 변동률이 높을 때 레버리지와 포지션 수를 줄여서 위험을 효과적으로 제어한다.

  2. ATR 지수를 사용하여 목표 포지션 수를 계산하는 지표는 시장의 변동성을 반영할 수 있으며, 포지션을 동적으로 조정하는 합리적인 지표입니다.

  3. 피라미드 방식의 포지션으로 여러 포지션을 동시에 열면 트렌드에서 수익을 얻을 수 있다.

  4. 각 포지션 개시 거래에 대해 배열을 사용하여 개별 거래의 평준화를 명확하게 제어하여 불필요한 역작업을 피할 수 있습니다.

  5. 이 전략은 적은 매개 변수를 가지고 있으며, 구현 및 조작이 쉽다.

  6. 전략이 명확하고, 코드가 합리적으로 구성되어 있으며, 최적화 및 반복이 용이합니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. ATR 지표는 과거의 변동성만을 반영하며, 미래의 변동률 변화는 예측할 수 없으며, 리버리지 조정이 부적절하게 될 수 있습니다.

  2. 피라미드 방식은 트렌드가 반전될 때 손실이 쌓일 수 있다.

  3. 배열기록 포지션 열기는 단순한 포지션 열기 작업에만 적합하며, 포지션 열기 논리가 더 복잡하면 더 복잡한 데이터 구조가 필요합니다.

  4. 목표 레버리지와 포지션 수를 설정하는 것은 품종 특성에 따라 조정해야 하며, 특정 고정 매개 변수에 국한되는 것은 바람직하지 않다.

  5. 단일 지표는 오해의 소지가 있으며, 다른 변동률 지표 또는 기계 학습 알고리즘을 결합하여 안정성을 향상시킬 수 있습니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 손해 중지 전략을 추가하고, 손실이 스톱포인트에 도달했을 때 적극적으로 손해를 중지합니다.

  2. 지표 변수를 최적화하고, 다른 ATR 주기 변수의 효과를 테스트한다.

  3. 다른 포지션 개설 전략을 시도해 보세요.

  4. 부린 밴드 WIDTH, KD, RSI 등과 같은 다른 변동성을 측정하는 지표를 추가하여 조합으로 사용한다.

  5. 기계 학습 방법을 사용하여 변동률을 예측하고, simplex smoothing 방식을 대체한다.

  6. 포지션 개설 수를 최적화하기 위한 계산 방법은 ATR 곱수 또는 변동률 함수 등의 방법을 사용할 수 있다.

  7. 포지션 개시의 가격, 시간 등과 같은 자세한 정보를 기록하여 전략 분석 및 최적화를 수행합니다.

  8. 매개 변수 최적화 기능을 추가하여 최적의 매개 변수 조합을 자동으로 최적화합니다.

요약하다

이 전략은 ATR의 동적 조정 레버리지와 개시 수를 기반으로, 트렌드에서 리스크 렛 조정, 특정 장점이 있다. 그러나 또한 파라미터를 설정하는 어려움, 지표 최적화 공간과 같은 문제가 더 이상 최적화 가치가 있다. 전체적으로, 이 전략은 아이디어가 명확하고, 조작이 쉽고 최적화 가능하며, 깊이 있는 연구 응용 가치가 있다.

전략 소스 코드
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)

atr = ta.atr(14) / close
avg_atr = ta.sma(atr,100)
ratio = atr / avg_atr

targetLeverage = 2 / ratio
targetOpentrades = 5 * targetLeverage

plot(targetOpentrades)
plot(strategy.opentrades)
isBuy = strategy.opentrades < targetOpentrades
isClose = strategy.opentrades > targetOpentrades + 1

var string[] openTrades = array.new_string(0)

if(isBuy)
    strategy.entry("Buy"+str.tostring(array.size(openTrades)),strategy.long)
    array.push(openTrades, "Buy" + str.tostring(array.size(openTrades)))

if(isClose)
    if array.size(openTrades) > 0
        strategy.close(array.get(openTrades, array.size(openTrades) - 1))
        array.pop(openTrades)