Краткосрочная количественная торговая стратегия «Купи дешево и продай дорого», основанная на скользящей средней RSI


Дата создания: 2023-12-01 16:59:26 Последнее изменение: 2023-12-01 16:59:26
Копировать: 0 Количество просмотров: 703
1
Подписаться
1619
Подписчики

Краткосрочная количественная торговая стратегия «Купи дешево и продай дорого», основанная на скользящей средней RSI

Обзор

Стратегия определяет точки покупки и продажи через пересечение RSI с его средней линией и относится к стратегии короткой торговли. Стратегия покупает, когда RSI ниже ее средней линии, и продает, когда она выше ее средней линии, и относится к типичной стратегии низкой покупки и высокой продажи.

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

  1. Вычислить значение RSI с длиной цикла 40 K-линий
  2. Вычислите среднюю линию МА для RSI с длиной цикла 10 K-линий
  3. Сигнал покупки генерируется, когда индикатор RSI ниже своей средней линии, умноженный на коэффициент ((1-промежуточный диапазон/100)
  4. Сигнал продажи генерируется, когда RSI выше своей средней линии, умноженной на коэффициент ((1 + диапазон покупок / 100)
  5. По умолчанию, расстояние между зонами торговли и покупки составляет 5, что означает, что от средней линии происходит сигнал при отрицательном отклонении в 5%.
  6. Равновесие определяется как RSI, когда показатель выше его средней и выше уровня 50

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

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

  1. Использование RSI для определения структуры рынка, сам по себе показатель является более надежным
  2. Линейная фильтрация позволяет избежать ненужных сделок и повышает стабильность
  3. Параметры расстояния между зонами купли и продажи регулируют частоту торгов
  4. Код простой, понятный и логичный.

В целом, это простая и практичная стратегия для коротких сделок.

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

  1. RSI может подавать ошибочные сигналы, следует обратить внимание на форму кривой
  2. Неправильное расстояние между торговыми площадками может привести к чрезмерному количеству сделок или упущенным возможностям.
  3. Высокая частота сделок, влияние на стоимость сделок
  4. Оптимизм, основанный только на одном показателе, подвержен рыночным аномалиям

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

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

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

  1. Добавление дополнительных фильтрующих показателей, таких как показатели объема торгов, чтобы гарантировать, что сигналы появляются только в точках перехода тенденции
  2. Присоединяйтесь к стратегии Stop Loss и контролируйте свои убытки
  3. Оптимизация расстояний между торговыми зонами, балансировка частоты торгов и доходности
  4. Автоматический поиск оптимальных комбинаций с помощью алгоритмов машинного обучения
  5. Добавление агрегированных моделей, объединяющих результаты нескольких подстратегий

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

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

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

Исходный код стратегии
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 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/
// © I11L

//@version=5
strategy("I11L - Meanreverter 4h", overlay=false, pyramiding=3, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash,process_orders_on_close=false, calc_on_every_tick=false)
 
frequency = input.int(10)
rsiFrequency = input.int(40)
buyZoneDistance = input.int(5)
avgDownATRSum = input.int(3)
useAbsoluteRSIBarrier = input.bool(true)
barrierLevel = 50//input.int(50)

momentumRSI = ta.rsi(close,rsiFrequency)
momentumRSI_slow = ta.sma(momentumRSI,frequency)
 
isBuy = momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) //and (momentumRSI < barrierLevel or not(useAbsoluteRSIBarrier))
isShort = momentumRSI > momentumRSI_slow*(1+buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))
momentumRSISoftClose = (momentumRSI > momentumRSI_slow) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))

isClose = momentumRSISoftClose

plot(momentumRSI,color=isClose ? color.red :  momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) ? color.green : color.white)
plot(momentumRSI_slow,color=color.gray)
plot(barrierLevel,color=useAbsoluteRSIBarrier ? color.white : color.rgb(0,0,0,0))
plot(momentumRSI_slow*(1-buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+(buyZoneDistance*2)/100),color=color.gray)

// plot(strategy.wintrades - strategy.losstrades)

 
 
if(isBuy)
    strategy.entry("Buy",strategy.long, comment="#"+str.tostring(strategy.opentrades+1))

// if(isShort)
//     strategy.entry("Sell",strategy.short, comment="#"+str.tostring(strategy.opentrades+1))

if(isClose)
    strategy.exit("Close",limit=close)