
Strategi ini menggabungkan indikator pengembalian linear dengan purata bergerak indeks dua, untuk melaksanakan operasi pengesanan garis pendek. Strategi ini didasarkan pada kedudukan kosong apabila harga meletup ke bawah, dan posisi kosong apabila harga meletupkan semula.
Strategi ini menilai penembusan harga terutamanya melalui penunjuk regresi linear. Penunjuk regresi linear adalah kenaikan dan penurunan harga berdasarkan harga tertinggi dan terendah dalam tempoh tertentu, menggunakan kaedah regresi linear. Apabila harga melintasi dari bawah atau dari bawah, kami menganggapnya sebagai isyarat perdagangan.
Selain itu, strategi ini juga memperkenalkan BAM untuk menilai trend tengah. BAM dapat bertindak balas lebih cepat terhadap perubahan harga. Apabila harga bergerak dari atas ke bawah, jika BAM pada masa ini sudah berada di atas harga, yang menunjukkan bahawa ia kini berada dalam trend menurun, maka kita membuat kedudukan kosong. Apabila harga kembali menembusi atas atau menembusi BAM, kita melonggarkan kedudukan kosong.
Secara khusus, strategi ini merangkumi beberapa perkara:
Strategi ini mempunyai beberapa kelebihan berbanding dengan purata bergerak tradisional dan lain-lain:
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Untuk risiko di atas, kita boleh menangani dengan kaedah seperti pengoptimuman parameter, hentian ketat, dan pelepasan lebur yang sesuai.
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Strategi ini menggunakan indikator regresi linear dan purata bergerak indeks dua, yang mempunyai kelebihan dalam teori dan amalan. Dengan terus mengoptimumkan penyesuaian, anda dapat meningkatkan kestabilan dan keberkesanan strategi.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp(9999,1,1,0,0)
_testPeriod() => true
len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
length = input(200, title="DEMA")
d1 = ema(close, length)
d2 = 2 * d1 - ema(d1, length)
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA
dema=sma(d2,length)
turnGreen = d2 > d1 and d2[1] <= d1[1]
turnRed = d2 <= d1 and d2[1] > d1[1]
up =turnGreen
down=turnRed
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small)
plotshape(up, title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small)
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)
strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))