Strategi ini adalah strategi perdagangan yang didasarkan pada Delta Volume dan Fibonacci Retracement. Strategi ini menentukan tren pasar dengan membandingkan volume pembeli dan penjual selama periode waktu tertentu, sambil menggunakan garis retracement Fibonacci untuk menentukan titik masuk dan keluar. Ketika volume pembeli melebihi volume penjual dan harga melanggar garis retracement Fibonacci 61,8%, ia memasuki posisi panjang; ketika volume penjual melebihi volume pembeli dan harga jatuh di bawah garis retracement Fibonacci 38,2%, ia menutup posisi.
Dengan menggabungkan garis Delta Volume dan Fibonacci Retracement, strategi ini masuk ketika tren terbentuk dan keluar ketika tren dapat berbalik, untuk menangkap tren utama pasar. Namun, strategi ini mungkin menghadapi risiko perdagangan yang sering terjadi di pasar yang berosilasi, sehingga perlu dioptimalkan dengan indikator lain dan langkah-langkah pengendalian risiko. Secara keseluruhan, strategi ini jelas dalam pemikiran, secara logis ketat, dan dapat digunakan sebagai strategi dasar untuk pengembangan dan aplikasi lebih lanjut.
/*backtest start: 2023-05-09 00:00:00 end: 2024-05-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Delta Volume with Fibonacci Levels Strategy", overlay=true) // Input pour la période de calcul du volume et du delta N = input(14, title="Période du Delta Volume") fibLength = input(21, title="Fibonacci Lookback Period") // Choix de la barre pour l'entrée et la sortie des trades entryPriceType = input.string("close", title="Entry Price Type", options=["open", "close"]) exitPriceType = input.string("close", title="Exit Price Type", options=["open", "close"]) // Correction des dates de début et de fin pour le backtest startDate = input(defval = timestamp("2021-01-01"), title = "Start Date") endDate = input(defval = timestamp("2022-01-01"), title = "End Date") // Calcul des volumes des acheteurs et des vendeurs buyerVolume = array.new_float() sellerVolume = array.new_float() // Mise à jour des volumes à chaque bougie buyVol = close > open ? volume : 0 sellVol = close < open ? volume : 0 array.unshift(buyerVolume, buyVol) array.unshift(sellerVolume, sellVol) // Gardez seulement les N dernières valeurs pour le delta volume if array.size(buyerVolume) > N array.pop(buyerVolume) if array.size(sellerVolume) > N array.pop(sellerVolume) // Calcul du delta de volume sumBuyerVolume = array.sum(buyerVolume) sumSellerVolume = array.sum(sellerVolume) deltaVolume = sumBuyerVolume - sumSellerVolume // Calcul du plus haut et du plus bas pour Fibonacci highestPrice = ta.highest(high, fibLength) lowestPrice = ta.lowest(low, fibLength) // Fibonacci Levels fib382 = lowestPrice + (highestPrice - lowestPrice) * 0.5 fib618 = lowestPrice + (highestPrice - lowestPrice) * 0.786 // Vérification des dates pour le backtest bool isInDateRange = true // Conditions d'entrée et de sortie entryPrice = entryPriceType == "open" ? open : close exitPrice = exitPriceType == "open" ? open : close // Acheter quand le volume des acheteurs dépasse celui des vendeurs, le prix est au-dessus du niveau 61.8% de Fibonacci if isInDateRange and deltaVolume > 0 and entryPrice > fib618 strategy.entry("Buy", strategy.long) // Vendre quand le volume des vendeurs dépasse celui des acheteurs, le prix est en dessous du niveau 38.2% de Fibonacci if isInDateRange and deltaVolume < 0 and exitPrice < fib382 strategy.close("Buy") // Affichage des niveaux de Fibonacci et du delta de volume plot(fib382, color=color.red, title="Fibonacci 38.2%") plot(fib618, color=color.green, title="Fibonacci 61.8%") plot(deltaVolume, color=deltaVolume > 0 ? color.green : color.red, title="Delta Volume")