Это долгосрочная криптовалютная стратегия, которая сочетает в себе скользящую среднюю величину, индекс относительной силы (RSI) и рыночную корреляцию, чтобы определить средне- и долгосрочные ценовые тенденции, установить позиции, когда начинаются тенденции, пирамидировать вдоль тенденций и получать прибыль, когда обнаруживаются сигналы об обратном тренде.
Стратегия основывается на трех показателях:
Индекс относительной силы (RSI): для определения условий перекупления и перепродажи. Выше 51 считается перекупленным, а ниже 49 перепроданным.
Простая скользящая средняя (SMA): 9-дневная SMA ценового закрытия для определения направления тренда.
Рыночная корреляция: использовать общую криптокаппуляцию в качестве ориентира для расчета корреляции с торговым инструментом, заменяя оригинальные столбики корреляционными столбиками для улучшения качества сигнала.
В частности, правила торговли:
Длинный вход: когда RSI пересекает 51 и цена закрытия выше 9-дневной SMA.
Короткий вход: когда RSI пересекается ниже 49 и цена закрытия ниже 9-дневной SMA.
Приобретение прибыли/остановка убытков: 1%/0,1% для длинных, 0,05%/0,03% для коротких.
Существует также временное условие, ограничивающее период торговли.
Сочетание показателей тенденции и показателей перекупленности/перепроданности эффективно отслеживает среднесрочные и долгосрочные тенденции.
Корреляция рынка улучшает качество сигнала, избегая ложных тенденций.
Разумная прибыль и стоп-лосс предотвращают увеличение потерь.
Настраиваемый период торговли адаптируется к различным рыночным условиям.
Неэффективный на рынках с короткой волатильностью.
Обратная оценка бенчмарка может привести к задержке выхода торговых инструментов.
Потенциально упускает возможности для обратного движения, когда делает только длинные/короткие.
Решения:
Добавить краткосрочные показатели, например, KC, BOLL для обнаружения рыночного режима и остановок.
Улучшить анализ ориентиров для своевременного выхода.
Торгуйте двусторонними инструментами, чтобы отслеживать обратный эффект.
Настройка параметров RSI, SMA, прибыли/стоп-лосса на основе рыночной статистики.
Оценить больше комбинаций эталонного показателя и торговли с более высокой корреляцией и ликвидностью.
Сочетать с другими стратегиями, используя эту для средне- и долгосрочных активов.
Это оптимизированная и широко адаптируемая средне- и долгосрочная криптовалютная стратегия. Она эффективно сочетает в себе анализ тренда, импульса и корреляции для улучшения торговых решений. Правильное настройка параметров и использование композитов могут значительно повысить его стабильность и прибыльность.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title = "Crypto swing correlation", overlay = true, pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) //time fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2010, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true useCorrelation = input(true, title="Use Correlation candles?") symbol = input("BTC_USDT:swap", type=input.symbol) haClose = useCorrelation ? security(symbol, timeframe.period, close) : close haOpen = useCorrelation ? security(symbol, timeframe.period, open) : open haHigh = useCorrelation ? security(symbol, timeframe.period, high) : high haLow = useCorrelation ? security(symbol, timeframe.period, low) : low length = input( 50 ) overSold = input( 51 ) overBought = input( 49 ) s = input(title="Source", defval="haClose", options=["haClose", "haOpen", "haHigh", "haLow"]) price = s == "haClose" ? haClose: s == "haOpen" ? haOpen : s == "haHigh" ? haHigh : s == "haLow" ? haLow : na len = input(8, "Length Moving average", minval=1) src = price ma = sma(src, len) vrsi = rsi(price, length) long = crossover(vrsi, overSold) and time_cond and price > ma short = crossunder(vrsi, overBought) and time_cond and price < ma takeProfit_long=input(1.0, step=0.005) stopLoss_long=input(0.1, step=0.005) takeProfit_short=input(0.05, step=0.005) stopLoss_short=input(0.03, step=0.005) strategy.entry("long",1,when=long) strategy.entry("short",0,when=short) strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')