Стратегия обнаружения тренда G-Channel

MA TP SL
Дата создания: 2024-05-29 17:06:13 Последнее изменение: 2024-05-29 17:06:13
Копировать: 0 Количество просмотров: 1051
1
Подписаться
1617
Подписчики

Стратегия обнаружения тренда G-Channel

Обзор

Стратегия G-Channel Trend Detection является количественной торговой стратегией, основанной на G-Channel Indicators. Эта стратегия создает сигнал покупки и продажи, рассчитывая верхние и нижние пределы G-Channel и оценивая текущую тенденцию рынка на основе пересечения цены с равновесием G-Channel. В то же время, эта стратегия устанавливает условия стоп-стоп для контроля риска.

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

  1. Вычислите верхние и нижние пределы a и b для канала G, где a - разница между историческим максимумом и предыдущим циклом a, разделенная на число циклов, b - разница между историческим минимумом и предыдущим циклом a, разделенная на число циклов.
  2. Вычислите среднелинейный AVG канала G, т. е.
  3. Если цена пересекает значение b, то считается, что она образует тенденцию к повышению; если цена пересекает значение a, то считается, что она образует тенденцию к снижению.
  4. В позитивном тренде, если предыдущая K-линия является пониженной, а текущая K-линия поменялась на позитивную, то создается сигнал покупки; в тенденции к снижению, если предыдущая K-линия является пониженной, а текущая K-линия поменялась на пониженную, то создается сигнал продажи.
  5. Установка условий стоп-стоп, при наличии многоголовой позиции, стоп-стоп цена является ценой покупки умноженной на ((1+ стоп-стоп), стоп-стоп цена является ценой покупки умноженной на ((1-стоп-стоп); при наличии пустой головной позиции, стоп-стоп цена является ценой продажи умноженной на (((1-стоп-стоп), стоп-стоп цена является ценой продажи умноженной на ((1+ стоп-стоп)).

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

  1. Индикатор G-канала способен эффективно улавливать рыночные тенденции, генерируя сигналы покупки и продажи через пересечение цены с равномерной линией G-канала, простой и удобный в использовании.
  2. Установка стоп-лосса позволяет эффективно контролировать риски и предотвращать слишком большие потери в одной сделке.
  3. Логика стратегии ясна, легко понятна и реализуема, подходит для использования новичками в количественной торговле.

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

  1. Индекс G-канала может создавать больше ложных сигналов для колебаний на рынке, что приводит к частым сделкам и более высоким затратам на скольжение.
  2. Настройка стоп-стоп-лосс должна быть адаптирована в зависимости от рыночных особенностей и личных предпочтений в отношении риска, а неправильная настройка параметров может привести к неблагоприятной стратегической прибыли.
  3. Эта стратегия не учитывает особенности торгового типа, такие как возможные остановки в стратегии акций, остановки в падении и т. д., что требует дальнейшей оптимизации.

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

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

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

Стратегия G-Channel Trend Detection - это простая количественная торговая стратегия, основанная на G-Channel индикаторе, которая генерирует сигналы купли-продажи, улавливая рыночные тенденции, и устанавливает условия для контроля риска при остановке. Логика этой стратегии ясна, ее легко реализовать, и она подходит для количественной торговли новичками. Однако, эта стратегия может создавать больше ложных сигналов для шокирующего рынка, а стоп-лосс должен быть скорректирован в соответствии с рыночными характеристиками, не учитывая особенности торгового типа. В будущем можно оптимизировать стратегию путем введения других технических показателей, динамической корректировки стоп-лосс, добавления модуля контроля риска для торгового типа, чтобы повысить стабильность и прибыль стратегии.

Исходный код стратегии
//@version=5
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy("G-Channel Trend Detection Strategy", shorttitle="G-Trend", overlay=true)

// Input parameters
length = input.int(100, title="Length")
src = input(close, title="Source")
take_profit_percent = input.float(5.0, title="Take Profit (%)")
stop_loss_percent = input.float(2.0, title="Stop Loss (%)")
showcross = input.bool(true, title="Show Cross")

// Initialize variables
var float a = na
var float b = na

// Calculate a and b
a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length
b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length

// Calculate average
avg = (a + b) / 2

// Determine trend and color
crossup = ta.crossunder(b, close)
crossdn = ta.crossunder(a, close)
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
c = bullish ? color.lime : color.red

// Plotting
p1 = plot(avg, "Average", color=c, linewidth=1)
p2 = plot(close, "Close price", color=c, linewidth=1)
fill(p1, p2, c)

// Generate buy and sell signals
buy_signal = showcross and bullish and not bullish[1]
sell_signal = showcross and not bullish and bullish[1]

// Plot buy and sell signals on chart
plotshape(buy_signal ? avg : na, location=location.belowbar, style=shape.labeldown, color=color.new(color.lime, 0), size=size.tiny, text="Buy", textcolor=color.white, offset=-1)
plotshape(sell_signal ? avg : na, location=location.abovebar, style=shape.labelup, color=color.new(color.red, 0), size=size.tiny, text="Sell", textcolor=color.white, offset=-1)

// Alerts
alertcondition(buy_signal, title="Buy Signal", message="Buy Signal Detected")
alertcondition(sell_signal, title="Sell Signal", message="Sell Signal Detected")

// Calculate take profit and stop loss levels
take_profit_level = close * (1 + take_profit_percent / 100)
stop_loss_level = close * (1 - stop_loss_percent / 100)

// Strategy Entry and Exit
if (buy_signal)
    strategy.entry("Buy", strategy.long)

if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Define the take profit and stop loss conditions for long positions
strategy.exit("Take Profit/Stop Loss", "Buy", limit=take_profit_level, stop=stop_loss_level)

// Define the take profit and stop loss conditions for short positions
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close * (1 - take_profit_percent / 100), stop=close * (1 + stop_loss_percent / 100))