Стратегия количественной торговли "Золотой крест"

Автор:Чао Чжан, Дата: 2024-02-02 14:46:11
Тэги:

img

Обзор

Эта стратегия рассчитывает 30-дневные простые скользящие средние (MA30) и 200-дневные простые скользящие средние (MA200) кроссоверы XAUUSD (золото) для реализации количественной торговли кросс-покупками и мертвыми кросс-продажами золота. Стратегия также устанавливает стоп-лосс и цены на получение прибыли для автоматического закрытия позиции.

Принцип стратегии

Основными показателями этой стратегии являются MA30 и MA200. Когда MA30 пересекает MA200, генерируется сигнал покупки. Когда MA30 пересекает MA200, генерируется сигнал продажи. Эти кресты называются золотыми крестами и мертвыми крестами.

В частности, стратегия использует библиотеку ta для расчета MA30 и MA200. Функции ta.crossover и ta.crossunder затем решают, перекрываются ли они. Когда происходит восходящий кроссовер (золотой кросс), значение longCondition устанавливается на true для покупки. Когда происходит нисходящий кроссовер (мертвый крос), значение shortCondition устанавливается на true для продажи.

Для выполнения ордера цены стоп-лосса и take profit по 40 000 пунктов устанавливаются для длинных и коротких сделок. Это соответствует изменению цены на 4000 пунктов в XAUUSD. Когда цена запускает стоп-лосс или take profit, ордера автоматически закрывают позиции.

Кроме того, в стратегии установлен механизм хеджирования. Если текущая позиция длинная, последующий сигнал мертвого креста напрямую сгладит позицию и обратит ее вспять. Если текущая позиция короткая, последующий сигнал золотого креста также напрямую сгладит и обратит позицию вспять. Это избегает больших потерь во время реверсии тренда.

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

Это очень простая и интуитивно понятная стратегия, которая имеет следующие преимущества:

  1. Ясные правила, которые легко применить.
  2. Применяется для нескольких временных рамок для дневной и долгосрочной торговли.
  3. Он совпадает с рыночными циклами и отслеживает изменения тренда.
  4. Устанавливает механизм автоматического выхода со стоп-лосом/прибылью для контроля одиночных потерь.
  5. Устанавливает хеджирование, чтобы избежать потерь от реверсии тренда.

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

Эта стратегия сопряжена с некоторыми рисками:

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

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

Оптимизация

Стратегия может быть оптимизирована несколькими способами:

  1. Оптимизировать параметры MA с использованием EMA или взвешенных скользящих средних.
  2. Добавьте другие фильтры, такие как показатели объема, волатильности и т. д.
  3. Включить механизм хеджирования только при значимых сигналах.
  4. Настройте размер позиций для повышения эффективности капитала.
  5. Динамическая оптимизация остановок/прибыли с использованием алгоритмов машинного обучения.

Настройка параметров, добавление фильтров, размещение позиций и т. д. могут еще больше улучшить стабильность стратегии.

Заключение

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Cruce de Medias Móviles", overlay=true)

// Medias móviles
ma30 = ta.sma(close, 30)
ma60 = ta.sma(close, 60)
ma200 = ta.sma(close, 200)

// Cruce de medias móviles
crossoverUp = ta.crossover(ma30, ma200)
crossoverDown = ta.crossunder(ma30, ma200)

// Señales de compra y venta
longCondition = crossoverUp
shortCondition = crossoverDown

// Ejecución de órdenes
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000)

// Plot de las medias móviles
plot(ma30, color=color.blue, title="MA 30")
plot(ma60, color=color.orange, title="MA 60")
plot(ma200, color=color.green, title="MA 200")

// Condiciones para cerrar la posición contraria
if (strategy.position_size > 0)
    if (crossoverDown)
        strategy.close("Buy")
if (strategy.position_size < 0)
    if (crossoverUp)
        strategy.close("Sell")

Больше