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


Дата создания: 2024-01-23 14:13:55 Последнее изменение: 2024-01-23 14:13:55
Копировать: 0 Количество просмотров: 583
1
Подписаться
1617
Подписчики

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

Обзор

Эта стратегия основана на реализации торговых сигналов с помощью адаптированных движущихся средних показателей (AIOMA) и весовых движущихся средних показателей (WMA). Она генерирует сигналы покупки и продажи через скрещивание AIOMA и WMA.

Название стратегии

AIOMA-WMA: перекрестная адаптационная стратегия

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

Стратегия включает в себя следующие части:

  1. Расчет показателя AIOMA

    • Укажите параметры длины, чтобы рассчитать серию показателей Moving Average (EMA)
    • Соедините эти EMA в гладкую последовательность.
    • Конечный AIOMA - это EMA последнего сглаживания
  2. Расчет WMA

    • Укажите параметры длины, чтобы рассчитать WMA
  3. Создание торгового сигнала

    • WMA создает сигнал “покупай” при прохождении через AIOMA
    • WMA создает сигнал “продажа” при прохождении через AIOMA
  4. Логика транзакций

    • Покупая сигнал, вы входите в многоочередную позицию.
    • Продавая сигнал, вы входите в пустую позицию.
    • Закрытие позиции в соответствующем направлении при сигнале “полной позиции”

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

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

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

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

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

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

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

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

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

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

//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)

// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")

// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)

// WMA hesaplama
wma = ta.wma(close, wma_length)

// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)

// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
    if dir
        strategy.entry("Enter", strategy.long)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
    else if not dir
        strategy.entry("Exit", strategy.short)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")

// Long pozisyon girişi
if cross_up
    enterTrade(true, low, "Buy Signal", color.green)

// Short pozisyon girişi
if cross_down
    enterTrade(false, high, "Sell Signal", color.red)

// Pozisyon kapatma
if cross_up and strategy.position_size > 0
    strategy.close("Enter")
if cross_down and strategy.position_size < 0
    strategy.close("Exit")

// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")