이중 동력 유선 거래 전략은 OTT 지표와 Wavetrend 오시레이터 지표를 결합한 전략이다. 그것은 Anıl Özekşi 선생이 개발한 OTT 지표와 lonestar108의 Wavetrend 오시레이터 지표를 사용하여 성공적인 거래 지표를 형성한다. 이 전략은 쌍방향 시장에서 수행 될 수 있다.
이중 동력 유선 거래 전략은 먼저 브린 밴드 중심을 계산한다. 즉 이동 평균 MAvg이다. 그 다음 사용자 설정된 비율 범위와 주기에 따라 긴 중지 지점과 짧은 중지 지점 쇼트 스톱을 계산한다. 가격이 경로를 돌파할 때 더 많이하고 경로를 돌파할 때 공백한다. 종료 신호는 가격이 다시 유선 근처로 돌아가는 것이다.
구체적으로, 이 전략의 핵심 지표는 OTT 지표이다. OTT 지표는 평균선과 경계선으로 구성되어 있으며, 특정 알고리즘에 따라 시장의 변동도에 따라 경계선을 조정하는 위치이다. 가격이 경계선 OTT 아래로 떨어지면 공백; 가격이 경계선 OTT 위를 넘으면 더하십시오.
이 전략은 동시에 물결 트렌드 지표를 사용하여 가격 추세 방향을 판단합니다. 하향 추세를 판단하면 공백만 하고, 상승 추세를 판단하면 공백만 하고.
이중 동력 유선 거래 전략은 이동 평균, 브린밴드 및 OTT 지표의 장점을 결합하여 자동으로 스톱 손실 위치를 조정하여 스톱 손실이 활성화되는 가능성을 줄일 수 있습니다. 동시에 트렌드 판단 지표를 결합하여 불안한 추세에 휘말리지 않도록합니다.
특히, 이 전략의 주요 장점은 다음과 같습니다.
이중 동력 유선 거래 전략에는 다음과 같은 몇 가지 측면에 집중하여 특정 위험이 있습니다.
이 문제에 대한 대책은 다음과 같습니다.
이중 동력 유선 거래 전략은 더 이상 최적화 할 여지가 있습니다:
이중 동력 일률화 거래 전략은 여러 지표의 장점을 통합하여 자동으로 스톱 손실 수준을 조정하고, 역전 신호를 판단하고, 경향 방향을 식별할 수 있다. 위험 통제 능력이 강하고, 사용하기 쉬운 등의 장점이 있다. 그러나, 부적절한 신호, 부적절한 신호 등의 위험도 있다. 이 전략은 추가로 최적화될 수 있으며, 다른 지표와 결합하여, 적응 알고리즘을 연구할 수 있다. 전체적으로 이중 동력 일률화 거래 전략은 실용적인 획기적인 거래 전략이다.
/*backtest start: 2023-02-12 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bugra trade strategy", shorttitle="Bugra trade strategy", overlay=true) // Kullanıcı Girdileri length = input(5, title="Period", minval=1) percent = input(1, title="Sihirli Yüzde", type=input.float, step=0.1, minval=0) mav = input(title="Hareketli Ortalama Türü", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"]) wt_n1 = input(10, title="Kanal Periyodu") wt_n2 = input(21, title="Averaj Uzunluğu") src = close // Tarih Aralığı Girdileri startDate = input(20200101, title="Başlangıç Tarihi (YYYYMMDD)") endDate = input(20201231, title="Bitiş Tarihi (YYYYMMDD)") // Tarih Filtresi Fonksiyonu isDateInRange() => true // Özel Fonksiyonlar Var_Func(src, length) => valpha = 2 / (length + 1) vud1 = src > src[1] ? src - src[1] : 0 vdd1 = src < src[1] ? src[1] - src : 0 vUD = sum(vud1, length) vDD = sum(vdd1, length) vCMO = (vUD - vDD) / (vUD + vDD) varResult = 0.0 varResult := nz(valpha * abs(vCMO) * src + (1 - valpha * abs(vCMO)) * nz(varResult[1])) varResult Wwma_Func(src, length) => wwalpha = 1 / length wwma = 0.0 wwma := wwalpha * src + (1 - wwalpha) * nz(wwma[1]) wwma Zlema_Func(src, length) => zxLag = floor(length / 2) zxEMAData = src + (src - src[zxLag]) zlema = ema(zxEMAData, length) zlema Tsf_Func(src, length) => lrc = linreg(src, length, 0) lrs = lrc - linreg(src, length, 1) tsf = lrc + lrs tsf getMA(src, length) => ma = mav == "SMA" ? sma(src, length) : mav == "EMA" ? ema(src, length) : mav == "WMA" ? wma(src, length) : mav == "TMA" ? sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) : mav == "VAR" ? Var_Func(src, length) : mav == "WWMA" ? Wwma_Func(src, length) : mav == "ZLEMA" ? Zlema_Func(src, length) : mav == "TSF" ? Tsf_Func(src, length) : na // Strateji Hesaplamaları MAvg = getMA(src, length) fark = MAvg * percent * 0.01 longStop = MAvg - fark longStopPrev = nz(longStop[1], longStop) longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop shortStop = MAvg + fark shortStopPrev = nz(shortStop[1], shortStop) shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir MT = dir==1 ? longStop: shortStop OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200 plot(OTT, title="BugRA", color=color.rgb(251, 126, 9)) // Alım ve Satım Koşulları longCondition = crossover(src, OTT) and isDateInRange() shortCondition = crossunder(src, OTT) and isDateInRange() // Strateji Giriş ve Çıkış Emirleri if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.close("Long")