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