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

웨이브트렌드 지표에 기반한 트렌드 추적 전략

저자:차오장, 날짜: 2024-04-28 13:56:27
태그:EMASMAHLCC3ESA

基于WaveTrend指标的趋势追踪策略

개요

웨이브트렌드 크로스 라지베어 전략은 웨이브트렌드 지표에 기반한 거래 전략이다. 이 전략은 두 개의 다른 주기의 웨이브트렌드 지표선을 사용하여, 더 빠른 주기의 웨이브트렌드 지표선이 더 느린 주기의 웨이브트렌드 지표선을 통과할 때 구매 신호를 생성하고, 더 빠른 주기의 웨이브트렌드 지표선이 더 느린 주기의 웨이브트렌드 지표선을 통과할 때 판매 신호를 생성한다. 이 전략은 또한 시장 상태를 판단하는 데 도움이되는 오버바이 및 오버셀드 영역을 설정한다.

전략적 원칙

이 전략의 핵심은 다음과 같은 단계로 계산되는 WaveTrend 지표입니다.

  1. 전형적인 가격 (AP) 을 계산합니다. 이는 최고 가격, 최저 가격 및 폐쇄 가격의 평균 값과 같습니다.
  2. AP의 지수 이동 평균 (ESA) 을 계산하고, 주기는 n1이다.
  3. AP와 ESA의 차이의 절대값의 지수 이동 평균 d를 계산하고, 주기는 n1이다.
  4. 계산 지표 CI는 AP-ESA / (0.015 * d) 와 같습니다.
  5. CI의 지수를 계산하는 이동평균 TCI, 주기는 n2이며, 웨이브트렌드 지표가 주어집니다.

이 전략은 두 개의 다른 주기를 (임의상 10 및 21) 가진 웨이브트렌드 지표선을 사용하며, 각각 WT1 및 WT2로 기록된다. WT1이 WT2를 통과할 때 구매 신호를 생성하고, WT1이 WT2를 통과할 때 판매 신호를 생성한다. 또한, 이 전략은 4개의 보조 판단 수준을 설정한다. 과잉 구매 수준 1, 과잉 구매 수준 2, 과잉 판매 수준 1, 과잉 판매 수준 2, 시장 상태를 판단하는 데 도움을 준다.

전략적 장점

  1. 파동 트렌드 지표는 파동과 변동의 특성을 결합하여 시장 추세를 더 잘 파악 할 수 있습니다.
  2. 이중주기 웨이브트렌드 지표는 일부 노이즈 신호를 효과적으로 필터링합니다.
  3. 과잉 구매 과잉 판매 수준을 설정하면 전략이 시장의 큰 변동이 있을 때 자주 거래하는 것을 어느 정도 방지할 수 있다.
  4. 전략적 논리는 명확하고 이해하기 쉽고 구현하기 쉽습니다.

전략적 위험

  1. 이 전략은 불안한 시장에서 더 많은 가짜 신호를 일으킬 수 있습니다.
  2. 매개 변수 선택은 전략의 성능에 큰 영향을 미치며, 다른 매개 변수들은 전략의 성능에 큰 차이를 초래할 수 있다.
  3. 이 전략은 위험 통제를 고려하지 않고 극단적인 시장에서 더 큰 탈락이 발생할 수 있습니다.

전략적 최적화 방향

  1. 추세 필터링 조건, 예를 들어, 장기평평선 방향 등이 포함될 수 있다는 점을 고려하여 불안한 시장에서 잘못된 신호를 줄일 수 있다.
  2. 과잉 구매 과잉 판매 수준을 최적화하여 다른 시장 상황에 더 역동적으로 적응할 수 있습니다.
  3. 한 번의 거래의 위험을 제어하기 위해 손익계산 및 손익계산 장치를 추가 할 수 있습니다.
  4. 가장 좋은 파라미터 조합을 찾기 위해 파라미터 최적화를 할 수 있다.

요약

웨이브트렌드 크로스 라지베어 전략은 웨이브트렌드 지표에 기반한 트렌드 추적 전략으로, 트렌드를 포착하는 동시에 일부 위험 통제를 고려하여 이중 주기의 지표 설계와 과잉 구매 과잉 판매 수준에 대한 보조 판단을 통해 트렌드를 포착합니다. 그러나 이 전략은 불안한 시장에서 더 많은 가짜 신호가 나타날 수 있으며 엄격한 위험 관리 조치가 없으며 실제 응용에서는 추가 최적화와 개선이 필요합니다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © burakaydingr

//@version=5
strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true)

// Kullanıcı girişleri
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-60, title="Over Sold Level 1")
osLevel2 = input(-53, title="Over Sold Level 2")

// Temel hesaplamalar
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// WaveTrend göstergeleri
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Al ve Sat Sinyalleri
buySignal = ta.crossover(wt1, wt2)
sellSignal = ta.crossunder(wt1, wt2)

// Alım ve Satım pozisyonları
if (buySignal)
    if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat
        strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2")

if (sellSignal)
    if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat
        strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2")

// Renkler ve diğer görseller
plot(0, color=color.new(color.gray, 0), title="Zero Level")
plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1")
plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1")
plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2")
plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2")

plot(wt1, color=color.new(color.red, 0), title="WT1")
plot(wt2, color=color.new(color.blue, 0), title="WT2")
plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area")

// İşaretler
plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal")
plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")


관련 내용

더 많은 내용