Это стратегия торговли золотом на временной шкале M5, основанная на сочетании технических индикаторов Parabolic SAR, CCI и EMA. Она использует три различных индикатора для определения направления тренда и ситуации перекупки/перепродажи золота, чтобы использовать торговые возможности во время спада рынка.
Параболический SAR используется для определения направления тренда и потенциальных точек переворота золота. Когда точки SAR начинают снижаться ниже цены, это указывает на восходящую тенденцию; когда точки SAR начинают расти выше цены, это указывает на снижающийся тренд.
CCI указывает на условия перекупки/перепродажи на рынке. CCI выше 100 указывает на усиление восходящей тенденции, а CCI ниже -100 указывает на усиление снижающей тенденции.
Кроссоверы EMA сигнализируют о краткосрочных поворотных точках цены.
Правила вступления: перейти на длинную позицию, когда SAR пересекает 5-минутную EMA в восходящем направлении, а CCI больше 100; перейти на короткую позицию, когда SAR пересекает 5-минутную EMA в нисходящем направлении, а CCI меньше -100.
Правила выхода: Приобрести прибыль по цене входа + 7 тиков, остановить потерю на 1-минутной линии EMA.
Использует 3 показателя для выявления тенденций и ключевых уровней поддержки/сопротивления, повышая рентабельность.
CCI эффективно отфильтровывает ложные прорывы.
Кроссоверы EMA с SAR предлагают низкорисковые входы во время временных отступлений.
Оптимизированные параметры подходят для волатильных товаров, таких как золото и небольшие счета.
В основном опирается на технические показатели, которые могут не работать во время событий черного лебедя.
Волатильный сырьевой продукт, стоп-лосс EMA, склонный к скачкам, приводящим к большим потерям.
Возможно, ложные сигналы от CCI и SAR приведут к ненужным потерям.
Неисправности системы во время волатильных движений могут препятствовать эффективному выполнению стоп-лосса.
Испытать различные комбинации параметров для оптимизации CCI для характеристик золота.
Добавить больше индикаторов, таких как свечи, полосы Боллинджера, чтобы улучшить надежность.
Использование машинного обучения для динамической оптимизации параметров SAR, адаптирующихся к изменяющимся рынкам.
Испытывать различные механизмы остановки потерь, например, остановки отслеживания, чтобы уменьшить вероятность попадания.
Оптимизировать модели размещения позиций, например, фиксированное дробное, динамическое размещение позиций для контроля суммы потерь на одной сделке.
В целом стабильная стратегия торговли золотом, объединяющая несколько индикаторов для выявления тенденций, ключевых уровней поддержки / сопротивления и зон перекупки / перепродажи для низкорисковых записей во время ретрекшенов. Оптимизированные параметры позволяют торговать на небольших счетах, используя высокую волатильность золота. Имеет риски, которые могут быть решены путем надлежащего управления рисками. Значительный потенциал для дальнейшего улучшения стабильности и прибыльности путем повышения.
/*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)