Двойная пересеченная скользящая средняя в сочетании с количественной стратегией торговли индикатором RSI

Автор:Чао Чжан, Дата: 2023-11-21 12:09:50
Тэги:

img

Обзор

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

Логика стратегии

Когда быстрый 9-периодный скользящий средний пересекает медленный 50-периодный скользящий средний, он сигнализирует о восходящем тренде в более короткие сроки, перекрывающихся с восходящим трендом в более длительные сроки, что является типичным бычьим сигналом. Между тем, если RSI больше предыдущего периода на 5 пунктов и меньше 70, это означает, что актив приближается, но еще не в перекупленной зоне, что делает его хорошим моментом для длинного хода.

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

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

  • Двойные скользящие средние помогают определить общее направление рынка и избежать ложного прорыва
  • Индикатор RSI предотвращает ошибочные движения в переломных моментах
  • Гибкость при корректировке периодов скользящих средних для различных символов и временных рамок
  • Контролируемая стратегия стоп-лосса

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

  • Сигнал перекрестка может отстать и вызвать некоторые потери.
  • Неправильное установление параметров RSI может пропустить лучшее время входа
  • Нужно следить за объемом торговли, чтобы увидеть, поддерживает ли он движение цены
  • Чёрный лебедь требует ручного вмешательства

Руководство по оптимизации

  • Оптимизируйте параметры RSI для достижения наилучших результатов
  • Включить объем торговли, чтобы избежать ложных сигналов
  • Испытание оптимальных периодов скользящей средней на основе символов и временных рамок
  • Расслабление стоп-лосса, чтобы избежать раннего остановки

Резюме

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


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)





Больше