Strategi ini disebut Super BitMoon. Ini adalah strategi perdagangan momentum kuantitatif jangka pendek yang cocok untuk Bitcoin. Strategi ini memiliki kemampuan panjang dan pendek, yang memungkinkannya untuk diperdagangkan ketika Bitcoin menembus level support atau resistance utama.
Bagaimana strategi ini bekerja:
Aturan perdagangan khusus:
Keuntungan dari strategi ini:
Risiko dari strategi ini:
Secara singkat, Super BitMoon adalah strategi momentum kuantitatif yang solid yang ideal untuk perdagangan kombo Indikator jangka pendek, dengan karakteristik mengikuti tren dan reversi rata-rata. Dengan penyesuaian parameter yang tepat, dapat mencapai rasio risiko-manfaat yang baik.
/*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