Стратегия разворота импульса на основе скользящих средних и индекса относительной силы


Дата создания: 2024-01-03 17:14:15 Последнее изменение: 2024-01-03 17:14:15
Копировать: 10 Количество просмотров: 547
1
Подписаться
1621
Подписчики

Стратегия разворота импульса на основе скользящих средних и индекса относительной силы

Обзор

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

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

Эта стратегия использует 14-дневную скользящую среднюю как быструю сигнальную линию, а 28-дневную скользящую среднюю как медленную. В сочетании с RSI показатель определяет, перекупается ли рынок.

Когда 14-дневная скользящая средняя проходит через 28-дневную скользящую среднюю и RSI ниже 30 или RSI ниже 13, рассуждение об обратном движении, делается дополнительный вход. Когда 14-дневная скользящая средняя проходит через 28-дневную скользящую среднюю, рассуждение об обратном движении не действует, частично останавливается.

Кроме того, в стратегии также установлен механизм частичного остановки. Когда доход от хранения достигнет установленного остановки (по умолчанию 8%), будет частично остановлен (по умолчанию продается 50%).

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

Эта стратегия сочетает в себе преимущества движущейся средней и избегает убытков, вызванных whipsaw.

  1. Некоторые из них отфильтрованы с помощью медленно-движущейся средней.

  2. Индекс RSI показывает, что мы перекупаем и перепродаем, чтобы избежать повышения.

  3. Механизм частичного блокирования блокирует часть прибыли и снижает риск.

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

  1. Двойная пересекающаяся средняя стратегия легко приводит к потере. Эта стратегия может отфильтровывать часть whipsaw с помощью индикатора RSI для вспомогательного суждения.

  2. Частичная остановка может привести к тому, что вы пропустите более крупную игру. Вы можете сбалансировать риски и выгоды, скорректировав остановку.

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

  1. Поиск оптимальных комбинаций скользящих средних для различных параметров.

  2. Различные пороги RSI могут быть протестированы.

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

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

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

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "14/28 SMA and RSI", shorttitle = "14/28 SMA and RSI", overlay = false, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD)
src = close, len = input(14, minval=1, title="Length")
take_Profit=input(8, title="Take Profit")
quantityPercentage=input(50, title="Percent of Quantity to Sell")
closeOverbought=input(true, title="Close Overbought and Take Profit")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
longCondition = 0
sellCondition = 0
takeProfit = 0
quantityRemainder = 100
smaSignal = input(14, title="SMA Signal Period")
smaLong = input(28, title="SMA Longer Period")
if ((sma(close, smaSignal) >= sma(close, smaLong) and rsi<= 30) or (rsi<=13)) and strategy.position_size==0
    longCondition:=1

if longCondition==1
    strategy.entry("Buy", strategy.long)
    
profit = ((close-strategy.position_avg_price)/strategy.position_avg_price) * 100

if sma(close, smaSignal) <= sma(close, smaLong) and strategy.position_size>1
    sellCondition := 1

if strategy.position_size>=1
    if closeOverbought == true
        if profit>=take_Profit and takeProfit == 0
            strategy.exit("Take Profit", profit=take_Profit, qty_percent=quantityPercentage)
            takeProfit:=1
            quantityRemainder:=100-quantityPercentage
    if sellCondition == 1 and quantityRemainder<100
        strategy.close("Buy")

    if closeOverbought == false and rsi>70
        strategy.close("Take Profit")
        
plot(longCondition, "Buy Condition", green)
plot(takeProfit, "Partial Sell Condition", orange)
plot(sellCondition, "Sell Condition", red)