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


Дата создания: 2024-02-02 14:50:08 Последнее изменение: 2024-02-02 14:50:08
Копировать: 0 Количество просмотров: 607
1
Подписаться
1617
Подписчики

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

Обзор

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

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

  1. Спиральный индикатор: включает в себя спиральную положительную индикаторную линию ((VI+) и спиральную отрицательную индикаторную линию ((VI-)). Он используется для определения направления и силы ценовых тенденций.

  2. Движущаяся средняя: для сглаживания ценовых данных используется выбранный метод сдвигающейся средней (SMA, EMA, SMMA, WMA или VWMA), полученная сглаживающая линия называется .

  3. Определить плюс и минус: когда VI+ линия проходит через VI-линию, отметить точку пересечения, если цена закрытия выше, чем на гладкой линии, производить плюс; когда VI-линия проходит через VI+ линия, если цена закрытия ниже, чем на гладкой линии, производить минус.

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

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

  2. Спиральный индикатор позволяет эффективно идентифицировать направление и интенсивность тренда. Подвижная средняя может отфильтровывать часть шума.

  3. Стратегическая логика проста и понятна, легко понятна и реализуема.

  4. Настраиваемые параметры, адаптированные к различным рыночным условиям.

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

  1. На рынках, где нет четкой тенденции, может возникнуть ошибочный сигнал и SERIAL stop loss.

  2. Неправильная настройка параметров также может повлиять на эффективность стратегии. Например, слишком короткая длина перемещающейся средней имеет плохую эффективность фильтрации, а слишком длинная задерживает изменение тренда.

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

Оптимизация стратегии

  1. Для определения надежности тренда могут быть введены и другие показатели, например, показатель объема оборота.

  2. Оптимизация параметров, сбалансированная с трендовым отслеживанием и шумовой фильтрацией движущихся средних.

  3. Добавление стратегий сдерживания убытков.

  4. Автоматическая оптимизация параметров с использованием методов машинного обучения.

  5. Регулирование позиций в сочетании с модулем управления рисками.

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

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

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

//@version=5
strategy("Vortex + Moving Average Strategy", overlay=true)

//Vortex settings
period_ = input.int(14, title="Vortex Length", minval=2)
VMP = math.sum( math.abs( high - low[1]), period_ )
VMM = math.sum( math.abs( low - high[1]), period_ )
STR = math.sum( ta.atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR
plot(VIP, title="VI +", color=color.white)
plot(VIM, title="VI -", color=color.white)

len = input.int(9, minval=1, title="MA Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.sma(src, len)
plot(out, color=color.blue, title="MA", offset=offset)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(out, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)

// Determine long and short conditions
longCondition = ta.crossover(VIP, VIM) and close > smoothingLine
shortCondition = ta.crossunder(VIP, VIM) and close < smoothingLine
crossCondition = ta.crossunder(VIP, VIM) or ta.crossunder(VIM, VIP)

// Strategy entry and exit logic
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

bgcolor(crossCondition ? color.new(color.white, 80) : na)

// Strategy by KP