리소스 로딩... 로딩...

유출 및 목표 수익에 기반한 긴 네트워크 전략

저자:차오장, 날짜: 2025-01-06 16:29:17
태그:GRIDDCATPSL수익률

img

전반적인 설명

이 전략은 가격 하락에 따라 포지션을 추가하고 일정한 수익 목표에 도달하면 포지션을 닫는 그리드 거래 시스템이다. 핵심 논리는 시장이 미리 설정된 비율로 떨어지면 구매하고 가격이 목표 이익으로 반등되면 모든 포지션을 폐쇄하고이 과정을 반복적으로 실행하여 수익을 창출하는 것입니다. 이 전략은 특히 변동 시장에서 단기 반등을 포착하는 데 적합합니다.

전략 원칙

이 전략은 네트워크 거래와 방향적인 영업의 결합 메커니즘을 사용합니다.

  1. 초기 위치: 설정된 시작 시간 이후, 시스템은 트리거될 때 현재 가격으로 첫 번째 위치를 차지합니다.
  2. 포지션 추가 메커니즘: 가격이 초기 입시 가격에 비해 미리 설정된 비율 (5%) 을 넘어 떨어지면 추가 구매가 시작됩니다.
  3. 포지션 클로저 메커니즘: 가격이 초기 입시 가격에 비해 미리 설정된 수익 목표치 (5%) 를 초과하면 시스템은 모든 포지션을 닫습니다.
  4. 통계 추적: 이 시스템은 거래 수와 누적 수익을 실시간으로 추적하여 차트에 동적으로 표시합니다.

전략적 장점

  1. 높은 자동화: 전략은 완전히 체계적이며 수동 개입이 필요하지 않으며 24/7 작동 할 수 있습니다.
  2. 리스크 다각화: 래치 포지션 구축 방식은 단일 엔트리 리스크를 효과적으로 감소시킵니다.
  3. 명확한 수익 목표: 고정된 수익 목표가 달성되면 즉각적인 수익을 보장합니다.
  4. 높은 적응력: 매개 변수 조정으로 다른 시장 환경과 거래 도구에 적응할 수 있습니다.
  5. 강력한 실행: 명확한 전략 논리는 주관적 감정적 영향을 제거합니다.

전략 위험

  1. 트렌드 위험: 지속적으로 감소하는 시장에서 반복적인 포지션 추가는 손실을 증가시킬 수 있습니다.
  2. 자본 관리 위험: 적절한 위치 통제 없이는 과도한 위치 추가가 높은 자본 활용으로 이어질 수 있습니다.
  3. 미끄러짐 위험: 변동적인 시장 조건에서 심각한 미끄러짐은 전략 성과에 영향을 줄 수 있습니다.
  4. 매개 변수 민감성: 전략의 효과는 매개 변수 설정에 민감하며, 다른 시장 환경에서 적절한 조정을 요구합니다.

전략 최적화 방향

  1. 동적 스톱 로스: ATR 또는 변동성 기반의 동적 스톱 로스 메커니즘을 추가하여 상당한 마감을 방지하는 것이 좋습니다.
  2. 포지션 관리: 보다 합리적인 자본 활용을 위해 주식 기반의 동적 포지션 관리를 도입합니다.
  3. 시장 선택: 트렌드 지표를 추가하여 트렌드 시장에서 전략 운영을 일시 중지합니다.
  4. 수익 목표 최적화: 시장 변동성에 따라 스스로 조정되는 동적 수익 목표를 설계합니다.
  5. 위치 추가 최적화: 과도한 초기 위치를 피하기 위해 점진적 위치 크기를 설계하십시오.

요약

이 전략은 구조적으로 간단하지만 실용적인 그리드 트레이딩 전략으로, 미리 설정된 가격 하락에 대량으로 포지션을 구축하고 수익 목표에 도달할 때 균일하게 포지션을 닫는다. 전략의 핵심 장점은 실행 확실성과 위험 다각화에 있다. 그러나 시장 환경 선택과 매개 변수 최적화는 구현 과정에서 매우 중요하다. 동적 스톱 로스를 추가하고 포지션 관리를 개선함으로써 상당한 최적화 잠재력이 있다. 라이브 트레이딩을 위해 실제 시장 조건에 기반한 철저한 백테스팅과 매개 변수 조정이 권장된다.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Down 5%, Sell at 5% Profit", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
initial_date = input(timestamp("2024-01-01 00:00:00"), title="Initial Purchase Date")
profit_target = input.float(5.0, title="Profit Target (%)", minval=0.1)   // Target profit percentage
rebuy_drop = input.float(5.0, title="Rebuy Drop (%)", minval=0.1)        // Drop percentage to rebuy

// Variables
var float initial_price = na             // Initial purchase price
var int entries = 0                      // Count of entries
var float total_profit = 0               // Cumulative profit
var bool active_trade = false            // Whether an active trade exists

// Entry Condition: Buy on or after the initial date
if not active_trade
    initial_price := close
    strategy.entry("Buy", strategy.long)
    entries += 1
    active_trade := true

// Rebuy Condition: Buy if price drops 5% or more from the initial price
rebuy_price = initial_price * (1 - rebuy_drop / 100)
if active_trade and close <= rebuy_price
    strategy.entry("Rebuy", strategy.long)
    entries += 1

// Exit Condition: Sell if the price gives a 5% profit on the initial investment
target_price = initial_price * (1 + profit_target / 100)
if active_trade and close >= target_price
    strategy.close_all(comment="Profit Target Hit")
    active_trade := false
    total_profit += profit_target

// Display information on the chart
plotshape(series=close >= target_price, title="Target Hit", style=shape.labelup, location=location.absolute, color=color.green, text="Sell")
plotshape(series=close <= rebuy_price, title="Rebuy", style=shape.labeldown, location=location.absolute, color=color.red, text="Rebuy")

// Draw statistics on the chart
var label stats_label = na
if (na(stats_label))
    stats_label := label.new(x=bar_index, y=close, text="", style=label.style_none, size=size.small)

label.set_xy(stats_label, bar_index, close)
label.set_text(stats_label, "Entries: " + str.tostring(entries) + "\nTotal Profit: " + str.tostring(total_profit, "#.##") + "%")


관련

더 많은