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


Дата создания: 2023-12-07 17:04:54 Последнее изменение: 2023-12-07 17:04:54
Копировать: 0 Количество просмотров: 980
1
Подписаться
1619
Подписчики

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

Обзор

Стратегия является торговой стратегией M5 для золота, основанной на комбинации SAR, CCI и EMA. Она использует в совокупности три различных технических показателя для определения направления тенденции в золоте и сверхпокупа и перепродажи, чтобы захватить торговые возможности, предоставляемые промежуточным отклонением.

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

  1. Показатель SAR используется для определения направления тренда золота и возможных поворотных точек. Когда точка SAR снижается через цену, формируется многосторонний тренд; когда точка SAR поднимается через цену, формируется воздушный тренд.

  2. Индекс CCI используется для оценки рыночных перепродаж. CCI больше 100 означает укрепление многостороннего тренда, CCI меньше 100 - укрепление воздушного тренда.

  3. EMA используется для определения кратковременных переменных в ценах.

  4. Конкретные правила входа: когда SAR-индикатор пересекает 5-минутную среднюю линию EMA вверх, CCI-индикатор больше 100, чтобы сделать больше золота; когда SAR-индикатор пересекает 5-минутную среднюю линию EMA вниз, CCI-индикатор меньше 100, чтобы сделать пустое золото.

  5. Прекращение EXIT-правила: остановка на цене открытия позиции плюс 7 пунктов, остановка на 1-минутной средней линии EMA.

Анализ преимуществ стратегии

  1. Эта стратегия использует три индикатора, чтобы определить направление тренда и существенное сопротивление поддержки, что повышает вероятность получения прибыли.

  2. Показатель CCI может эффективно отфильтровывать распространенные ложные прорывы. SAR-переворот в сочетании с оценкой направления тенденции позволяет избежать повторного открытия позиций в нестабильных рынках.

  3. EMA и его комбинация с SAR позволяют эффективно идентифицировать низкорисковые торговые возможности, предоставляемые краткосрочным корректировками цен.

  4. Параметры стратегии были оптимизированы для таких высоко волатильных валют, как золото, а также для небольших счетов.

Анализ рисков

  1. Эта стратегия основана на технических показателях, которые в случае крупного черного свинца имеют большую вероятность не сработать.

  2. Такие товары, как золото, имеют большую волатильность, их остановки устанавливаются на среднем уровне EMA и могут быть превышены, что приводит к большим потерям в отдельно взятых счетах.

  3. Как CCI, так и SAR могут давать ложные сигналы, что приводит к ненужным потерям.

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

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

  1. Можно тестировать различные комбинации параметров для оптимизации параметров показателя CCI, чтобы они соответствовали характеристикам золота.

  2. Для повышения стабильности стратегии можно использовать дополнительные показатели, такие как форма K-линии, Брин-бэнд и т. д.

  3. Параметры показателя SAR могут быть динамически оптимизированы с помощью машинного обучения и других методов, чтобы лучше адаптироваться к изменениям на рынке.

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

  5. Оптимизация управления позициями, например, фиксированная доля, динамическая корректировка в единую величину и т. д. могут быть использованы для контроля одиночных потерь.

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

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

Исходный код стратегии
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

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

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)