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

윌리엄 알리거터 이동 평균 트렌드 캐처 전략

저자:차오장, 날짜: 2024-05-17 10:52:19
태그:MAEMASMMA

img

전반적인 설명

윌리엄 알리거터 이동 평균 트렌드 캐처 전략 (William Alligator Moving Average Trend Catcher Strategy) 은 윌리엄 알리거터 지표와 이동 평균을 결합한 트렌드 추적 전략이다. 이 전략은 트렌드의 방향을 결정하기 위해 윌리엄 알리거터 지표의 세 줄 (턱, 치아, 입술) 의 상대적 위치를 사용하여 이동 평균을 트렌드의 2차 확인으로 사용합니다. 가격이 이동 평균 이상으로 깨지고 윌리엄 알리거터 지표의 세 줄이 상승 순위에있을 때 전략은 긴 위치에 진입합니다. 가격이 이동 평균 이하로 깨지고 윌리엄 알리거터 지표의 세 줄이 하향 순위에있을 때 전략은 짧은 위치에 진입합니다. 이 전략은 비트코인 및 이더리움과 같은 매우 변동성 자산과 같은 명확한 트렌드 특성을 가진 시장에 적합합니다.

전략 원칙

윌리엄 알리거터 이동 평균 트렌드 캐처 전략의 핵심은 트렌드를 식별하고 확인하기 위해 윌리엄 알리거터 지표와 이동 평균을 사용하는 것입니다. 윌리엄 알리거터 지표는 다른 기간의 매끄러운 이동 평균 (SMMA) 인 턱, 치아 및 입술 세 줄로 구성됩니다. 시장이 상승 추세에있을 때, 입술 선은 치아 선 위에 있으며, 치아 선은 턱 선 위에 있습니다. 시장이 하락 추세에있을 때, 입술 선은 치아 선 아래에 있으며, 치아 선은 턱 선 아래에 있습니다. 이 전략은 트렌드의 2차 확인으로 이동 평균을 도입합니다. 가격이 이동 평균 이상으로 깨지면, 윌리엄 알리거터 지표의 상승 추세와 결합하면 전략은 긴 지점에 진입합니다. 평균 지표 아래로 갈 때, 이동 지표와 결합하여 짧은 지점을 유지합니다. 이 전략은 알리거터 지표의 잡음 확인을 효과적으로 향상시킬 수 있습니다.

전략적 장점

  1. 트렌드 추적: 윌리엄 알리거터 지표와 이동 평균을 결합함으로써 전략은 시장 트렌드를 효과적으로 식별하고 추적 할 수 있으며 강력한 트렌드 특성을 가진 시장에 적합합니다.
  2. 이중 확인: 전략은 윌리엄 알리거터 지표와 이동 평균을 사용하여 이중 확인 메커니즘을 채택하여 소음을 효과적으로 필터하고 트렌드 인식의 정확성을 향상시키고 잘못된 신호를 줄일 수 있습니다.
  3. 유연한 매개 변수: 전략의 매개 변수 설정은 상대적으로 유연하며 사용자가 전략 성능을 최적화하기 위해 다른 시장 특성과 거래 스타일에 따라 William Alligator 지표와 이동 평균의 기간을 조정 할 수 있습니다.
  4. 폭넓은 적용 가능성: 전략은 암호화폐, 외환, 상품 선물 등 강력한 트렌드 특성을 가진 다양한 시장에 적합하며, 다양한 유형의 거래자에게 참조를 제공할 수 있습니다.

전략 위험

  1. 범위에 묶인 시장: 범위에 묶인 시장에서 윌리엄 알리거터 지표와 이동 평균은 더 많은 잘못된 신호를 생성하여 수익성에 영향을 줄 수있는 포지션의 빈번한 개점과 폐쇄로 이어질 수 있습니다.
  2. 트렌드 역전: 트렌드 역전 시 전략은 느리게 반응하여 가장 좋은 입구 지점을 놓치거나 출구를 지연시켜 특정 손실을 초래할 수 있습니다.
  3. 매개 변수 최적화: 전략의 성능은 매개 변수 선택에 달려 있으며, 다른 매개 변수 설정은 전략 성능의 큰 차이로 이어질 수 있으므로 충분한 백테스팅과 최적화가 필요합니다.
  4. 리스크 관리: 전략에는 스톱 로스 및 포지션 관리와 같은 명시적인 리스크 관리 조치가 없으며, 이는 극심한 시장 변동성 중 큰 마감으로 이어질 수 있습니다.

