Эта стратегия генерирует торговые сигналы, основанные на индикаторе Bollinger Bands %B. Она становится длинной, когда значение %B падает ниже заданного порога и использует динамический подход к средней позиции, чтобы следовать тренду до того момента, пока не начнется получение прибыли или остановка убытков. Стратегия подходит для выявления возможностей отступления после того, как поддержка нижней полосы Боллинджера будет нарушена.
Преимущества этой стратегии:
Существуют также некоторые риски, связанные с этой стратегией:
Решения:
Стратегия может быть дополнительно оптимизирована в следующих областях:
В целом, это относительно надежная долгосрочная стратегия торговли. Есть возможность улучшения как точности сигнала, так и настройки параметров. В сочетании с дополнительной фильтрацией сигнала и осторожным размещением позиций эта стратегия может достичь приличных результатов на трендовых рынках.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands %B Long Strategy", shorttitle="BB %B Long Strategy", overlay=true) // Girdiler length = input.int(20, title="BB Length") src = input(close, title="Source") dev = input.float(2.0, title="Deviation") kar_hedefi = input(5, title="Take Profit") zarar_durumu = input(100, title="Stop Loss") start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date") end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date") altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin") // Bollinger Bantları %B göstergesi basis = ta.sma(src, length) stdDev = ta.stdev(src, length) upperBand = basis + dev * stdDev lowerBand = basis - dev * stdDev percentB = (src - lowerBand) / (upperBand - lowerBand) // Alım-Satım Sinyalleri longCondition = percentB < altinda_kalirsa_long // Kar/Zarar Hesaplama takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100) stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100) // Long (Alım) İşlemi if (longCondition ) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss) // Take Profit Seviyesi Çizgisi plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)