Strategi ini bertujuan untuk menangkap pergerakan harga jangka pendek dengan menggunakan gabungan Bollinger Bands (BB), Moving Average (MA), dan Relative Strength Index (RSI) untuk perdagangan panjang. Strategi ini memasuki kedudukan panjang apabila harga berada di atas band atas dan purata bergerak, dan RSI menunjukkan keadaan oversold. Ia menguruskan risiko dan kunci dalam keuntungan melalui tahap stop loss dan mengambil keuntungan berasaskan peratusan, dan menyesuaikan harga kemasukan berdasarkan tahap akaun Bybit pedagang untuk mengambil kira komisen.
Strategi ini berdasarkan prinsip-prinsip berikut:
Dengan menggabungkan ketiga-tiga penunjuk ini, strategi mengenal pasti peluang masuk panjang yang berpotensi apabila harga melanggar Band Bollinger atas, berada di atas purata bergerak, dan RSI berada di rantau oversold.
Strategi ini menggunakan gabungan Bollinger Bands, Moving Average, dan RSI untuk mengenal pasti peluang perdagangan jangka panjang jangka pendek. Ia menentukan trend menggunakan Bollinger Bands dan Moving Average, mengenal pasti keadaan oversold dengan RSI, dan menetapkan stop loss dan mengambil tahap keuntungan untuk menguruskan risiko. Strategi ini mempertimbangkan kesan komisen dan menyesuaikan berdasarkan tahap akaun Bybit pedagang. Walaupun strategi ini mempunyai kelebihan tertentu, ia masih menghadapi risiko seperti isyarat palsu, turun naik pasaran, dan pembalikan trend. Pengoptimuman masa depan boleh termasuk pengoptimuman parameter, menggabungkan kedudukan panjang dan pendek, stop loss dinamik dan mengambil keuntungan, mengoptimumkan penunjuk lain, dan mengoptimumkan pengurusan wang untuk meningkatkan prestasi dan kemampuan penyesuaian pedagang.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@BryanAaron //@version=5 strategy("Bybit . BB Short-Term Trading Strategy - Long Only", overlay=true) // Input parameters bbLength = input(45, title="BB Length") bbMultiplier = input(1.0, title="BB Multiplier") maLength = input(90, title="MA Length") rsiLength = input(5, title="RSI Length") rsiUpperThreshold = input(85, title="RSI Upper Threshold") rsiLowerThreshold = input(45, title="RSI Lower Threshold") slPerc = input(2.0, title="Stop Loss %") tpPerc = input(4.0, title="Take Profit %") bybitAccountLevel = input.string("VIP 0", title="Bybit Account Level", options=["VIP 0", "VIP 1", "VIP 2", "VIP 3", "VIP 4"]) // Calculate Bollinger Bands [bbMiddle, bbUpper, bbLower] = ta.bb(close, bbLength, bbMultiplier) // Calculate moving average ma = ta.sma(close, maLength) // Calculate RSI rsi = ta.rsi(close, rsiLength) // Trading conditions longCondition = close > bbUpper and close > ma and rsi < rsiLowerThreshold shortCondition = close < bbLower and close < ma and rsi > rsiUpperThreshold // Entry and exit signals var bool longEntry = false var bool shortEntry = false if (longCondition and not longEntry) longEntry := true shortEntry := false else if (shortCondition and not shortEntry) shortEntry := true longEntry := false else if (not longCondition and not shortCondition) longEntry := false shortEntry := false // Set commission based on Bybit account level commissionPerc = switch bybitAccountLevel "VIP 0" => 0.075 "VIP 1" => 0.065 "VIP 2" => 0.055 "VIP 3" => 0.045 "VIP 4" => 0.035 => 0.075 // Adjust entry prices based on commission longEntryPrice = close * (1 + commissionPerc / 100) shortEntryPrice = close * (1 - commissionPerc / 100) // Calculate stop loss and take profit prices longStopPrice = longEntryPrice * (1 - slPerc / 100) longProfitPrice = longEntryPrice * (1 + tpPerc / 100) shortStopPrice = shortEntryPrice * (1 + slPerc / 100) shortProfitPrice = shortEntryPrice * (1 - tpPerc / 100) // Plot signals plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green) plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red) // Entry and exit if (longEntry) strategy.entry("Long", strategy.long, limit=longEntryPrice, stop=longStopPrice, comment="Long Entry") strategy.exit("Long TP/SL", from_entry="Long", limit=longProfitPrice, stop=longStopPrice, comment="Long Exit") else if (shortEntry) strategy.entry("Short", strategy.short, limit=shortEntryPrice, stop=shortStopPrice, comment="Short Entry") strategy.exit("Short TP/SL", from_entry="Short", limit=shortProfitPrice, stop=shortStopPrice, comment="Short Exit") else strategy.close_all(comment="Close All") // Plot Bollinger Bands plot(bbUpper, color=color.blue, title="BB Upper") plot(bbMiddle, color=color.orange, title="BB Middle") plot(bbLower, color=color.blue, title="BB Lower") // Plot moving average plot(ma, color=color.purple, title="MA")