슈퍼트렌드 수익 전략

저자:차오장, 날짜: 2024-01-08 11:08:39
태그:

img

전반적인 설명

이 전략은 슈퍼 트렌드 지표를 사용하여 입구 지점을 결정하고 지표가 역전되면 길거나 짧게 이동합니다. 또한 다른 수준에서 이윤을 잠금하기 위해 2%, 5% 및 10%의 고정 수익으로 세 가지 수익 주문을 설정합니다.

전략 논리

이 전략은 트렌드 방향을 식별하기 위해 슈퍼트렌드 지표를 사용합니다. 슈퍼트렌드는 평균 진정한 범위와 곱셈 요인을 기반으로합니다. 가격이 상단 범위를 넘으면 과잉 구매 상태를 신호하고 가격이 하단 범위를 넘으면 과잉 판매 상태를 신호합니다. 따라서 전략은 엔트리를 결정하기 위해 슈퍼트렌드 방향으로 반전을 감지합니다.

특히, 슈퍼트렌드의 변화가 0보다 작을 때, 지표가 상향에서 아래로 역전되어 긴 신호를 생성한다는 것을 나타냅니다. 슈퍼트렌드의 변화가 0보다 크면, 지표가 아래에서 위로 역전되어 짧은 신호를 생성합니다. 긴 신호 또는 짧은 신호를 수신하면 입상 가격이 기록되고 주문이 제공됩니다.

이 전략은 또한 세 가지 영업 주문을 입시 가격의 2%, 5% 및 10%로 설정하여 고정된 목표 수익을 확보합니다. 이러한 주문의 비율은 각각 25%, 50% 및 25%로 설정됩니다. 입시 신호 이후, 이러한 영업 주문은 동시에 배치되어 다른 수준에서 수익을 얻습니다.

이점 분석

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

  1. 엔트리에 대한 슈퍼 트렌드를 사용하면 정확한 장기/단기 트렌드 반전 지점을 효과적으로 캡처합니다.

  2. 복수의 취득 비율은 다른 수준에서 이윤을 잠금하여 마취를 줄일 수 있습니다.

  3. 2%, 5% 및 10%의 보수적인 수익 목표가 더 큰 손실로 이어지는 이익의 과잉 확장을 피합니다.

  4. 단순하고 명확한 논리, 이해하기 쉽고 수정하기 쉬운, 초보자에게 적합합니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 부적절한 슈퍼트렌드 매개 변수는 회전 신호가 빠질 수 있어 정확하지 않은 항목으로 이어질 수 있습니다.

  2. 보수적인 수익 수준은 더 많은 수익을 올릴 기회를 놓칠 수 있습니다.

  3. 격차와 한계 움직임은 슈퍼트렌드가 조정되기 전에 정지되는 것을 유발할 수 있습니다.

  4. 스톱 로스 조건이 없는 것은 무제한 손실 가능성을 의미합니다.

개선 할 수 있는 분야

전략을 최적화 할 수있는 몇 가지 방법:

  1. 다른 슈퍼트렌드 매개 변수를 테스트하여 감수성을 향상시킵니다.

  2. 최대 손실을 제한하기 위해 Stop Loss를 추가합니다.

  3. 기호와 시간 틀에 따라 수익률과 양을 조정합니다.

  4. 범위를 제한하는 시장에서 과도한 거래를 피하기 위해 필터를 추가합니다.

  5. 거래당 위험을 낮추기 위해 기본 거래 크기를 조정하여 자본 사용을 최적화합니다.

요약

전략은 간단하고 실용적입니다. 엔트리 및 복수의 수익 주문을 사용하여 수익을 잠금하고 위험을 효과적으로 제어합니다. 그러나 향후 향상 방향을 제공하는 스톱을 추가하고 매개 변수를 최적화하는 등의 개선이 가능합니다. 요약하면이 전략은 초보자가 알고리즘 거래를 배우고 연습하는 데 적합합니다.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy( "Supertrend with TP", overlay=true )

// Supertrend Settings
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

// TP's
tp1Open = input.bool(true, "TP1")
tp1 = input.float(2.0, "TP Level (%)", step = 0.1) / 100
tp1Amount = input.int(25, "Amount (%)", step = 1)
tp2Open = input.bool(true, "TP2")
tp2 = input.float(5.0, "TP Level (%)", step = 0.1) / 100
tp2Amount = input.int(50, "Amount (%)", step = 1)
tp3Open = input.bool(true, "TP3")
tp3 = input.float(10.0, "TP Level (%)", step = 0.1) / 100
tp3Amount = input.int(25, "Amount (%)", step = 1)

[_, direction] = ta.supertrend(factor, atrPeriod)

entryPrice = 0.0
entryPrice := entryPrice[1]

if ta.change(direction) < 0
    strategy.entry("Long", strategy.long)
    entryPrice := close

if ta.change(direction) > 0
    strategy.entry("Short", strategy.short)
    entryPrice := close

if (tp1Open)
    strategy.exit ("TP1", from_entry="Long", limit=entryPrice * (1 + tp1), qty_percent=tp1Amount)
    strategy.exit ("TP1", from_entry="Short", limit=entryPrice * (1 - tp1), qty_percent=tp1Amount)

if (tp2Open)
    strategy.exit ("TP2", from_entry="Long", limit=entryPrice * (1 + tp2), qty_percent=tp2Amount)
    strategy.exit ("TP2", from_entry="Short", limit=entryPrice * (1 - tp2), qty_percent=tp2Amount)
    
if (tp3Open)    
    strategy.exit ("TP3", from_entry="Long", limit=entryPrice * (1 + tp3), qty_percent=tp3Amount)
    strategy.exit ("TP3", from_entry="Short", limit=entryPrice * (1 - tp3), qty_percent=tp3Amount)

더 많은