Strategi perdagangan berdasarkan corak puncak ke puncak


Tarikh penciptaan: 2024-02-20 15:40:58 Akhirnya diubah suai: 2024-02-20 15:40:58
Salin: 0 Bilangan klik: 629
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan corak puncak ke puncak

Gambaran keseluruhan

Strategi ini dinamakan strategi perdagangan berdasarkan bentuk puncak puncak, yang menggunakan bentuk puncak puncak K untuk menentukan masa membeli dan menjual. Strategi ini termasuk dalam strategi analisis teknikal.

Prinsip Strategi

Strategi ini menilai bentuk puncak grafik K dengan menentukan puncak naik (upFractal) dan puncak turun (downFractal).

Khususnya, logik penilaian puncak kenaikan adalah: titik tertinggi pada garis K semasa adalah titik tertinggi pada garis K akar n yang paling dekat, dan tidak ada titik tertinggi pada garis K berikutnya yang melebihi titik tertinggi pada garis K semasa.

Logik penghakiman puncak menurun adalah: titik rendah garis K semasa adalah titik terendah garis K akar n yang paling dekat, dan titik rendah garis K seterusnya tidak lebih rendah daripada titik rendah garis K semasa.

Di sini, dengan menggunakan pembolehubah Boolean dan pusingan untuk menilai hubungan antara n akar depan dan n akar belakang K garis dengan titik tinggi dan rendah garis K semasa, akhirnya menentukan puncak naik dan puncak turun.

Oleh itu, logik utama strategi ini adalah:

  1. Menentukan puncak naik dan puncak turun
  2. Lebih banyak pada puncak dan lebih sedikit pada puncak.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Bentuk puncak mudah dikenali dan mudah dikendalikan
  2. Menggunakan bentuk teknologi tanpa menjejaskan asas
  3. Kemungkinan penarikan balik yang kecil

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Penghakiman bentuk puncak tidak tepat, mungkin terlepas peluang masuk terbaik
  2. Stop loss mungkin lebih sukar untuk ditentukan apabila keadaan berubah secara mendadak.
  3. Hanya bergantung pada bentuk, mengabaikan faktor lain

Kaedah pencegahan:

  1. Menyesuaikan parameter bentuk puncak, mengoptimumkan logik penilaian
  2. Penentuan kedudukan hentian bersama-sama dengan petunjuk lain
  3. Digunakan dengan analisis asas atau kombinasi strategi lain

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa arah:

  1. Menambah ruang penyesuaian parameter, mengoptimumkan penilaian bentuk puncak
  2. Tambah logik stop loss
  3. Pertimbangkan petunjuk lain seperti jumlah dagangan atau turun naik
  4. Analisis kitaran masa yang berbeza

ringkaskan

Strategi ini berdasarkan prinsip bentuk puncak puncak yang mudah dikendalikan, pengunduran mungkin kecil. Tetapi ada juga risiko tertentu, yang perlu digunakan dengan kombinasi kaedah analisis lain untuk memberi kesan maksimum. Langkah seterusnya akan diperbaiki dari segi penilaian ketepatan, hentikan kerugian, pengoptimuman penunjuk dan sebagainya.

Kod sumber strategi
/*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)