Strategi perdagangan berdasarkan pola puncak ke puncak

Penulis:ChaoZhang, Tanggal: 2024-02-20 15:40:58
Tag:

img

Gambaran umum

Strategi ini disebut Peak-to-Peak Pattern Based Trading Strategy. Ini terutama menggunakan pola puncak-ke-puncak dalam grafik candlestick untuk menentukan entri dan keluar. Ini adalah strategi berbasis analisis teknis.

Prinsip Strategi

Strategi mendefinisikan puncak naik (upFractal) dan puncak turun (downFractal) untuk mengidentifikasi pola puncak ke puncak dalam grafik candlestick.

Secara khusus, logika penilaian untuk puncak naik adalah: tertinggi lilin saat ini adalah yang tertinggi dari n lilin baru-baru ini, dan tertinggi lilin berikutnya tidak melebihi yang saat ini.

Logika penilaian untuk jatuhnya puncak adalah: terendah candlestick saat ini adalah terendah dari n candlestick baru-baru ini, dan terendah candlestick berikutnya tidak pecah di bawah yang saat ini.

Variabel dan loop Boolean digunakan di sini untuk menentukan hubungan antara n candlesticks sebelumnya dan n candlesticks berikutnya tinggi/rendah dan yang dari yang saat ini, dan akhirnya mengidentifikasi puncak naik dan turun.

Oleh karena itu, logika inti dari strategi ini adalah:

  1. Mengidentifikasi puncak yang naik dan puncak yang turun
  2. Panjang pada puncak yang naik dan pendek pada puncak yang jatuh

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Pola puncak ke puncak mudah diidentifikasi, mudah dioperasikan
  2. Berdasarkan pola teknis, tidak dipengaruhi oleh fundamental
  3. Potensi pemotongan yang lebih kecil

Analisis Risiko

Ada juga beberapa risiko dengan strategi ini:

  1. Penghakiman pola puncak-ke-puncak yang tidak akurat, mungkin melewatkan waktu masuk terbaik
  2. Sulit untuk mengatur stop loss ketika pasar bergerak dengan keras
  3. Hanya mengandalkan pola, mengabaikan faktor lain

Tindakan balas:

  1. Sesuaikan parameter pola puncak ke puncak untuk mengoptimalkan logika
  2. Gabungkan dengan indikator lain untuk menentukan posisi stop loss
  3. Penggunaan bersama dengan analisis fundamental atau analisis lainnya

Arahan Optimasi

Beberapa arah untuk mengoptimalkan strategi:

  1. Tingkatkan opsi penyesuaian parameter untuk lebih mengidentifikasi pola puncak ke puncak
  2. Tambahkan logika stop loss
  3. Pertimbangkan volume perdagangan, volatilitas dan indikator lainnya
  4. Menggabungkan analisis jangka waktu yang berbeda

Ringkasan

Strategi ini sederhana untuk dioperasikan dengan kemungkinan drawdown yang lebih kecil berdasarkan prinsip pola puncak ke puncak. Tapi masih memiliki beberapa risiko dan perlu dikombinasikan dengan metode analisis lainnya untuk memaksimalkan kinerjanya. Langkah selanjutnya adalah meningkatkan akurasi penilaian pola, stop loss, optimasi indikator dll.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Lebih banyak