Стратегия следования за трендом на основе индикатора WaveTrend

EMA SMA HLCC3 ESA
Дата создания: 2024-04-28 13:56:27 Последнее изменение: 2024-04-28 13:56:27
Копировать: 1 Количество просмотров: 1517
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе индикатора WaveTrend

Обзор

Стратегия WaveTrend Cross LazyBear - это торговая стратегия, основанная на индикаторе WaveTrend. Стратегия использует две линии индикатора WaveTrend с разными циклами. Она создает сигнал покупки, когда более быстрая линия индикатора WaveTrend с более быстрыми циклами пересекает более медленную линию индикатора WaveTrend, и сигнал продажи, когда более быстрая линия индикатора WaveTrend с более медленными циклами пересекает более медленную линию индикатора WaveTrend.

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

В основе этой стратегии лежит индикатор WaveTrend, который рассчитывается следующими шагами:

  1. Вычислить типичную цену ((AP), которая равна средней величине наивысшей цены, наименьшей цены и цены закрытия.
  2. Вычислить показательную скользящую среднюю (ESA) для AP с периодичностью n1。
  3. Вычислить показательная скользящая средняя d абсолютных значений разницы AP и ESA с периодом n1。
  4. Вычислить показатель CI, который равен ((AP - ESA) / (0.015 * d) )
  5. Рассчитайте индексный скользящий средний TCI для CI с периодом n2, получив индикатор WaveTrend.

Стратегия использует две линии индикатора WaveTrend с разными циклами (например, 10 и 21), обозначенные как WT1 и WT2 соответственно. Когда WT1 пересекает WT2, создается сигнал покупки; когда WT1 пересекает WT2, создается сигнал продажи. Кроме того, стратегия также устанавливает 4 уровня вспомогательного суждения: уровень перекупа 1, уровень перекупа 2, уровень перепродажи 1 и уровень перепродажи 2, для вспомогательного суждения о состоянии рынка.

Стратегические преимущества

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

Стратегический риск

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

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

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

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

Стратегия WaveTrend Cross LazyBear - это стратегия отслеживания трендов на основе индикатора WaveTrend, с помощью дизайна индикатора двойного цикла и вспомогательного суждения о уровне перекупа и перепродажи, которая одновременно с улавливанием тренда учитывает определенный контроль риска. Однако эта стратегия может иметь больше ложных сигналов на колеблющихся рынках и отсутствие строгих мер управления риском.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © burakaydingr

//@version=5
strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true)

// Kullanıcı girişleri
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-60, title="Over Sold Level 1")
osLevel2 = input(-53, title="Over Sold Level 2")

// Temel hesaplamalar
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// WaveTrend göstergeleri
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Al ve Sat Sinyalleri
buySignal = ta.crossover(wt1, wt2)
sellSignal = ta.crossunder(wt1, wt2)

// Alım ve Satım pozisyonları
if (buySignal)
    if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat
        strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2")

if (sellSignal)
    if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat
        strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2")

// Renkler ve diğer görseller
plot(0, color=color.new(color.gray, 0), title="Zero Level")
plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1")
plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1")
plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2")
plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2")

plot(wt1, color=color.new(color.red, 0), title="WT1")
plot(wt2, color=color.new(color.blue, 0), title="WT2")
plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area")

// İşaretler
plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal")
plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")