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