Strategi pembalikan arah aliran mata wang kripto berdasarkan PIVOT tinggi dan rendah


Tarikh penciptaan: 2024-01-12 14:13:36 Akhirnya diubah suai: 2024-01-12 14:13:36
Salin: 0 Bilangan klik: 691
1
fokus pada
1617
Pengikut

Strategi pembalikan arah aliran mata wang kripto berdasarkan PIVOT tinggi dan rendah

Gambaran keseluruhan

Strategi ini berdasarkan PIVOT tinggi rendah dan pecah untuk menilai trend reversal mata wang kripto, termasuk dalam kategori strategi reversal pecah. Strategi ini pertama kali mengira harga tertinggi dan harga terendah PIVOT item dalam tempoh terkini, dan kemudian menilai sama ada harga pecah selepas titik-titik penting ini berbalik, untuk menangkap perubahan trend yang besar.

Prinsip Strategi

  1. Mengira titik PIVOT tinggi dan rendah

Menggunakan fungsi ta.pivothigh ((() dan ta.pivotlow ((() untuk mengira harga tertinggi dan harga terendah bar tertentu sebagai titik PIVOT utama.

  1. Penghakiman Terobosan

Jika harga menembusi titik rendah PIVOT ke atas, atau menembusi titik tinggi PIVOT ke bawah, maka trend ditukar.

  1. Tetapkan syarat penapis

Ia memerlukan harga untuk mencapai titik PIVOT dengan ketinggian tertentu, dan untuk mencapai harga penutupan 150 bar, untuk mengelakkan penarikan.

  1. Masuk dan keluar

Memicu syarat pembelian untuk membuat lebih banyak masuk, memicu syarat menjual untuk meratakan lebih banyak tiket. Sama seperti menilai tiket kosong masuk dan keluar.

Analisis kelebihan

  1. Penghakiman menggunakan titik PIVOT, lebih sensitif terhadap perubahan trend yang besar
  2. Penapis yang berkesan untuk menyertai tren bergolak, untuk memastikan masuk ke dalam tren berbalik
  3. Dengan mengkaji titik PIVOT yang tinggi atau rendah, anda dapat menangkap peluang untuk berpatah balik

Analisis risiko

  1. Guncangan kitaran besar mudah menjejaskan strategi
  2. Perlu menyesuaikan panjang titik PIVOT dan syarat penapisan untuk menyesuaikan diri dengan pelbagai standard
  3. Keperluan untuk memastikan bahawa yuran bursa hampir sifar, jika tidak, keuntungan dan kerugian akan terjejas

Arah pengoptimuman

  1. Kombinasi parameter PIVOT yang berbeza boleh diuji
  2. Anda boleh menambah stop loss bergerak untuk mengawal kerugian tunggal.
  3. Tanda penapisan boleh dikombinasikan dengan petunjuk lain

ringkaskan

Strategi ini secara keseluruhannya agak kukuh dan sesuai untuk menangkap perubahan besar. Tetapi perlu berhati-hati untuk mengawal risiko dan menyesuaikan parameter untuk menyesuaikan dengan mata wang yang berbeza.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nkrastins95

//@version=5
strategy("Swing Hi Lo", overlay=true, margin_long=100, margin_short=100)

//-----------------------------------------------------------------------------------------------------------------------//

tf = input.timeframe(title="Timeframe", defval="")

gr="LENGTH LEFT / RIGHT"
leftLenH = input.int(title="Pivot High", defval=10, minval=1, inline="Pivot High",group=gr)
rightLenH = input.int(title="/", defval=10, minval=1, inline="Pivot High",group=gr)
colorH = input(title="", defval=color.red, inline="Pivot High",group=gr)

leftLenL = input.int(title="Pivot Low", defval=10, minval=1, inline="Pivot Low", group=gr)
rightLenL = input.int(title="/", defval=10, minval=1, inline="Pivot Low",group=gr)
colorL = input(title="", defval=color.blue, inline="Pivot Low",group=gr)

//-----------------------------------------------------------------------------------------------------------------------//

pivotHigh(ll, rl) =>
    maxLen = 1000
    float ph = ta.pivothigh(ll, rl)
    int offset = 0
    while offset < maxLen
        if not na(ph[offset])
            break 
        offset := offset + 1
    ph[offset]

pivotLow(ll, rl) =>
    maxLen = 1000
    float pl = ta.pivotlow(ll, rl)
    int offset = 0
    while offset < maxLen
        if not na(pl[offset])
            break 
        offset := offset + 1
    pl[offset]


//-----------------------------------------------------------------------------------------------------------------------//

ph = request.security(syminfo.tickerid, tf, pivotHigh(leftLenH, rightLenH), barmerge.gaps_off, barmerge.lookahead_on)
pl = request.security(syminfo.tickerid, tf, pivotLow(leftLenL, rightLenL), barmerge.gaps_off, barmerge.lookahead_on)

drawLabel(_offset, _pivot, _style, _color) =>
    if not na(_pivot)
        label.new(bar_index[_offset], _pivot, str.tostring(_pivot, format.mintick), style=_style, color=_color, textcolor=#131722)

//-----------------------------------------------------------------------------------------------------------------------//

VWAP = ta.vwap(ohlc4)

longcondition = ta.crossunder(close,pl) and close > close[150]
exitcondition = close > ph

shortcondition = ta.crossover(close,ph) and close < close[150]
covercondition = close < pl

strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = exitcondition)

strategy.entry("Short", strategy.short, when = shortcondition)
strategy.close("Short", when = covercondition)