Multi Time Frame Bollinger Bands Strategi Mata Wang Kripto


Tarikh penciptaan: 2024-02-27 14:13:39 Akhirnya diubah suai: 2024-02-27 14:13:39
Salin: 1 Bilangan klik: 857
1
fokus pada
1617
Pengikut

Multi Time Frame Bollinger Bands Strategi Mata Wang Kripto

Gambaran keseluruhan

Strategi ini menggunakan indikator Bollinger Bands untuk menganalisis pergerakan harga mata wang kripto pada waktu yang berlainan (minit 1, minit 3, minit 5, dan minit 15) untuk mencari peluang membeli dan menjual. Ia berfungsi sebagai penanda aras untuk sentimen pasaran mata wang kripto, dengan tumpuan kepada harga 5 minit Bitcoin. Apabila harga Bitcoin menembusi Bollinger Bands ke atas, sentimen dianggap berada dalam keadaan bullish; sebaliknya, apabila harga Bitcoin menembusi Bollinger Bands ke bawah, sentimen dianggap berbalik ke bawah.

Prinsip Strategi

Strategi ini dihitung pada masa yang sama dalam 1 minit, 3 minit, 5 minit dan 15 minit. Bering terdiri daripada n hari (default 20 hari) purata bergerak dan beberapa kali perbezaan piawaiannya (default 1.5 kali). Rata-rata bergerak menunjukkan harga purata mata wang itu dalam masa tertentu, dan perbezaan piawaian mencerminkan kadar turun naik harga. Apabila harga mendekati atau menembusi Bering, ia menunjukkan bahawa pasaran berada di kedudukan yang tinggi dan turun naik, dan harga mungkin akan berbalik turun; apabila harga mendekati atau jatuh dari Bering, ia menunjukkan bahawa pasaran berada di kedudukan yang rendah dan turun naik, dan harga mungkin akan berbalik naik.

Strategi ini menggunakan ciri indikator Bollinger Bands ini untuk menilai perkembangan terkini pasaran pada tanda waktu yang berbeza (minit 1, 3, 5 dan 15 minit). Apabila harga pada tanda waktu 3 atau 5 minit menembusi Bollinger Bands ke atas atau ke bawah, dan tanda-tanda berkaitan muncul pada tanda waktu 1 dan 15 minit, strategi ini menilai bahawa pasaran telah mengeluarkan isyarat beli dan jual terkini.

Selepas membuka kedudukan, strategi ini juga menetapkan syarat hentian kerugian. Jika harga memegang naik atau turun 25%, atur hentian; Jika harga naik atau turun lebih dari 25% ke arah sebaliknya, atur hentian.

Kelebihan Strategik

  1. Strategi ini merangkumi pergerakan pasaran dalam jangka pendek dan pertengahan. 1 minit dan 5 minit untuk menilai perkembangan terkini pasaran, 15 minit untuk menilai trend pertengahan, dapat dengan berkesan mengelakkan tertipu oleh turun naik pasaran dalam jangka pendek.

  2. Strategi ini memberi tumpuan kepada penembusan di tengah-tengah, atas dan bawah Brin Belt, untuk mengelakkan kehilangan peluang membeli dan menjual.

  3. Bitcoin berfungsi sebagai penanda aras dan penunjuk emosi pasaran, yang dapat meningkatkan ketepatan keputusan.

  4. Kaedah yang digunakan untuk mengawal risiko ialah dengan menetapkan syarat-syarat stop loss yang berkesan.

Risiko Strategik

  1. Brin mendedahkan bahawa dia mempunyai ketinggalan dan mungkin terlepas peluang terbaik untuk memasuki kejohanan.

  2. Strategi ini sukar untuk ditangani dengan berkesan sekiranya terdapat risiko sistematik seperti kejadian Black Swan seperti kata laluan di pasaran cryptocurrency secara keseluruhan.

  3. Walaupun penangguhan kerugian telah ditetapkan, kejadian yang tidak dijangka menyebabkan kerugian yang lebih besar daripada penangguhan kerugian.

  4. Tetapan parameter strategi yang tidak betul, seperti panjang masa, perkalian standard deviation, dan lain-lain, boleh menyebabkan penurunan kualiti isyarat perdagangan.

Penyelesaian:

  1. Ia juga boleh digunakan untuk menentukan masa yang sesuai untuk kemasukan.

  2. Meningkatkan penilaian risiko sistemik pasaran.

  3. Memperkecilkan saiz kedudukan dan stop loss yang sesuai untuk setiap dagangan.

  4. Tetapkan parameter pengoptimuman dan buat pengesahan semula.

Pengoptimuman Strategi

  1. Tambah lebih banyak penghakiman masa, seperti 30 minit atau 60 minit dalam indikator Brinks.

  2. Mengikut ciri-ciri mata wang yang berbeza, pilih parameter Bollinger Bands yang lebih sesuai untuk meningkatkan prestasi indikator.

  3. Meningkatkan jumlah transaksi dan lain-lain. Oleh kerana jumlah transaksi dapat mengesahkan kebolehpercayaan perubahan harga.

  4. Gabungan dengan petunjuk lain seperti RSI Stoch, MACD, dan lain-lain untuk meningkatkan ketepatan keputusan.

  5. Bandingkan pergerakan harga dan hubungan antara mata wang yang berbeza, pilih mata wang yang paling banyak ruang untuk beroperasi.

  6. Mengoptimumkan strategi hentian hentian dan menentukan parameter terbaik melalui analisis statistik selepas kejadian.

ringkaskan

Strategi ini adalah strategi perdagangan mata wang kripto yang berlainan masa. Ia menumpukan pada perubahan harga dalam skala masa pendek dan jangka menengah di pasaran, menggunakan indikator Brin untuk menilai keadaan kosong MULIT di pasaran. Ia juga menggunakan harga Bitcoin sebagai asas dan isyarat rujukan pasaran, membantu menilai pergerakan keseluruhan pasaran kripto keseluruhan.

Kod sumber strategi
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")

interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'

var entryPrice = 0.000

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev

basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)

//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((interval1m - entryPrice)/entryPrice) * 30 > .25
        strategy.close('Buy', comment='Take Profit on Buy')
    if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
        strategy.close('Buy', comment='Stop Loss on Buy')

if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((entryPrice - interval1m)/entryPrice) * 30 > .25
        strategy.close('Sell', comment='Take Profit on Sell')
    if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
        strategy.close('Sell', comment='Stop Loss on Sell')

//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
    bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
    bitcoinSignal := 'Bull'

//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or 
 (interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell'
   and src < basis1m and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Basis Band Bearish Reversal')
    //strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or 
 (interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m  and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Bearish Trend Reversal')
    strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or 
 (interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > basis1m  and src > basis15m
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Basis Band Bullish Reversal')
    //strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)

if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or 
 (interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > lower1m  and src > basis15m and bitcoinSignal == 'Bull' 
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Bullish Trend Reversal')
    strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)