Стратегия торговли со скользящим стоп-лоссом на основе индикаторов EMA и MACD


Дата создания: 2023-09-20 11:21:14 Последнее изменение: 2023-09-20 11:21:14
Копировать: 0 Количество просмотров: 882
1
Подписаться
1617
Подписчики

Обзор

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

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

Стратегия делает больше, когда быстрая линия EMA пересекает медленную линию EMA и столбик MACDhistogram становится пустым; когда существуют позиции с несколькими позициями, устанавливается стоп-линия для отслеживания снижения, и если цена упадет выше стоп-линии, то стоп-линия выходит из позиции с несколькими позициями.

В частности, стратегия использует 7-дневную ЭМА и 14-дневную ЭМА для построения быстрой ЭМА; используйте 12-дневную ЭМА минус 26-дневную ЭМА для получения значения MACD, а затем используйте 9-дневную ЭМА для получения линии Сигнала. Когда 7-дневная ЭМА проходит через 14-дневную ЭМА, а значение MACD проходит через Сигнал, открывайте позицию; затем установите нисходящую следящую стоп-линию, если цена упадет более чем на определенную долю.

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

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

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

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

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

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

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

  1. Можно тестировать различные комбинации циклов EMA, чтобы найти наиболее подходящие для стратегии циклические параметры.

  2. Для улучшения качества сигнала могут быть добавлены другие индикаторы для фильтрации сигнала, такие как RSI, KD и т. д.

  3. Для оптимизации стратегии хранения убытков можно настроить динамическое отслеживание убытков с возможностью корректировки коэффициента хранения убытков в зависимости от разных сортов.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)