Strategi ini menggabungkan penunjuk VSTOP dan RSI untuk pergi panjang apabila RSI terlalu banyak dibeli dan pergi pendek apabila RSI terlalu banyak dijual, sementara menggunakan VSTOP untuk menentukan arah trend dan memotong kerugian pada waktunya apabila trend berbalik.
Hitung nilai penunjuk RSI dan tetapkan garis overbought dan oversold. Pergi panjang apabila RSI berada di atas garis overbought dan pergi pendek apabila RSI berada di bawah garis oversold.
Mengira VSTOP, yang merupakan garis stop loss berdasarkan julat turun naik harga. Langkah pengiraan adalah seperti berikut:
Mengira penunjuk ATR dan menetapkan pekali ATR banyak
Mencatatkan harga maksimum dan harga minimum
Mengikut keadaan uptrend is_uptrend, mengira garis stop loss semasa: stop = is_uptrend? max - mult * ATR : min + mult * ATR
Kemas kini garis stop loss: vstop1 = is_uptrend? max ((vstop_prev, stop) : min ((vstop_prev, stop)
Apabila pembalikan trend berlaku, menetapkan semula garis stop loss masuk
Apabila RSI terlalu banyak dijual, jika harga melintasi di atas VSTOP, pergi pendek; apabila RSI terlalu banyak dibeli, pergi panjang.
Menggabungkan penunjuk trend dan penunjuk overbought / oversold membantu menangkap peluang pembalikan dalam pasaran trend.
Menggunakan VSTOP untuk menetapkan stop loss berkesan mengawal risiko.
Tetapan parameter RSI yang fleksibel boleh dioptimumkan untuk produk yang berbeza.
VSTOP secara sistematik menyusuri stop loss tanpa campur tangan manual.
Jika parameter ATR ditetapkan terlalu besar atau terlalu kecil, garis stop loss tidak bermakna.
Dalam pasaran terikat julat, RSI boleh mencetuskan isyarat perdagangan yang kerap, meningkatkan kekerapan perdagangan dan kos slippage. Parameter RSI boleh diselaraskan atau penapis tambahan ditambah untuk mengurangkan isyarat yang tidak sah.
Pembalikan yang gagal adalah risiko utama strategi ini. Pedagang perlu menonton arah trend jangka masa yang lebih besar untuk mengelakkan perdagangan kontra trend. Purata bergerak jangka panjang boleh digunakan untuk menentukan trend.
Pertimbangkan untuk menggabungkan penunjuk lain untuk menapis isyarat yang tidak sah, contohnya jumlah, Saluran Donchian dll.
Mengoptimumkan parameter berdasarkan hasil backtest untuk mencari kombinasi parameter yang optimum.
Penyelidikan bagaimana untuk menyesuaikan pekali ATR secara dinamik untuk penyesuaian dalam persekitaran pasaran yang berbeza.
Terokai penutupan strategi semasa tempoh berisiko tinggi.
Strategi ini mengintegrasikan penilaian trend dan tahap overbought / oversold untuk menangkap peluang pembalikan dalam pasaran yang sedang berkembang. VSTOP menyediakan pengurusan stop loss yang sistematik untuk kawalan risiko. Strategi ini boleh ditingkatkan lagi melalui pengoptimuman parameter dan menggabungkan penunjuk lain. Pedagang perlu berhati-hati terhadap pembalikan yang gagal, risiko utama.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Vstop and RSI", overlay=true) //RSI Section length = input(2, "RSI Period") overSold = input(30, "Oversold Level") overBought = input(70, "Overbought Level") price = close vrsi = rsi (price, length) //VSTOP Section vlength = input(2, "Vstop Length") mult = input(2, "Vstop Mult") atr_ = atr(vlength) max1=0.0 min1=0.0 is_uptrend_prev = false stop=0.0 vstop_prev=0.0 vstop1=0.0 is_uptrend=false is_trend_changed=false max_ = 0.0 min_ = 0.0 vstop=0.0 max1 := max(nz(max_[1]), close) min1 := min(nz(min_[1]), close) is_uptrend_prev := nz(is_uptrend[1], true) stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_ vstop_prev := nz(vstop[1]) vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend := close - vstop1 >= 0 is_trend_changed := is_uptrend != is_uptrend_prev max_ := is_trend_changed ? close : max1 min_ := is_trend_changed ? close : min1 vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1 plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2) if vrsi > overBought strategy.entry("Buy", strategy.long, comment="Buy") if vrsi < overSold and vstop > price strategy.entry("Sell", strategy.short, comment="Sell")