Strategi ini dinamakan
Logik utama strategi ini adalah menggunakan kedua-dua penunjuk RSI dan ZigZag untuk menentukan trend harga. Khususnya, penunjuk RSI menilai sama ada harga terlalu banyak dibeli atau terlalu banyak dijual. Penunjuk ZigZag mengesan sama ada harga mempunyai lonjakan peratusan yang signifikan. Apabila kedua-dua penunjuk memberikan isyarat perdagangan secara serentak, kita menentukan bahawa terdapat pembalikan trend untuk kedudukan lawan.
Untuk penunjuk RSI, kita menetapkan garisan overbought pada 75 dan garisan oversold pada 25. Apabila RSI naik dari bawah 25 ke atas 25, ia dianggap pembalikan dari oversold ke bullish. Apabila RSI jatuh dari atas 75 ke bawah 75, ia menunjukkan pembalikan dari bullish ke oversold.
Untuk penunjuk ZigZag, kita menetapkan ambang lonjakan harga kepada 1% dalam perubahan peratusan. Apabila harga membuat lonjakan lebih dari 1% dalam amplitud, garis ZigZag akan memberikan isyarat. Digabungkan dengan penilaian trend, kita boleh mengenal pasti pembalikan trend.
Apabila kedua-dua penunjuk memberi isyarat, jika trend sebelumnya bullish dan sekarang RSI overbought manakala ZigZag menunjukkan lonjakan harga, kita menentukan bahawa harga adalah topping dan mungkin mempertimbangkan shorting. Sebaliknya, jika trend sebelumnya bearish dan sekarang RSI oversold manakala ZigZag menunjukkan lonjakan harga, kita menentukan bahawa harga adalah bottoming dan mungkin mempertimbangkan rindu. Melalui logika ini, kita boleh mengikuti trend.
Kelebihan terbesar strategi ini adalah peningkatan kualiti isyarat melalui penggabungan dua penunjuk. Satu penunjuk tunggal cenderung memberikan banyak isyarat palsu. Tetapi strategi ini menggunakan RSI dan ZigZag untuk pengesahan, menapis banyak isyarat palsu dan meningkatkan kadar kemenangan.
Satu lagi kekuatan adalah penyesuaian parameter yang fleksibel. Parameter RSI dan ZigZag boleh disesuaikan mengikut keadaan pasaran yang berbeza untuk hasil terbaik. Ini membawa kesesuaian yang besar kepada strategi.
Risiko utama adalah isyarat yang salah dari penunjuk. Walaupun pengesahan penunjuk berganda, masih boleh berlaku kegagalan semasa turun naik yang tinggi yang membawa kepada kesilapan perdagangan. Tetapan parameter yang tidak sesuai juga memberi kesan kepada prestasi strategi.
Untuk mengurangkan risiko, kita boleh memendekkan tempoh memegang kedudukan untuk menghentikan kerugian tepat pada masanya. pengoptimuman parameter juga sangat penting untuk memenuhi ciri pasaran. campur tangan manual mungkin diperlukan apabila menghadapi keadaan pasaran yang tidak normal.
Strategi ini boleh ditingkatkan dari aspek berikut:
Tambah lebih banyak penunjuk seperti KDJ dan MACD untuk penilaian gabungan untuk menapis isyarat lebih lanjut.
Memperkenalkan algoritma pembelajaran mesin untuk pengoptimuman parameter automatik yang menyesuaikan diri dengan perubahan pasaran.
Membina mekanisme stop loss adaptif dengan perlindungan dinamik berdasarkan turun naik pasaran.
Mengoptimumkan saiz kedudukan berdasarkan kekuatan trend.
Tetapkan strategi alternatif untuk beralih secara automatik di pasaran yang tidak biasa.
Kesimpulannya, ini adalah strategi trend berikut yang tipikal. Idea utama adalah untuk mengenal pasti pembalikan trend menggunakan penunjuk RSI dan ZigZag dalam kombinasi. Kelebihannya terletak pada peningkatan kualiti isyarat melalui penapisan penunjuk berganda. Risiko kegagalan penunjuk perlu dipertimbangkan sepenuhnya, dan strategi terus ditingkatkan melalui penyesuaian parameter, pengoptimuman kerugian berhenti, ukuran kedudukan dan sebagainya. Secara keseluruhan ini menyediakan penyelesaian penjejakan trend yang berkesan untuk pasaran crypto.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("Crypto ZigZag RSI strategy 15min",overlay=true) length =input(5, title="RSI Length") overSold = input(25) overBought= input(75) p =close vrsi = rsi(p, length) var bool long = na var bool short = na long :=crossover(vrsi,overSold) short := crossunder(vrsi,overBought) var float last_open_long = na var float last_open_short = na last_open_long := long ? close : nz(last_open_long[1]) last_open_short := short ? close : nz(last_open_short[1]) entry_value =last_open_long entry_value1=last_open_short // ZZPercent = input(1, title="Minimum % Change", type=input.float) r1Level=entry_value s1Level=entry_value1 trend = 0 trend := na(trend[1]) ? 1 : trend[1] LL = 0.0 LL := na(LL[1]) ? s1Level : LL[1] HH = 0.0 HH := na(HH[1]) ?r1Level : HH[1] Pi = ZZPercent * 0.01 zigzag = float(na) if trend > 0 if r1Level >= HH HH := r1Level HH else if s1Level < HH * (1 - Pi) zigzag :=r1Level[1] trend := -1 LL := s1Level LL else if s1Level <= LL LL := s1Level LL else if r1Level > LL * (1 + Pi) zigzag := s1Level[1] trend := 1 HH := s1Level HH shortc=crossunder(trend,0) longc=crossover(trend,0) longa =input(true) shorta=input(false) if(longa) strategy.entry("long",1,when=longc) strategy.close("long",when=shortc) if(shorta) strategy.entry("short",0,when=shortc) strategy.close("long",when=longc)