Двойной индикатор EMA, интеллектуальная система кросс-трейдинга и динамическая стратегия стоп-профита и стоп-лосса

EMA MACD SMA RSI CCI ATR
Дата создания: 2024-11-29 16:33:21 Последнее изменение: 2024-11-29 16:33:21
Копировать: 0 Количество просмотров: 441
1
Подписаться
1617
Подписчики

Двойной индикатор EMA, интеллектуальная система кросс-трейдинга и динамическая стратегия стоп-профита и стоп-лосса

Обзор

Стратегия является интеллектуальной торговой системой, основанной на двухравнолинейном скрещивании, с использованием 9-циклической и 21-циклической индикаторной движущейся средней ((EMA) в качестве основного показателя. Стратегия интегрирует динамический стоп-стоп механизм, который автоматически выполняет торговые указания с помощью мониторинга в реальном времени перекрестных сигналов показателя EMA. Система использует стопроцентный стоп-стоп и фиксированный пропорциональный стоп-проект, что гарантирует безопасность торговли и гарантирует возможность получения прибыли.

Стратегический принцип

Ключевая логика действия стратегии основана на перекрестной связи между быстрой EMA ((цикл 9) и медленной EMA ((цикл 21)). Когда быстрая линия вверх пересекает медленную линию, система идентифицирует это как сигнал о повышении, автоматически ликвидирует позиции и открывает позиции; когда быстрая линия вниз пересекает медленную линию, система идентифицирует это как сигнал о падении, автоматически ликвидирует позиции и открывает позиции. В то же время, система также устанавливает динамический стоп-стоп: во время многопозиционных позиций стоп-стоп устанавливается на 5% ниже цены открытой позиции, стоп-стоп устанавливается на 10% выше цены открытой позиции; во время пустых позиций стоп-стоп устанавливается на 5% выше цены открытой позиции, а стоп-стоп устанавливается на 10% ниже цены открытой позиции.

Стратегические преимущества

  1. Наука выбора показателей обоснована: EMA более чувствительна к реакции на изменения рынка и может своевременно улавливать тенденции рынка
  2. Усовершенствованный механизм сдерживания убытков: используется процентная настройка, которая может быть гибко адаптирована к различным рыночным условиям
  3. Высокий уровень автоматизации: автоматизация всего процесса от распознавания сигналов до исполнения сделок с уменьшением человеческого вмешательства
  4. Контроль риска на месте: на каждой сделке есть четкие точки стоп-лосса и стоп-стоп
  5. Ясная структура кода: спецификация наименования переменных, разделение на логические уровни для последующего обслуживания и оптимизации

Стратегический риск

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

Направление оптимизации стратегии

  1. Введение фильтра тренда: можно добавить индикаторы ADX или ATR для оценки силы тренда, чтобы избежать частых торгов на колеблющихся рынках
  2. Оптимизация стоп-стоп-механизма: можно рассмотреть возможность использования ATR для динамического регулирования стоп-стоп-дистанции, чтобы она была более адаптирована к рыночным колебаниям
  3. Дополнительная фильтрация по времени торгов: можно добавить ограничения на конкретные периоды торгов, чтобы избежать периодов с большой волатильностью
  4. Усовершенствование управления позициями: количество открытых позиций может быть скорректировано в зависимости от динамики рыночных колебаний
  5. Добавление индикаторов рыночной сентиментальности: подтверждение сделки может быть связано с такими индикаторами, как RSI или MACD

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 添加策略参数设置
var showLabels = input.bool(true, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)

// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema9, ema21)  
crossUnder = ta.crossunder(ema9, ema21)

// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)

// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)

// 交易逻辑
if crossOver
    if strategy.position_size < 0  // 如果持有空仓
        strategy.close("做空")     // 先平掉空仓
    strategy.entry("做多", strategy.long)  // 开多仓
    if showLabels
        label.new(bar_index, high, text="做多入场\n" + timeStr, color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)

if crossUnder
    if strategy.position_size > 0  // 如果持有多仓
        strategy.close("做多")     // 先平掉多仓
    strategy.entry("做空", strategy.short)  // 开空仓
    if showLabels
        label.new(bar_index, low, text="做空入场\n" + timeStr, color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)

// 设置止损止盈
if strategy.position_size > 0  // 多仓止损止盈
    strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
    
if strategy.position_size < 0  // 空仓止损止盈
    strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit)