Параболическая стратегия SAR и CCI с выходом из EMA для торговли золотом

Автор:Чао Чжан, Дата: 2023-12-07 17:04:54
Тэги:

img

Обзор

Это стратегия торговли золотом на временной шкале M5, основанная на сочетании технических индикаторов Parabolic 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. Правила выхода: Приобрести прибыль по цене входа + 7 тиков, остановить потерю на 1-минутной линии EMA.

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

  1. Использует 3 показателя для выявления тенденций и ключевых уровней поддержки/сопротивления, повышая рентабельность.

  2. CCI эффективно отфильтровывает ложные прорывы.

  3. Кроссоверы EMA с SAR предлагают низкорисковые входы во время временных отступлений.

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

Риски

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

  2. Волатильный сырьевой продукт, стоп-лосс EMA, склонный к скачкам, приводящим к большим потерям.

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

  4. Неисправности системы во время волатильных движений могут препятствовать эффективному выполнению стоп-лосса.

Возможности для расширения

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

  2. Добавить больше индикаторов, таких как свечи, полосы Боллинджера, чтобы улучшить надежность.

  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)


Больше