적응형 트리플 슈퍼 트렌드 전략


생성 날짜: 2024-01-26 16:33:37 마지막으로 수정됨: 2024-01-26 16:33:37
복사: 0 클릭수: 821
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

적응형 트리플 슈퍼 트렌드 전략

개요

자기 적응 트리플 슈퍼 트렌드 전략은 시장 추세를 추적하는 거래 방법이며, 잠재적인 시장 추세를 식별하고 수익을 창출하기 위해 세 개의 슈퍼 트렌드 지표의 힘을 결합합니다. 이 전략은 적응성과 정확성에 중점을 두며, 거래자에게 명확한 입출력 신호를 제공하면서 위험을 효과적으로 관리하는 것을 목표로합니다. 여러 개의 슈퍼 트렌드 지표와 정의된 매개 변수를 결합하여, 이 전략은 다양한 시장 조건에서 트렌드를 포착하기 위해 노력하고 있으며, 이는 전통적인 시장과 암호화폐 시장에서 수익 기회를 찾는 거래자에게 적합한 보편적인 도구입니다.

전략 원칙

자기 적응 트리플 슈퍼 트렌드 전략의 주요 아이디어는 여러 슈퍼 트렌드 지표와 결합하여 시장 추세를 식별하고, 추세가 일치 할 때 더 많이 입문하고, 추세가 역전 될 때 퇴출하는 것입니다.

특히, 이 전략은 다음과 같은 세 가지 슈퍼 트렌드 지표를 사용했습니다.

  1. 슈퍼트렌드 1: ATR 주기가 12이고, 인수는 3입니다.
  2. 슈퍼 트렌드 2: ATR 주기가 10이고, 인수는 1입니다.
  3. 슈퍼트렌드 3: ATR 주기가 11이고, 인수는 2입니다.

이 세 개의 슈퍼 트렌드 지표가 동시에 멀티 헤드 신호 (녹색) 를 표시 할 때, 전략은 특정 날짜 범위 (01 월 2023 년부터 10 월 2023 년 1 일까지) 에 더 많은 위치를 차지합니다. 어떤 슈퍼 트렌드 지표가 빈 머리 신호 (붉은) 를 표시 할 때, 전략은 무상 상태에서 멀티 헤드 포지션으로 빠져 나갑니다. 또한 전략은 수익을 잠금하고 위험을 관리하기 위해 10%의 중지 및 1%의 중지 지점을 설정합니다.

그래서, 이 전략의 구체적인 거래 논리는 다음과 같습니다.

  1. 3개의 슈퍼 트렌드 지표가 동시에 멀티 헤드 신호를 표시할 때, 날짜 범위 내에서 더 많은 포지션을 열고
  2. 수퍼 트렌드 지표의 역전 신호를 감시하는 경우
  3. 만약 어떤 슈퍼 트렌드 지표가 공백으로 변하면, 평점 신호를 쏘아 올리고, 더 많은 포지션을 탈퇴합니다.
  4. 10퍼센트의 스톱 또는 1퍼센트의 스톱으로 포지션을 종료합니다.

이러한 거래 논리를 통해, 전략은 특정 날짜 범위 내에서 다중 트렌드에서 오는 이익을 포착하는 것을 목표로 하며, 동시에 스톱로스를 통해 하향 위험을 통제합니다.

우위 분석

트리플 슈퍼 트렌드에 적응하는 전략은 다음과 같은 몇 가지 주요 장점을 가지고 있다:

  1. 여러 슈퍼 트렌드 지표와 결합하여 시장의 흐름을 더 정확하게 판단하여 잘못된 신호를 줄일 수 있습니다.
  2. 슈퍼 트렌드 자체는 파동 소음을 차단하여 거래에 대한 흔들림을 줄일 수 있습니다.
  3. 매개 변수 설정으로 다양한 시장 환경에 적응할 수 있습니다.
  4. 동시에 정지 및 중지 손실을 설정하여 트렌드 반전 시 적시에 중지하여 DLayer의 과잉 위험을 피할 수 있습니다.
  5. 불시장에서 초과 수익을 얻을 수 있고, 곰시장에서 큰 하락을 피할 수 있습니다.

전체적으로, 이 전략은 핵심 트렌드 추적 전략으로, 수동 거래를 보조하는 데 적합합니다. 그것은 높은 품질의 거래 신호를 제공 할 수 있으며, 큰 추세에서 수익을 창출하는 동시에 위험을 제어하는 것이 양적 거래의 중요한 도구입니다.

위험 분석

