Стратегия Ренко с пересечением скользящих средних по длительности


Дата создания: 2024-01-24 10:55:57 Последнее изменение: 2024-01-24 10:55:57
Копировать: 0 Количество просмотров: 717
1
Подписаться
1617
Подписчики

Стратегия Ренко с пересечением скользящих средних по длительности

Обзор

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

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

Основными источниками сигналов для этой стратегии являются короткосрочные TEMA и золотые форки SMA. Конкретная логика заключается в следующем:

Когда краткосрочная TEMA пересекает краткосрочную SMA, делают больше; когда краткосрочная TEMA пересекает краткосрочную SMA, делают меньше.

Кроме того, в стратегии также установлены два параметра avg_protection и gain_protection для регулирования логики входа и остановки:

  • При avg_protection>0 покупают только тогда, когда цена закрытия ниже средней цены текущей позиции, что позволяет снизить стоимость позиции;

  • При gain_protection>0 продается только стоп, когда цена закрытия превышает определенную процентную долю от цены входа, что блокирует прибыль.

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

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

Основные преимущества этой стратегии:

  1. На основе карты Ренко, которая эффективно фильтрует шум и определяет тенденции;
  2. Сигналы, построенные с использованием показателей TEMA, высокочувствительны и хорошо отслеживаются;
  3. Например, если вы хотите, чтобы ваш игровой автомат был более простым, то вы можете использовать его для создания игры.
  4. В сочетании с долгосрочными и краткосрочными средними линиями, можно поймать возможности в тренде.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Renko не может контролировать интервалы времени, потому что его собственная временная ось неравномерна.
  2. В то же время, высокая чувствительность к TEMA может привести к появлению ошибочных сигналов.
  3. Неправильная настройка параметров может привести к утечке.

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

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

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

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

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

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

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

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))