전략 최적화 방향

  1. 트렌드 강도 필터링을 도입합니다. ADX 지표나 이동 평균 기울기 같은 트렌드 강도 판단을 입력 조건에 추가하여 약한 트렌드를 가진 신호를 필터링하고 입력 품질을 향상시킵니다.
  2. 출구 메커니즘을 최적화하십시오. 트렌드가 역전되면 ATR 스톱 로스 또는 트렌드 라인 스톱 로스 등의 더 민감한 출구 메커니즘을 채택하는 것을 고려하여 가능한 한 빨리 수익을 확보하고 마이너 다운을 줄이십시오.
  3. 동적 매개 변수 최적화: 시장 조건의 변화에 따라 다른 시장 리듬과 변동성 특성에 적응하기 위해 윌리엄 알리거터 지표와 이동 평균의 매개 변수를 동적으로 조정합니다.
  4. 리스크 관리를 포함합니다. 합리적인 스톱 로스 수준과 포지션 관리 규칙을 설정하는 것과 같은 엄격한 리스크 관리 조치를 도입하여 개별 거래의 리스크 노출과 전체 계좌의 최대 유출을 제어하십시오.

요약

윌리엄 알리거터 이동 평균 트렌드 캐처 전략은 윌리엄 알리거터 지표와 이동 평균을 결합하여 간단하고 효과적인 트렌드 추적 전략을 형성합니다. 이 전략은 강한 트렌드 특성을 가진 시장에 적합하며 이중 확인 메커니즘을 통해 트렌드 인식의 정확성을 향상시킵니다. 그러나 전략은 범위 제한 시장에서 성과가 떨어질 수 있으며 명시적인 리스크 관리 조치가 부족합니다. 미래에 전략의 견고성과 수익성을 향상시키기 위해 트렌드 강도 필터링, 출구 메커니즘 최적화, 동적 매개 변수 조정 및 리스크 관리 측면에서 전략을 최적화 할 수 있습니다.


/*backtest
start: 2024-05-09 00:00:00
end: 2024-05-16 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("Alligator + MA Trend Catcher [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 80, commission_type = strategy.commission.percent, commission_value = 0.01)

// william alligator
smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

jawLength = input.int(8, minval=1, title="Jaw Length", group = "william alligator settings")
teethLength = input.int(5, minval=1, title="Teeth Length", group = "william alligator settings")
lipsLength = input.int(3, minval=1, title="Lips Length", group = "william alligator settings")
jawOffset = input(8, title="Jaw Offset", group = "william alligator settings")
teethOffset = input(5, title="Teeth Offset", group = "william alligator settings")
lipsOffset = input(3, title="Lips Offset", group = "william alligator settings")
jaw = smma(hl2, jawLength)
teeth = smma(hl2, teethLength)
lips = smma(hl2, lipsLength)

// ma
input_trendline_length = input.int(200, "Trendline Length", group = "moving average settings")
trendline = ta.ema(close, input_trendline_length)

// strategy settings
input_long_orders = input.bool(true, "Long", group = "Strategy Settings")
input_short_orders = input.bool(true, "Short", group = "Strategy Settings")

//long
if close > trendline and lips > teeth and teeth > jaw and input_long_orders and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)
    label.new(bar_index, low, text = "🟢 Long", style = label.style_label_up, color = #9cff87)

if close < trendline and lips < teeth and teeth < jaw
    strategy.close("Long")

//short
if close < trendline and lips < teeth and teeth < jaw and input_short_orders and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)
    label.new(bar_index, high, text = "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if close > trendline and lips > teeth and teeth > jaw 
    strategy.close("Short")

//ploting
plot(trendline, "Trendline", color = #9cff87, linewidth = 3)
plot(jaw, "Jaw", offset = jawOffset, color=#b3e9c7)
plot(teeth, "Teeth", offset = teethOffset, color=#c2f8cb)
plot(lips, "Lips", offset = lipsOffset, color=#f0fff1)

관련

더 많은