트리플 슈퍼 트렌드 전략에 적응하는 데는 장점이 있지만, 위험도 있습니다.

  1. 시장의 큰 흔들림이 슈퍼 트렌드 지표의 잘못된 신호를 유발할 수 있습니다.
  2. 잘못된 정책 매개 변수 설정은 정책 성능에도 영향을 미칠 수 있습니다.
  3. 너무 작은 Stop Loss 설정으로 위험을 효과적으로 제어할 수 없습니다.
  4. 많은 사람들이 잘못된 시간에 입점하면 손실이 발생할 수 있습니다.

이러한 위험은 다음과 같은 방법으로 완화될 수 있습니다.

  1. 다른 지표와 함께 시장의 변동성과 경향성을 판단하는 것
  2. 다른 시장 환경에 맞게 최적화된 매개 변수 설정
  3. 제약이 유효하도록 제약폭을 적절히 확대합니다.
  4. 더 안정적인 지표로 특정 입국 시기를 결정합니다.

최적화 방향

일반적인 트렌드 추적 전략으로서, 트리플 슈퍼 트렌드 전략에 적응할 수 있는 많은 최적화 방안이 있습니다. 주요 방향은 다음과 같습니다:

  1. 슈퍼 트렌드 지표의 변수를 동적으로 최적화하여 시장에 더 잘 적응하도록 함
  2. 입학 시기를 판단하는 다른 보조 지표를 추가합니다.
  3. 피드백 결과에 따라 스톱 손실 설정을 더 최적화합니다.
  4. 트렌드 방향을 판단하기 위해 초고속 트렌드를 입력하는 신호로 브레이크를 시도합니다.
  5. 정책을 함수로 포괄하여 다른 정책에서 호출할 수 있습니다.

이러한 최적화를 통해 전략은 더 많은 시장 환경에서 안정적인 성능을 유지하여 더 높은 수익 인자를 얻을 수 있습니다. 이것은 또한 미래의 연구 방향입니다.

요약하다

자기 적응 트리플 슈퍼 트렌드 전략은 매우 가치있는 양적 전략이다. 그것은 시장의 추세를 판단하는 여러 슈퍼 트렌드 지표를 결합하고, 스톱 및 손실 제어 위험을 설정하여 시장의 큰 추세를 안정적으로 추적하여 초과 수익을 얻도록 한다. 일부 잠재적인 위험이 있음에도 불구하고, 변수 최적화 및 보조 지표를 통해 이러한 위험을 잘 줄일 수 있다. 이 전략은 핵심 전략으로 독자적으로 사용할 수 있으며, 다른 전략과 함께 사용할 수 있다.

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

//@version=5
strategy("Custom Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, shorttitle="Supertrend Strategy")

// Define the parameters for Supertrend 1
factor1 = input.float(3.0, "Factor 1", step = 0.01)
atrPeriod1 = input(12, "ATR Length 1")

// Define the parameters for Supertrend 2
factor2 = input.float(1.0, "Factor 2", step = 0.01)
atrPeriod2 = input(10, "ATR Length 2")

// Define the parameters for Supertrend 3
factor3 = input.float(2.0, "Factor 3", step = 0.01)
atrPeriod3 = input(11, "ATR Length 3")

[_, direction1] = ta.supertrend(factor1, atrPeriod1)
[_, direction2] = ta.supertrend(factor2, atrPeriod2)
[_, direction3] = ta.supertrend(factor3, atrPeriod3)

// Define the start and end dates as Unix timestamps (in seconds)
start_date = timestamp("2023-01-01T00:00:00")
end_date = timestamp("2023-10-01T00:00:00")

// Determine Buy and Sell conditions within the specified date range
in_date_range = true
buy_condition = direction1 > 0 and direction2 > 0 and direction3 > 0 and in_date_range
sell_condition = direction1 < 0 or direction2 < 0 or direction3 < 0

// Track the position with a variable
var isLong = false

if buy_condition and not isLong
    strategy.entry("Long Entry", strategy.long)
    isLong := true

if sell_condition and isLong
    // Define take profit and stop loss percentages
    take_profit_percentage = 10 // Increased to 10%
    stop_loss_percentage = 1

    // Calculate take profit and stop loss levels
    take_profit_level = close * (1 + take_profit_percentage / 100)
    stop_loss_level = close * (1 - stop_loss_percentage / 100)

    // Exit the long position with take profit and stop loss
    strategy.exit("Take Profit/Stop Loss", from_entry="Long Entry", limit=take_profit_level, stop=stop_loss_level)
    isLong := false