웨이브트렌드 대폭 과판 리바운드 그리드 거래 전략

저자:차오장, 날짜: 2024-04-25 17:13:39
태그:DCAEMASMA

img

전반적인 설명

이 전략은 웨이브트렌드 지표에 기반하고 가격이 여러 번 과잉 판매 및 과잉 구매 수준에 도달 할 때 긴 포지션을 설정합니다. 가격이 과잉 구매 수준으로 반등할 때 이익을 위해 포지션을 닫습니다. 이것은 비트코인 및 솔라나와 같은 암호화폐의 15 분 주기에 적합한 시장에서 과잉 판매 리바운드 기회를 포착하도록 설계된 그리드 거래 전략입니다.

전략 원칙

  1. 파동 트렌드 지표의 두 줄을 계산합니다. 하나는 원래 값 (wt1) 이며 다른 하나는 평평한 값 (wt2) 입니다.
  2. 여러 번 과반 판매 수준 (oslevel1~8) 과 과반 구매 수준 (Oblevel1~5) 을 설정합니다.
  3. wt1과 wt2가 특정 과반 판매 수준 아래와 wt1가 wt2보다 높을 때, 긴 포지션을 개척합니다. 레벨이 낮을수록 포지션은 더 공격적입니다.
  4. wt1과 wt2 모두 과잉 매수 레벨 1보다 높고 wt1가 wt2보다 낮으면, 긴 포지션의 70%를 닫습니다.
  5. 그리드 트레이딩 시스템을 만들기 위해 단계 3과 4를 반복합니다.

전략적 장점

  1. 과잉 판매 리바운드 기회를 잡습니다. 여러 과잉 판매 수준을 설정함으로써 리바운드에서 이익을 얻기 위해 상당한 가격 하락 후 포지션을 개척합니다.
  2. 리스크 통제를 위한 롯데 포지션 구축: 과잉 판매 수준에 따라 롯데 포지션을 구축하고, 낮은 수준에서 더 무거운 포지션을 구축하여 더 나은 리스크 통제를 허용합니다.
  3. 자동 이윤 취득: 가격이 과잉 매입 구역으로 반격하면 대부분의 포지션을 자동으로 닫고, 이윤을 잠금합니다.
  4. 유연한 매개 변수: 과잉 판매 및 과잉 구매 수준은 시장 특성과 개인 선호도에 따라 조정될 수 있으며, 다른 거래 제품과 주기에 적응할 수 있습니다.

전략 위험

  1. 충돌 위험: 가격이 계속 하락하여 점점 더 많은 과잉 판매 시그널을 유발하면 무거운 포지션이 갇힐 수 있습니다.
  2. 불안정한 시장 위험: 과잉 판매 구역에서 가격이 반복적으로 변동하면 수익을 낼 수 없이 여러 개의 포지션 개척으로 이어질 수 있으며, 따라서 전략의 효과를 약화시킬 수 있습니다.
  3. 매개 변수 위험: 다른 매개 변수 설정은 전략 성능에 상당한 영향을 미치며 역 테스트와 경험에 따라 최적화되어야합니다. 그렇지 않으면 손실을 초래할 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터링을 추가합니다. 하향 트렌드에서 포지션을 열지 않도록 포지션을 열기 전에 큰 수준의 트렌드가 상승하는지 여부를 결정합니다.
  2. 포지션 관리를 최적화하십시오: 가격과 과잉 판매 수준 사이의 거리에 따라 오픈 포지션 크기를 조정하십시오. 더 큰 거리에 더 큰 포지션으로.
  3. 동적 수익: 고정된 비율로 포지션을 닫는 대신 보유 이익과 손실 비율에 따라 동적으로 수익 수준을 조정합니다.
  4. 스톱 로스 추가: 한 거래의 최대 손실을 제어하기 위해 고정 또는 후속 스톱 로스를 설정합니다.

요약

