Strategi Pivot Point Backtest yang Dinamis

Penulis:ChaoZhang, Tanggal: 2023-12-29 15:50:57
Tag:

img

Gambaran umum

Strategi ini membuat posisi panjang atau pendek berdasarkan level support dan resistance yang dihitung dari harga tertinggi, terendah dan penutupan hari perdagangan sebelumnya.

Prinsip Strategi

  1. Menghitung level support S1, level resistance R1 dan pivot point vPP hari ini berdasarkan harga tertinggi xHigh, harga terendah xLow dan harga penutupan xClose dari hari perdagangan sebelumnya.

    vPP = (xHigh+xLow+xClose) / 3

    vR1 = vPP+(vPP-xLow)

    vS1 = vPP-(xHigh - vPP)

  2. Tentukan apakah harga menembus vR1 atau vS1.

    pos = iff ((close > vR1, 1, jika dekat < vS1, -1, nz(pos[1], 0)))

  3. Possig mencatat arah perdagangan yang sebenarnya. Jika perdagangan terbalik diaktifkan dengan reverse=true, sinyal perdagangan terbalik.

  4. Pergi panjang ketika vR1 rusak dan pergi pendek ketika vS1 rusak sesuai dengan sinyal possig.

Keuntungan Strategi

  1. Strategi ini memanfaatkan tingkat dukungan dan resistensi dinamis untuk menangkap pergerakan tren.
  2. Tingkat support dan resistance diperbarui setiap hari, membuatnya dinamis.
  3. Kedua perdagangan panjang dan pendek dapat dikonfigurasi agar sesuai dengan lingkungan pasar yang berbeda.
  4. Logika strategi sederhana dan bersih untuk mudah dipahami dan diterapkan.
  5. Visualisasi level support dan resistance memungkinkan deteksi perubahan tren secara intuitif.

Analisis Risiko

  1. Sinyal beli dan jual yang tidak perlu dapat dipicu jika pasar berkisar.
  2. Jika pergerakan tren ekstrem terjadi, support/resistance yang rusak dapat terus-menerus diperpanjang sehingga mengakibatkan kerugian.
  3. Titik pivot dan perhitungan dukungan / resistensi sederhana dan perlu dioptimalkan lebih lanjut.

Manajemen Risiko:

  1. Sesuaikan ukuran posisi untuk membatasi kerugian perdagangan tunggal.
  2. Atur stop loss untuk mencegah kerugian melebihi jumlah maksimum yang dapat ditoleransi.
  3. Tambahkan filter berdasarkan indikator lain untuk menghindari perdagangan berlebihan di pasar yang berbeda.

Peluang Peningkatan

  1. Mengoptimalkan perhitungan dukungan dan resistensi untuk meningkatkan prediktabilitas.
  2. Sertakan indikator tren dan momentum untuk menghindari perdagangan yang tidak perlu.
  3. Tambahkan strategi stop loss untuk mengendalikan kerugian tunggal dan maksimum.
  4. Menggunakan pembelajaran mesin untuk secara dinamis mengoptimalkan level support/resistance.

Ringkasan

Strategi ini membuat perdagangan panjang atau pendek berdasarkan tingkat dukungan dan resistensi dinamis pemecahan harga. Logika sederhana untuk dipahami dan diimplementasikan sambil dapat secara efektif mengidentifikasi pembalikan tren. Namun, risiko ada dan optimasi lebih lanjut dengan indikator tambahan diperlukan untuk menghasilkan sinyal perdagangan yang lebih dapat diandalkan. Secara keseluruhan, strategi berfungsi dengan baik sebagai indikator pendukung atau blok bangunan dasar dalam sistem perdagangan kuantitatif.


//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/06/2018
// This Pivot points is calculated on the current day.
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Dynamic Pivot Point Backtest", shorttitle="Dynamic Pivot Point", overlay = true)
reverse = input(false, title="Trade reverse")
xHigh  = request.security(syminfo.tickerid,"D", high[1])
xLow   = request.security(syminfo.tickerid,"D", low[1])
xClose = request.security(syminfo.tickerid,"D", close[1])
vPP = (xHigh+xLow+xClose) / 3
vR1 = vPP+(vPP-xLow)
vS1 = vPP-(xHigh - vPP)
pos = iff(close > vR1, 1,
       iff(close < vS1, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(vS1, color=#ff0000, title="S1", style = circles, linewidth = 1)
plot(vR1, color=#009600, title="R1", style = circles, linewidth = 1)

Lebih banyak