Осциллирующая длинная и короткая стратегия обмена валют RSI


Дата создания: 2023-12-25 13:49:48 Последнее изменение: 2023-12-25 13:49:48
Копировать: 0 Количество просмотров: 607
1
Подписаться
1623
Подписчики

Осциллирующая длинная и короткая стратегия обмена валют RSI

Обзор

Коротко-полярная стратегия RSI - это стратегия количественной торговли, используемая в криптовалютах. Она сочетает в себе RSI и ICHIMOKU, чтобы идентифицировать полярные сигналы при колебаниях цен, чтобы достичь низкой покупки и высокой продажи. Она применяется для среднего и длинного циклов, таких как 3-4 часа и более.

Стратегический принцип

Стратегия основана на следующих показателях и правилах:

Индекс ICHIMOKU

  • Тенканская линия: средняя цена за последние 20 K-линий
  • Линия Kijun: средняя точка наивысшего минимума за последние 50 линий K
  • Линия Senkou A: промежуток между линией Tenkan и линией Kijun
  • Цены на Senkou B Line: средние цены на Senkou B Line за последние 120 дней
  • Чикоу-линия: первые 30 линий K по цене закрытия текущей линии K

Индекс RSI

  • Диапазон 0-100
  • Выше 50 - многоголовый сигнал, ниже 50 - пустой сигнал

Правила участия
Многоголовый вход: тенканская линия проходит через линию киджун (золотой крест) и цена пробивает линию сенкоу а&б, в то же время RSI выше 50 Вход с головой вниз: тенканская линия вниз через киджунскую линию (смертный пересечение) и цена упала ниже линии сенкоу а&б, в то же время RSI ниже 50

Выход из правил
Немедленно прекратить ущерб при появлении сигнала, противоположного входу

Эта стратегия учитывает среднесрочные и долгосрочные тенденции, краткосрочную ликвидность и перекуп и перепродажу, чтобы уловить возможность поворота в шокирующей ситуации. В то же время она устанавливает правила остановки убытков, чтобы избежать больших потерь.

Анализ преимуществ

1. Комплексные оценки по нескольким показателям, обеспечивающие высокую точность

Стратегия одновременно учитывает тенденции ICHIMOKU и поддерживает резистентные суждения, перекуп и перепродажу RSI, а также денежную ликвидность в направлении K-линии, чтобы гарантировать надежность сигнала.

2. Подходит для шокирующих ситуаций, часто прибыльно

Поскольку криптовалютный рынок имеет большую волатильность, эта стратегия позволяет эффективно использовать возможности для перемен в шокирующей ситуации, что приводит к частым низким ценам и высоким продажам.

3. Предотвращение отслеживания, контролируемые риски

Стратегия комплексно учитывает среднесрочные и долгосрочные тенденции и краткосрочные обстоятельства, чтобы избежать риска отгоняющего падения, и одновременно устанавливает риск предотвращения убытков.

Анализ рисков

1. Может пропустить часть процесса

Стратегия основана на обратном, и часто колеблется, когда возникают длительные периоды работы.

2. Одиночный вид, не способный распределить риск

Стратегия заключается в том, чтобы торговать только одной разновидностью, не распределяя системный риск на рынке.

3. Остановка убытков в экстремальных ситуациях

В экстремальных ситуациях, таких как прыжки в воздух, взрыв мощности и т. д., стратегия может вызвать стоп-убытки и вынудить к уходу.

Направление оптимизации

1. Увеличение стратегии стоп-лосса и снижение разовых потерь

Для блокирования прибыли можно установить мобильный стоп или остаточный стоп-процент, чтобы предотвратить ее возвращение к нулю.

2. Распределение рыночного риска в сочетании с корреляцией в индексах

Для дифференциации системного риска рынка можно искать торговые возможности в более релевантных сортах.

3. Увеличение условных фильтров, снижение недействительных сделок

Условия, такие как колебание цены, изменение объема сделок, могут быть отфильтрованы, чтобы избежать неэффективного обратного сигнала и повысить вероятность получения прибыли.

Подвести итог

В сочетании с использованием показателей ICHIMOKU и RSI, для определения поворотных точек криптовалюты, она подходит для получения прибыли в условиях шока. Она одновременно устанавливает правила остановки для контроля риска. Эта стратегия может быть дополнительно усилена путем оптимизации механизма остановки, ассоциированного распределения риска и фильтрации условий, что стоит проверить экспериментально.

Исходный код стратегии
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 3m
basePeriod: 1m
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="Ichimoku + RSI Crypto trending strategy", overlay=true, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=1  )

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low


//Inputs
ts_bars = input(20, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(50, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

//Volatility
//vollength = input(defval=1, title="VolLength")
//voltarget = input(defval=0., type=input.float, step=0.1, title="Volatility Target")
//Difference = abs((haClose - haOpen)/((haClose + haOpen)/2) * 100)
//MovingAverage = sma(Difference, vollength)
//highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
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 = 2019, title = "From Year", minval = 1970)
 
// 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)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)

//RSI
change = change(haClose)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(haClose, cs_offset-1) > 0
cs_cross_bear = mom(haClose, cs_offset-1) < 0
price_above_kumo = haClose > ss_high
price_below_kumo = haClose < ss_low
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish //and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish //and highvolatility

strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)

strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)