Strategi Perdagangan Momentum Kuantitatif Super BitMoon


Tanggal Pembuatan: 2023-09-15 16:13:05 Akhirnya memodifikasi: 2023-09-15 16:13:05
menyalin: 1 Jumlah klik: 674
1
fokus pada
1617
Pengikut

Strategi ini, yang disebut Super BitMoon, adalah strategi perdagangan kuantitatif dinamis garis pendek untuk bitcoin. Strategi ini memiliki kemampuan untuk melakukan perdagangan baik dalam posisi overhead maupun shorting, dan dapat melakukan perdagangan ketika bitcoin mengalami penembusan terhadap titik dukungan atau resistensi penting.

Bagaimana strategi ini bekerja:

  1. Menggunakan indikator ATR untuk menghitung jangkauan pergerakan dan stop loss dalam waktu dekat. Jika harga melewati stop loss pada garis K, maka akan terjadi pembalikan tren.
  2. Menggunakan rata-rata bergerak berbobot WVF dan indikator Bollinger Bands untuk menentukan apakah Bitcoin berada dalam kondisi overbought atau oversold. Jika Bollinger Bands berada di bawah WVF, menunjukkan bahwa pasar mungkin berada dalam kondisi oversold, Anda dapat melakukan lebih banyak.
  3. Jika RSI berada di bawah dua garis oversold, Anda dapat melakukan overbought.

Strategi perdagangan spesifik:

  1. Jika WVF melintasi pita Brin dan harga lebih tinggi dari harga stop loss ATR, maka lebih banyak bitcoin.
  2. Jika RSI berada di bawah 50 atau 30 oversold, maka short bitcoin.

Keuntungan dari strategi ini adalah:

  1. Pada saat yang sama memiliki kemampuan untuk melakukan banyak shorting, dapat melakukan perdagangan dua arah.
  2. Menggunakan ATR Stop Loss untuk mengendalikan risiko dan menghindari peningkatan kerugian.
  3. Selain itu, indikator WVF, Brin dan RSI digunakan untuk menilai, meningkatkan akurasi sinyal.

Strategi ini berisiko:

  1. Blink dan parameter RSI yang tidak tepat dapat menyebabkan sinyal yang salah.
  2. Kejadian tak terduga yang menyebabkan harga naik atau turun dapat menyebabkan stop loss dipicu.
  3. Biaya transaksi akan berdampak pada pendapatan.

Secara keseluruhan, Super BitMoon adalah strategi kuantitatif dinamis yang sangat cocok untuk short-line Indicatorscombos, dengan fitur trend tracking dan reversal trading. Dengan optimasi parameter yang masuk akal, diharapkan untuk mendapatkan rasio risiko / keuntungan yang lebih baik. Namun, pedagang juga perlu mempertimbangkan faktor-faktor seperti pengendalian biaya dan manajemen dana untuk mengurangi risiko perdagangan di pasar.

Kode 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