Стратегия стоп-профита и стоп-лосса с двойным пересечением скользящих средних

EMA MACD KDJ ADX
Дата создания: 2024-06-03 11:02:26 Последнее изменение: 2024-06-03 11:02:26
Копировать: 0 Количество просмотров: 626
1
Подписаться
1617
Подписчики

Стратегия стоп-профита и стоп-лосса с двойным пересечением скользящих средних

Обзор

Стратегия использует как торговый сигнал перекрестку двух различных циклов индексальных скользящих средних ((EMA) и устанавливает фиксированные стопы и потери. Когда краткосрочная ЭМА пересекает длинную ЭМА сверху вниз, открывается позиция, а когда краткосрочная ЭМА пересекает длинную ЭМА сверху вниз, открывается позиция.

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

  1. Вычислить EMA двух различных циклов, по умолчанию 5 циклов и 200 циклов.
  2. Когда 5-циклическая ЭМА сверху проходит через 200-циклическую ЭМА, образуется многосигнальный сигнал; когда 5-циклическая ЭМА сверху вниз проходит через 200-циклическую ЭМА, образуется пустой сигнал.
  3. После открытия позиции устанавливается стоп-стоп (по умолчанию 50) и стоп-стоп (по умолчанию 200).
  4. Когда цена достигает точки остановки или остановки убытков, или когда удерживаемая позиция достигает 200 торговых циклов, позиция пропадает.
  5. Стоп-стоп может быть скорректирован в зависимости от количества сделок на графике.

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

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

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

  1. Ложные сигналы: пересечение EMA может привести к ложным сигналам, что приведет к частым сделкам и потерем средств.
  2. Задержка тренда: EMA является отстающим индикатором, который может дать сигнал только после того, как тренд уже сформировался, упустив лучшую возможность входа.
  3. На консолидированном рынке: на консолидированном рынке частое пересечение ЭМА может привести к последовательным убыточным сделкам.
  4. Фиксированный стоп: фиксированный стоп может не адаптироваться к изменениям волатильности рынка, что приводит к неправильной установке стоп-позиции.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true)

// Define input parameters for EMA lengths
ema_5 = input.int(5, title="Fast EMA Length")
ema_200 = input.int(200, title="Slow EMA Length")

// Define input parameters for stop loss and profit target in points
stopLossPoints = input.float(50, title="Stop Loss (Points)")
profitTargetPoints = input.float(200, title="Profit Target (Points)")

// Calculate EMAs
price = close
emafast = ta.ema(price, ema_5)
emaslow = ta.ema(price, ema_200)

// Plot EMAs on chart
plot(emafast, title="5-period EMA", color=color.black)
plot(emaslow, title="200-period EMA", color=color.blue)

// Extra lines if needed
ema_13 = input.int(13, title="13 EMA")
ema_13_line = ta.ema(price, ema_13)
plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90))

ema_20 = input.int(20, title="20 EMA")
ema_20_line = ta.ema(price, ema_20)
plot(ema_20_line, title="20-period EMA", color=color.red)


// Define entry conditions
longCondition = ta.crossover(emafast, emaslow)
shortCondition = ta.crossunder(emafast, emaslow)

// Counter to keep track of the number of bars since the entry
var int barCount = na

// Reset counter and enter long trade
if (longCondition)
    strategy.entry("Long", strategy.long, comment="Long")
    barCount := 0

// Reset counter and enter short trade
if (shortCondition)
    strategy.entry("Short", strategy.short, comment="Short")
    barCount := 0

// Increment counter if in trade
if (strategy.opentrades > 0)
    barCount += 1

// Calculate entry price
entryPrice = strategy.position_avg_price

// Exit long trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints)

// Exit short trade if stop loss, profit target hit, or 200 points have been reached
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)