Все о стратегии торгового импульса с остановкой потери для золота

Автор:Чао Чжан, Дата: 2024-02-20 16:27:18
Тэги:

img

Обзор

Эта стратегия рассчитывает отклонение цены на золото от его 21-дневной экспоненциальной скользящей средней для определения ситуаций перекупа и перепродажи на рынке.

Логика стратегии

  1. Вычислить 21-дневную ЭМА в качестве базовой
  2. Расчет отклонения цены от EMA
  3. Стандартизировать отклонение в Z-Score
  4. Продолжайте, когда Z-Score превышает 0,5; Продолжайте, когда Z-Score превышает -0,5
  5. Закрыть позицию, когда Z-Score снизится до порога 0,5/-0,5
  6. Установите стоп-лосс, когда Z-Score превышает 3 или ниже -3

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

Преимущества этой стратегии:

  1. EMA как динамическая поддержка/сопротивление для улавливания тенденций
  2. Stddev и Z-Score эффективно измеряют уровни перекупа/перепродажи, уменьшая ложные сигналы
  3. Экспоненциальная EMA придает большее значение недавним ценам, что делает ее более чувствительной
  4. Z-Score стандартизирует отклонения для единых правил суждения
  5. Механизм остановки потерь контролирует риск и ограничивает потери

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

Некоторые риски следует учитывать:

  1. EMA может генерировать неправильные сигналы при ценовых разрывах или вырывах
  2. Пороги Stddev/Z-Score требуют правильной настройки для наилучшей производительности
  3. Неправильное установление стоп-лосса может привести к ненужным потерям
  4. События черного лебедя могут привести к остановке потерь и упущению возможности тренда

Решения:

  1. Оптимизировать параметр EMA для выявления основных тенденций
  2. Backtest для поиска оптимальных порогов Stddev/Z-Score
  3. Рациональность испытания с остановкой потерь при остановке
  4. Переоценить рынок после события, соответственно скорректировать стратегию

Руководство по оптимизации

Некоторые способы улучшения стратегии:

  1. Используйте индикаторы волатильности, такие как ATR, вместо простого Stddev для оценки аппетита к риску
  2. Испытать различные типы скользящих средних для лучшего исходного показателя
  3. Оптимизировать параметр EMA для поиска лучшего периода
  4. Оптимизировать пороги Z-Score для улучшения производительности
  5. Добавление остановок, основанных на волатильности, для более интеллектуального контроля риска

Заключение

В целом, это солидная стратегия следования тренду. Она использует EMA для определения направления тренда и стандартизированного отклонения для четкого определения уровней перекупленности / перепроданности для торговых сигналов. Разумный контроль стоп-лосса риска при сохранении прибыли. Дальнейшая настройка параметров и добавление условий могут сделать эту стратегию более надежной для практического применения.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true)

// Input for the length of the EMA
ema_length = input.int(21, title="EMA Length", minval=1)

// Exponential function parameters
steepness = 2

// Calculate the EMA
ema = ta.ema(close, ema_length)

// Calculate the deviation of the close price from the EMA
deviation = close - ema

// Calculate the standard deviation of the deviation
std_dev = ta.stdev(deviation, ema_length)

// Calculate the Z-score
z_score = deviation / std_dev

// Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations
long_condition = ta.crossover(z_score, 0.5)

// Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations
short_condition = ta.crossunder(z_score, -0.5)

// Exit long position if Z-score converges below 0.5 from top
exit_long_condition = ta.crossunder(z_score, 0.5)

// Exit short position if Z-score converges above -0.5 from below
exit_short_condition = ta.crossover(z_score, -0.5)

// Stop loss condition if Z-score crosses above 3 or below -3
stop_loss_long = ta.crossover(z_score, 3)
stop_loss_short = ta.crossunder(z_score, -3)

// Enter and exit positions based on conditions
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)
if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")
if (stop_loss_long)
    strategy.close("Long")
if (stop_loss_short)
    strategy.close("Short")

// Plot the Z-score on the chart
plot(z_score, title="Z-score", color=color.blue, linewidth=2)

// Optional: Plot zero lines for reference
hline(0.5, "Upper Threshold", color=color.red)
hline(-0.5, "Lower Threshold", color=color.green)


Больше