웨이브트렌드 (Wavetrend) 대형 앰플리튜드 오버셀드 리바운드 그리드 트레이딩 전략 (Large Amplitude Oversold Rebound Grid Trading Strategy) 은 과도한 판매와 과도한 구매 신호를 기반으로 하는 양적 전략이다. 이 전략은 래치 포지션 구축 및 자동 수익 취득을 통해 급격한 하락 후 리바운드 기회를 포착하여 가격 차이로부터 이익을 얻는 것을 목표로 한다. 이 전략의 장점은 강력한 적응력과 유연한 매개 변수 조정에 있다. 그러나, 시장의 지속적인 하락과 부적절한 매개 변수 설정과 같은 위험도 직면한다. 실제 응용에서는 트렌드 필터링, 동적 포지셔닝, 수익 취득 및 스톱-러스 최적화 방법을 고려하여 전략의 안정성과 수익성을 향상시킬 수 있다. 그러나, 이 전략은 엄격한 위치 통제와 신중한 사용이 필요한 고위험 전략이라는 점에 주목할 필요가 있다.


/*backtest
start: 2024-03-25 00:00:00
end: 2024-04-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// © And Isaac, all rights reserved. If there is any piracy, please call the police immediately. 

strategy(title='wavetrend',shorttitle='DCA-High win rate quantitative trading')
n1 = input(40,'channel length')
n2 = input(60,'average length')
Oblevel1 = input(40,'over bought level 1')
Oblevel2 = input(50,'over bought level 1')
Oblevel3 = input(70,'over bought level 1')
Oblevel4 = input(80,'over bought level 1')
Oblevel5 = input(100,'over bought level 2')
oslevel1 = input(-40,'over sold level 1')
oslevel2 = input(-45,'over sold level 1')
oslevel3 = input(-50,'over sold level 1')
oslevel4 = input(-55,'over sold level 1')
oslevel5 = input(-65,'over sold level 1')
oslevel6 = input(-75,'over sold level 1')
oslevel7 = input(-85,'over sold level 1')
oslevel8 = input(-100,'over sold level 2')

ap = input(title="source",defval=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)

wt1 = tci
wt2 = ta.sma(wt1, 4)

plot(0,color=color.new(#787b86, 0 ))
plot(Oblevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel3, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel4, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel5, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel6, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel7, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel8, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(wt1, color=color.new(#ff5252,0))
plot(wt2, color=color.new(#ffffff,0))
plot(wt1 - wt2, color=color.new(#00bcd4, 30),style=plot.style_area)

plot(ta.cross(wt1, wt2) ? wt2 : na, color=color.new(#ff5252,0) , style=plot.style_circles, linewidth=4 )

// barcolor(cross(wt1, wt2) ? (wt2 - wt1 > 0 ? aqua : yellow) : na)
barcolor(ta.cross(wt1, wt2) ? (wt2 - wt1 > 0 ? color.new(#ffffff,0) : color.new(#89ff52, 53)) : na)

/////////////
Long1 = wt2 < oslevel1 and wt1 < oslevel1 and wt1>wt2 and wt2 > oslevel3 and wt1>oslevel3
Long5 = wt2 < oslevel5 and wt1 < oslevel5 and wt1>wt2 and wt2 > oslevel6 and wt1>oslevel6

Long7 = wt2 < oslevel7 and wt1 < oslevel7 and wt1>wt2 and wt2 > oslevel8 and wt1>oslevel8
Long8 = wt2 < oslevel8 and wt1 < oslevel8 and wt1>wt2
LS1 = wt2 > Oblevel1 and wt1 > Oblevel1 and wt1<wt2



if Long1
    strategy.entry("L",strategy.long,comment = "做多1")


if Long5
    strategy.entry("L",strategy.long,comment = "做5")

if Long7
    strategy.entry("L",strategy.long,comment = "做多7")
if Long8
    strategy.entry("L",strategy.long,comment = "做多8")
if LS1
    strategy.close("L", qty_percent = 70,comment = "平多")




관련

더 많은