
Эта стратегия сочетает в себе пересечение скользящих средних, относительно сильный индекс (RSI) и суждение о значительном увеличении объема торгов, создание позиций, чтобы сделать дополнительный пробел, когда цена попадает в определенную долю после высокого объема торгов, и установка трех прогрессивных стоп-листов для блокировки различных пропорций прибыли. У стратегии также есть опциональная функция отслеживания стоп-убытков, чтобы поймать возможность продолжения благоприятного изменения цены.
Золотой пересечение быстрого и медленного движущегося средних обеспечивает ранние сигналы о начале изменения тренда. RSI используется для оценки состояния перекупа и перепродажи и помогает избежать появления сигналов выхода на рынок в этих сценариях, чтобы гарантировать стабильность сигнала. Когда объем торгов значительно превышает средний уровень, это означает, что внимание рынка было сосредоточено на каком-то потенциальном изменении цены.
Принцип получения и остановки выхода из пустого сигнала аналогичен принципу многодела, который здесь не рассматривается. Следует отметить, что эта стратегия обладает одновременной способностью многодела и многодела.
Эта стратегия имеет следующие основные преимущества:
Постепенное скрещивание средних линий в сочетании с показателями RSI формирует устойчивое решение о времени выхода на рынок, избегая создания позиций в зонах перекупа и перепродажи, что повышает вероятность получения прибыли.
Используйте в качестве вспомогательного аргумента рост объема торгов, чтобы обеспечить выбор промежуточного хранения с большим количеством колебаний цен, чтобы усилить индикаторную силу сигнала.
Применение стратегии создания позиций с определенным процентом падения цены и объема торгов увеличивает точность времени входа в рынок, а также хорошие шансы на обратный оборот или подъем.
Установка трех последовательных стоп-кодов, чтобы максимально использовать пространство для роста колебаний цен для блокирования прибыли, инвесторы могут выбрать несколько стоп-кодов в зависимости от того, как они берут на себя риск.
Опциональная функция отслеживания стоп-лосс, позволяющая инвесторам выбирать, включить или нет, в зависимости от рыночных колебаний, а также добиваться большей прибыли при сохранении гарантии.
Применяется также для многооборотных и пустых сделок, прибыль может быть получена как при повышении, так и при падении рынка, что увеличивает практичность стратегии.
Несмотря на тщательно разработанную стратегию, в любом финансовом продукте есть риск, и следует обратить внимание на следующие факторы:
Быстрый или медленный пересечение средней линии не всегда является точным в определении движения рынка, и если используются неправильные параметры средней линии, то может возникнуть ошибочный сигнал.
Неправильная настройка параметров RSI также может привести к проникновению в зону перекупа и перепродажи.
Субсидирование объема торгов не всегда означает существенное изменение цены, и эталонный критерий объема торгов может быть соответствующим образом скорректирован.
Слишком большое или слишком маленькое снижение цены и объема торгов может повлиять на сроки выхода на рынок, что также требует корректировки в соответствии с рынком.
Установленная стоп-магнитация не гарантирует полную продажу стоп-оборот, а резкие изменения рынка могут привести к сдвигу.
Следить за стоп-лоском: если вы установили слишком большую величину, вы можете слишком рано выйти из стоп-лосса и потерять большую прибыль.
В связи с вышеуказанными рисками необходимо обеспечить стабильность и надежность стратегии путем оптимизации кода, корректировки параметров и строгого отбора.
В этой стратегии есть место для дальнейшей оптимизации:
Добавление других показателей, чтобы помочь в принятии решений, таких как комбинация показателей, таких как лента Брин, KD, может еще больше повысить точность сигнала.
В сочетании с методами машинного обучения, такими как создание динамических движущихся средних, таких как LSTM, можно автоматически корректировать параметры средней линии в зависимости от последних рыночных условий, повышая способность судить о тенденциях.
Добавлена функция динамической корректировки стоп/стоп-лосс, основанная на рыночных колебаниях, позволяющая стратегии автоматически корректировать стоп-прибыль в зависимости от текущих рыночных колебаний.
Использование метода динамического сближения для оптимизации фактора регресса в режиме реального времени в зависимости от взаимосвязи между общим падением и падением и отдельными акциями, чтобы выбрать оптимальное время для создания позиции.
Использование многофакторной модели в сочетании с эмоциональным анализом и анализом правил взаимосвязи может значительно повысить эффективность стратегии.
Эта стратегия в целом очень подходит для использования коротких и средних инвесторов. Оптимизированные функции стратегии будут более совершенными и интеллектуальными, с высокой стоимостью применения в реальном бою.
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true)
// Parametreler
fastLength = input(12, minval=1, title="Fast Moving Average")
slowLength = input(26, minval=1, title="Slow Moving Average")
rsiPeriod = input(14, minval=1, title="RSI Period")
volLength = input(20, minval=1, title="Volume MA Length")
volMultiplier = input(2.0, title="Volume Spike Multiplier")
trailOffset = input(1, title="Trailing Offset (%)")
usdtPerTrade = input(50000, title="USDT per Trade")
retraceFactor = input(0.8, title="Retracement Factor for Entry")
takeProfit1 = input(1, title="Take Profit 1 (%)")
takeProfit2 = input(2, title="Take Profit 2 (%)")
takeProfit3 = input(3, title="Take Profit 3 (%)")
trailForTP = input(true, title="Use Trailing Stop for Take Profits")
// Hesaplamalar
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
rsi = rsi(close, rsiPeriod)
volMA = sma(volume, volLength)
volumeSpike = volume > volMA * volMultiplier
// Durum Değişkenleri ve Saklanan Değerler
var float spikeVolume = na
var float spikePrice = na
var int direction = 0
// Alım/Satım Sinyalleri
longCondition = crossover(fastMA, slowMA) and rsi < 70
shortCondition = crossunder(fastMA, slowMA) and rsi > 30
// Hacim Spike ve Fiyat Hareketinin Saklanması
if (longCondition and volumeSpike)
spikeVolume := volume
spikePrice := close
direction := 1
else if (shortCondition and volumeSpike)
spikeVolume := volume
spikePrice := close
direction := -1
// Retracement Kontrolü ve Giriş Emirleri
if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100))
strategy.entry("Long", strategy.long, qty=usdtPerTrade / close)
spikeVolume := na
direction := 0
else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100))
strategy.entry("Short", strategy.short, qty=usdtPerTrade / close)
spikeVolume := na
direction := 0
// Take Profit Emirleri
if strategy.position_size > 0
strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)
if strategy.position_size < 0
strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)
// Pozisyon çıkışları
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)