Strategi ini disebut
Logika inti dari strategi ini adalah menggunakan indikator RSI dan ZigZag untuk menentukan tren harga. Secara khusus, indikator RSI menilai apakah harga terlalu banyak dibeli atau terlalu banyak dijual. Indikator ZigZag mendeteksi apakah harga memiliki lonjakan persentase yang signifikan. Ketika kedua indikator memberikan sinyal perdagangan secara bersamaan, kita menentukan bahwa ada pembalikan tren untuk posisi lawan.
Untuk indikator RSI, kita menetapkan garis overbought pada 75 dan garis oversold pada 25. Ketika RSI naik dari di bawah 25 ke di atas 25, itu dianggap sebagai pembalikan dari oversold ke bullish. Ketika RSI turun dari di atas 75 ke di bawah 75, itu menunjukkan pembalikan dari bullish ke oversold.
Untuk indikator ZigZag, kita menetapkan ambang lonjakan harga menjadi 1% dalam perubahan persentase. Ketika harga membuat lonjakan lebih dari 1% dalam amplitudo, garis ZigZag akan memberikan sinyal. Dikombinasikan dengan penilaian tren, kita dapat mengidentifikasi pembalikan tren.
Ketika kedua indikator memberikan sinyal, jika tren sebelumnya bullish dan sekarang RSI overbought sementara ZigZag menunjukkan lonjakan harga, kita menentukan bahwa harga adalah topping dan mungkin mempertimbangkan shorting. Sebaliknya, jika tren sebelumnya bearish dan sekarang RSI oversold sementara ZigZag menunjukkan lonjakan harga, kita menentukan bahwa harga adalah bottoming dan mungkin mempertimbangkan merindukan. Melalui logika ini, kita dapat mengikuti tren.
Keuntungan terbesar dari strategi ini adalah peningkatan kualitas sinyal melalui penggabungan dua indikator. Satu indikator cenderung memberikan banyak sinyal palsu. Tapi strategi ini menggunakan RSI dan ZigZag untuk verifikasi, menyaring banyak sinyal palsu dan meningkatkan tingkat kemenangan.
Kekuatan lain adalah penyesuaian parameter yang fleksibel. RSI dan ZigZag parameter dapat disesuaikan sesuai dengan kondisi pasar yang berbeda untuk hasil terbaik.
Risiko utama adalah sinyal yang salah dari indikator. Meskipun validasi indikator ganda, masih bisa terjadi kegagalan selama volatilitas tinggi yang menyebabkan kesalahan perdagangan. Pengaturan parameter yang tidak tepat juga berdampak pada kinerja strategi.
Untuk mengurangi risiko, kita dapat memperpendek periode kepemilikan posisi untuk stop loss yang tepat waktu. Optimasi parameter juga sangat penting untuk memenuhi karakteristik pasar. Intervensi manual mungkin diperlukan ketika menghadapi kondisi pasar yang tidak normal.
Strategi dapat ditingkatkan dari aspek berikut:
Tambahkan lebih banyak indikator seperti KDJ dan MACD untuk penilaian gabungan untuk menyaring sinyal lebih lanjut.
Memperkenalkan algoritma pembelajaran mesin untuk optimasi parameter otomatis yang beradaptasi dengan perubahan pasar.
Membangun mekanisme stop loss adaptif dengan perlindungan dinamis berdasarkan volatilitas pasar.
Mengoptimalkan ukuran posisi berdasarkan kekuatan tren.
Menetapkan strategi alternatif untuk beralih secara otomatis di pasar yang tidak umum.
Singkatnya, ini adalah strategi trend berikut yang khas. Ide inti adalah untuk mengidentifikasi pembalikan tren menggunakan indikator RSI dan ZigZag dalam kombinasi. Keuntungannya terletak pada peningkatan kualitas sinyal melalui penyaringan indikator ganda. Risiko kegagalan indikator perlu dipertimbangkan sepenuhnya, dan strategi terus ditingkatkan melalui penyesuaian parameter, pengoptimalan stop loss, ukuran posisi dan sebagainya. Secara keseluruhan ini memberikan solusi pelacakan tren yang efektif untuk pasar 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)