В процессе загрузки ресурсов... загрузка...

Интеллектуальная система торговли с двойным индикатором EMA с динамической стратегией остановки потерь и получения прибыли

Автор:Чао Чжан, Дата: 2024-11-29 16:33:21
Тэги:ЕМАMACDSMAРСИCCIATR

img

Обзор

Эта стратегия представляет собой интеллектуальную торговую систему, основанную на двойных пересечениях скользящих средних, используя 9-периодные и 21-периодные экспоненциальные скользящие средние (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) 

Связанные

Больше