Strategi ini mengesan trend dua saham dengan mengira Titik Pivot klasik dan menggunakan penunjuk RSI untuk menentukan arah trend semasa.
Strategi ini terutamanya mengikuti langkah-langkah berikut untuk mencapai penjejakan trend berganda:
Mengira Titik Pivot klasik termasuk Pivot, S1, R1, S2, R2 dll.
Gunakan penunjuk RSI untuk menentukan arah trend harga. RSI di atas 80 adalah zon overbought dan di bawah 20 adalah zon oversold.
Menghakimi arah trend harian. Jika harga penutupan lebih besar daripada R2 hari sebelumnya, ia adalah trend yang kuat. Jika harga penutupan kurang daripada S2 hari sebelumnya, ia adalah trend yang lemah.
Buat keputusan dagangan hari ini berdasarkan arah trend harian, menggabungkan Titik Pivot dan penunjuk RSI.
Jika trend harian adalah kuat (dekat > R2), cari titik beli pulback di bawah Pivot atau beli di bawah S1.
Jika trend harian lemah (dekat < S2), cari titik jual pulback di atas Pivot atau jual di atas R1.
Tetapkan titik stop loss. Untuk trend yang kuat, stop loss adalah hari sebelumnya
Strategi ini menilai trend jangka menengah dan panjang dengan titik Pivot, dan menggunakan RSI dan lain-lain untuk menentukan trend jangka pendek dan titik masuk.
Kelebihan utama strategi ini ialah:
Mampu menjejaki kedua-dua trend jangka menengah dan jangka pendek, menyesuaikan diri dengan fleksibel dengan perubahan pasaran.
Titik Pivot mempunyai beberapa keupayaan menilai trend dan dapat menentukan trend jangka menengah dan panjang dengan berkesan.
RSI dan lain-lain boleh menilai tahap overbought / oversold jangka pendek, membantu menentukan titik masuk tertentu.
Peraturan strategi jelas dan mudah, mudah difahami.
Kawalan risiko telah dilaksanakan dengan titik stop loss yang jelas.
Risiko utama strategi ini ialah:
Titik Pivot mungkin gagal meramalkan trend jangka menengah dan panjang. Ini boleh ditingkatkan dengan menyesuaikan parameter atau menggabungkan dengan penunjuk lain.
RSI dan lain-lain boleh memberikan isyarat palsu. Parameter boleh diselaraskan atau digunakan bersama-sama dengan penunjuk lain.
Titik stop loss mungkin terlalu sewenang-wenang, tidak dapat sepenuhnya mengelakkan stop loss dipukul.
Pengeluaran strategi mungkin lebih besar, memerlukan persediaan psikologi dan sokongan modal yang mencukupi.
Risiko perdagangan berlebihan wujud. Syarat pembukaan boleh diselaraskan untuk mengelakkan perdagangan berlebihan.
Strategi ini boleh dioptimumkan dalam bidang-bidang berikut:
Cuba kombinasi parameter yang berbeza seperti menyesuaikan parameter RSI, mengoptimumkan pengiraan Titik Pivot dan lain-lain untuk mencari parameter yang optimum.
Tambah atau gabungkan penunjuk lain seperti KDJ, MACD dll untuk membuat isyarat lebih tepat dan boleh dipercayai.
Mengoptimumkan strategi stop loss e.g. trailing stop loss, exit stop loss dan lain-lain untuk mengurangkan risiko stop loss yang dipukul.
Mengoptimumkan saiz kedudukan untuk mengehadkan kesan kerugian kedudukan tunggal.
Mengoptimumkan syarat kemasukan untuk mengelakkan perdagangan berlebihan. Penapis boleh ditambah.
Uji keberkesanan di pelbagai produk dan sesuaikan parameter.
Tambah strategi mengambil keuntungan automatik untuk mengunci keuntungan.
Strategi ini menilai trend jangka panjang dengan titik Pivot dan menggunakan RSI dan lain-lain untuk membantu menentukan trend jangka pendek dan titik kemasukan, mencapai penjejakan trend dua harga. Logik keseluruhan jelas dan munasabah, berfungsi dengan baik untuk perdagangan jangka sederhana. Tetapi terdapat beberapa risiko isyarat palsu, memerlukan pengoptimuman lebih lanjut parameter, kawalan stop loss yang ketat untuk mengurangkan risiko, dan kawalan saiz kedudukan yang sesuai untuk menguruskan kemungkinan pengeluaran yang lebih besar. Dengan pengoptimuman dan penambahbaikan berterusan, pulangan pelaburan yang stabil dapat dicapai.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="swing trade", shorttitle="vinay_swing", overlay=true) pf = input(false,title="Show Filtered Pivots") sd = input(true, title="Show Daily Pivots?") //moving average len = input(50, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) //RSI INPUT length = input( 7 ) overSold = input( 20 ) overBought = input( 80 ) price = close vrsi = rsi(price, length) // Classic Pivot pivot = (high + low + close ) / 3.0 // Filter Cr bull= pivot > (pivot + pivot[1]) / 2 + .0025 bear= pivot < (pivot + pivot[1]) / 2 - .0025 // Classic Pivots r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low) s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot) r2 = pf ? na : pivot + (high - low) s2 = pf ? na : pivot - (high - low) BC = (high + low) / 2.0 TC = (pivot - BC) + pivot //Pivot Average Calculation smaP = sma(pivot, 3) //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1]) dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1]) dtime_BC = request.security(syminfo.tickerid, 'D', BC[1]) dtime_TC = request.security(syminfo.tickerid, 'D', TC[1]) offs_daily = 0 plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1) plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1) plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1) bull1= (close > dtime_r2) bull2= (low < dtime_pivot) or (low < dtime_s1) bull3= dtime_pivot > dtime_pivot[1] bullishenglufing=bull2 and bull3 bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought)) longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1)) bear1= (close < dtime_s2) bear2= (high > dtime_pivot) or (high < dtime_r1) bear3= dtime_pivot < dtime_pivot[1] bearishenglufing=bear2 and bear3 bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold)) shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1)) plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny) plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)