В процессе загрузки ресурсов... загрузка...

Интеллектуальная стратегия торговли G-Trend EMA ATR

Автор:Чао Чжан, Дата: 2024-06-14 15:35:15
Тэги:ЕМАATR

img

Обзор

Эта стратегия использует индикатор G-Channel для определения направления тренда на рынке, включая индикаторы EMA и ATR для оптимизации точек входа и выхода. Основная идея заключается в том, чтобы: идти длинным, когда цена превышает верхнюю полосу G-Channel и находится ниже EMA; идти коротким, когда цена превышает нижнюю полосу и находится выше EMA. Между тем, ATR используется для установки динамических уровней стоп-лосса и прибыли, при этом стоп-лосс составляет 2 раза ATR и прибыль составляет 4 раза ATR. Этот подход может получить больше прибыли на трендовых рынках при строгом контроле рисков.

Принципы стратегии

  1. Расчет верхних и нижних полос G-Channel: для расчета верхних и нижних полос G-Channel используется текущая цена закрытия и предыдущие высокие и низкие цены.
  2. Определение направления тренда: наблюдать за взаимосвязью между ценой и диапазонами G-Channel для определения бычьего или медвежьего тренда.
  3. Расчет EMA: расчет значения EMA за указанный период.
  4. Расчет ATR: расчет значения ATR за указанный период.
  5. Установление условий покупки/продажи: запуск длинной позиции, когда цена выходит за пределы верхней полосы и находится ниже EMA; запуск короткой позиции, когда цена выходит за пределы нижней полосы и находится выше EMA.
  6. Установка стоп-лосса и берущей прибыли: стоп-лосс - цена входа - 2ATR, take-profit - это входная цена + 4ATR (длинный); стоп-лосс - цена входа + 2ATR, take-profit - это входная цена - 4АТР (короткий).
  7. Исполнение стратегии: при выполнении условий покупки/продажи выполняется соответствующая операция по вводу и соответствующим образом устанавливается стоп-лосс и take-profit.

Преимущества стратегии

  1. Следование тенденциям: стратегия эффективно отражает тенденции рынка с помощью G-канала, подходящего для тенденций рынков.
  2. Динамические стоп-лосс и тек-профит: ATR используется для динамической корректировки уровней стоп-лосса и тек-профита, лучше адаптируясь к волатильности рынка.
  3. Контроль рисков: стоп-лосс установлен в 2 раза ATR, строго контролируя риск каждой сделки.
  4. Простая и простая в использовании: логика стратегии ясна и понятна, подходит для большинства инвесторов.

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

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

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

  1. Фильтрация трендов: добавление условий фильтрации трендов, таких как перекресток MA, DMI и т. д., для уменьшения торговли на различных рынках.
  2. Оптимизация параметров: оптимизация параметров для различных инструментов и временных рамок для поиска наилучшей комбинации параметров.
  3. Управление позициями: динамическое регулирование позиций на основе волатильности рынка для улучшения использования капитала.
  4. Сочетание стратегий: сочетание этой стратегии с другими эффективными стратегиями для улучшения стабильности.

Резюме

Эта стратегия создает простую и эффективную торговую систему, следующую за трендом, используя такие индикаторы, как G-Channel, EMA и ATR. Она может достигать хороших результатов на трендовых рынках, но работает в среднем на рыночных рынках.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true)

// Inputs for G-Channel
length = input(100, title="G-Channel Length")
src = input(close, title="Source")

// G-Channel Calculation
var float a = na
var float b = na
a := max(src, nz(a[1])) - (nz(a[1] - b[1]) / length)
b := min(src, nz(b[1])) + (nz(a[1] - b[1]) / length)
avg = (a + b) / 2

// G-Channel Signals
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = barssince(crossdn) <= barssince(crossup)
c = bullish ? color.lime : color.red

// Plot G-Channel Average
p1 = plot(avg, "Average", color=c, linewidth=1, transp=90)
p2 = plot(close, "Close price", color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Show Buy/Sell Labels
showcross = input(true, title="Show Buy/Sell Labels")
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)

// Inputs for EMA
emaLength = input(50, title="EMA Length")
emaValue = ema(close, emaLength)

// Plot EMA
plot(emaValue, title="EMA", color=color.blue, linewidth=1)

// ATR Calculation
atrLength = input(14, title="ATR Length")
atrValue = atr(atrLength)

// Strategy Conditions
buyCondition = bullish and close < emaValue
sellCondition = not bullish and close > emaValue

// Stop Loss and Take Profit Levels
longStopLoss = close - 2 * atrValue
longTakeProfit = close + 4 * atrValue
shortStopLoss = close + 2 * atrValue
shortTakeProfit = close - 4 * atrValue

// Execute Strategy with ATR-based stop loss and take profit
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit)

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Buy/Sell Signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)


Связанные

Больше