웨이브트렌드 대형지수 과매도 반등 그리드 트레이딩 전략

DCA EMA SMA
생성 날짜: 2024-04-25 17:13:39 마지막으로 수정됨: 2024-04-25 17:13:39
복사: 3 클릭수: 898
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

웨이브트렌드 대형지수 과매도 반등 그리드 트레이딩 전략

개요

이 전략은 Wavetrend 지표에 기반하여, 여러 개의 오버셀과 오버빌 레벨을 설정하여, 가격이 이 레벨을 만질 때 여러 개의 포지션을 설정하고, 가격이 오버셀 레벨로 반발할 때 평점으로 이익을 얻습니다. 이것은 시장의 오버폴 반발 상황을 포착하기 위한 격자 거래 전략으로, 비트코인과 솔라나와 같은 디지털 화폐의 15 분 주기에는 적용됩니다.

전략 원칙

  1. Wavetrend 지표의 두 줄, 원시값 ((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 대량 지표 오버패스 반발망 거래 전략은 오버 판매 오버 구매 신호에 기반한 정량화 전략으로, 분기적으로 포지션을 구축하고 자동 스톱을 하는 방식으로, 오버 패스 후 반발 상황을 포착하여 격차 가격 수익을 얻는다. 이 전략의 장점은 적응력이 강하고, 변수를 유연하게 조정할 수 있지만, 시장의 지속적인 하락, 변수 설정 부적절 등의 위험도 존재한다. 실제 응용에서는 트렌드 필터링, 다이내믹 포지션 및 스톱 스톱 등의 손실 최적화 방법을 추가하여 전략의 안정성과 수익성을 향상시킬 수 있습니다. 그러나 여전히 주의가 필요합니다. 이 전략은 고위험 전략이며, 엄격한 포지션 제어가 필요하며 신중하게 사용해야합니다.

전략 소스 코드
/*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 = "平多")