Краткосрочная торговая стратегия на основе канала EMA и MACD


Дата создания: 2024-01-23 14:30:02 Последнее изменение: 2024-01-23 14:30:02
Копировать: 0 Количество просмотров: 741
1
Подписаться
1617
Подписчики

Краткосрочная торговая стратегия на основе канала EMA и MACD

Обзор

Стратегия называется “Кратколинейная торговая стратегия, основанная на канале EMA и MACD”. Она объединяет каналы EMA и индикаторы MACD, чтобы идентифицировать тренды и давать торговые сигналы.

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

Эта стратегия использует 5-дневную ЭМА и 21-дневную ЭМА для формирования канала ЭМА. Когда 5-дневная ЭМА пересекает 21-дневную ЭМА, считается, что торговля входит в плюс, а когда 5-дневная ЭМА пересекает 21-дневную ЭМА, считается, что торговля входит в пустоту. Диаграмма MACD может быть использована для фильтрации ложных сигналов.

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

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

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

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

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

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

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

Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © moondevonyt

//@version=5
strategy("Scalping with EMA channel and MACD", overlay=true)

// Exponential moving average inputs
ema21 = ta.ema(close, 21)
ema5 = ta.ema(close, 5)

// MACD inputs
fastLength = 18
slowLength = 34
signalSmoothing = 12

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine

// Buy and sell conditions
buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0
sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0

// Re-entry conditions
reEntryBuyCondition = close > ema21
reEntrySellCondition = close < ema21

// Set stop loss and take profit
stopLoss = 8
takeProfit = 15

// Execute Strategy
if buyCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit)
if reEntryBuyCondition
    strategy.entry("Re-Enter Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit)

if sellCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit)
if reEntrySellCondition
    strategy.entry("Re-Enter Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit)

// Plotting EMAs and MACD
plot(ema21, color=color.blue, title="21 EMA")
plot(ema5, color=color.orange, title="5 EMA")
plot(macdHistogram, color=color.red, title="MACD Histogram")

// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")