Strategi Perdagangan Momentum Kuantitatif Super BitMoon


Tarikh penciptaan: 2023-09-15 16:13:05 Akhirnya diubah suai: 2023-09-15 16:13:05
Salin: 1 Bilangan klik: 674
1
fokus pada
1617
Pengikut

Strategi ini, yang dinamakan Super BitMoon, adalah strategi perdagangan kuantitatif dinamik garis pendek untuk Bitcoin. Strategi ini mempunyai keupayaan untuk melakukan perdagangan dan perdagangan secara serentak dan boleh berdagang apabila Bitcoin menembusi tahap sokongan atau rintangan utama.

Bagaimana strategi ini berfungsi:

  1. Menggunakan indikator ATR untuk mengira jangkauan turun naik dan titik hentian yang baru-baru ini. Apabila harga menembusi titik hentian pada satu garis K, ia dianggap sebagai pembalikan trend.
  2. Menggunakan purata bergerak bertimbangan WVF dan indikator Bollinger Bands untuk menentukan sama ada Bitcoin berada dalam keadaan overbought atau oversold. Jika WVF berada di bawah jalur Bollinger Bands, yang menunjukkan bahawa pasaran mungkin berada dalam keadaan oversold, anda boleh melakukan lebih banyak.
  3. Guna RSI untuk menilai apakah Bitcoin telah terjual lebih banyak. Jika RSI berada di bawah dua garis terjual lebih banyak, anda boleh melakukan pembelian lebih banyak.

Strategi dagangan khusus:

  1. Jika WVF di bawah Brin melintasi jalur, dan harga lebih tinggi daripada harga henti ATR, buat lebih banyak bitcoin.
  2. Jika RSI lebih rendah daripada 50 atau 30 oversold, anda boleh short bitcoin.

Keuntungan strategi ini ialah:

  1. Ia juga mempunyai keupayaan untuk melakukan banyak shorting dan boleh berdagang dua hala.
  2. Menggunakan ATR Stop Loss untuk mengawal risiko dan mengelakkan kerosakan.
  3. Ia juga menggunakan WVF, Brinband dan RSI untuk menilai dan meningkatkan ketepatan isyarat.

Risiko strategi ini:

  1. Blink band dan parameter RSI yang tidak betul boleh menyebabkan isyarat yang salah.
  2. Kejadian yang tidak dijangka yang menyebabkan kenaikan harga atau lonjakan mungkin menyebabkan kerugian berhenti.
  3. Kos urus niaga akan memberi kesan kepada keuntungan.

Secara keseluruhannya, Super BitMoon adalah strategi kuantitatif dinamik yang sangat sesuai untuk Indicatorscombos garis pendek, dan juga mempunyai ciri-ciri untuk mengikuti trend dan membalikkan perdagangan. Dengan pengoptimuman parameter yang munasabah, diharapkan untuk mendapatkan nisbah keuntungan risiko yang lebih baik.

Kod sumber strategi
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-08 09:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Super BitMoon v1", overlay=false, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)

/////////////////////////////////////////////////////////////
//START - SET DATE RANGE

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2011, title = "From Year")
ToMonth   = input(defval = 12, title = "To Month", minval = 1)
ToDay     = input(defval = 31, title = "To Day", minval = 1)
ToYear    = input(defval = 2018, title = "To Year")

startDate = time > timestamp(FromYear, FromMonth, FromDay, 00, 00)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true

/////////////////////////////////////////////////////////////
//END - SET DATE RANGE



/////////////////////////////////////////////////////////////
//START - INDICATORS

//ATR STOPS TREND FILTER
length = input(5, title="ATR Stop's Length")
mult = input(1, minval=0.01, title="ATR Stop's Multiple")
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1

//SYNTHETIC VIX
pd = input(10, title="Synthetic VIX's Length")
bbl = input(2, title="Synthetic VIX's Bollinger Band's Length")
mult2 = input(0.01, minval=0.01, title="Synthetic VIX's Bollinger Band's Std Dev")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult2 * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
upperBand = midLine + sDev

//RSI
rsi = rsi(close, input(10,title="RSI's Length"))
os1 = input(50,title="RSI's Oversold Level 1")
os2 = input(50,title="RSI's Oversold Level 2")

/////////////////////////////////////////////////////////////
//END - INDICATORS



/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

condition1 = crossunder(wvf, upperBand) and close > vstop and withinTimeRange
condition2 = crossunder(rsi, os1) and withinTimeRange
condition3 = crossunder(rsi, os2) and withinTimeRange

strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2 or condition3)

/////////////////////////////////////////////////////////////
//END - TRADING RULES