
Стратегия называется “Кратколинейная торговая стратегия, основанная на канале EMA и MACD”. Она объединяет каналы EMA и индикаторы MACD, чтобы идентифицировать тренды и давать торговые сигналы.
Эта стратегия использует 5-дневную ЭМА и 21-дневную ЭМА для формирования канала ЭМА. Когда 5-дневная ЭМА пересекает 21-дневную ЭМА, считается, что торговля входит в плюс, а когда 5-дневная ЭМА пересекает 21-дневную ЭМА, считается, что торговля входит в пустоту. Диаграмма MACD может быть использована для фильтрации ложных сигналов.
Эта стратегия в сочетании с идентификацией трендов и фильтрацией индикаторов позволяет эффективно идентифицировать направление коротких линий. Используя канал EMA, чтобы определить направление основной тенденции, затем используйте MACD, чтобы отфильтровать фальшивые сигналы, чтобы значительно повысить вероятность получения прибыли. Фиксированный механизм остановки убытков также гарантирует соотношение прибыли к риску. В целом, эта стратегия подходит для коротких линий, особенно в акциях и валютных разновидностях с более сильной динамикой.
Эта стратегия применяется в основном для торговли короткой линией и неэффективна в условиях длинных линий и волатильности. На рынках с длинной горизонтальной линией часто встречаются перекрестные сигналы каналов EMA, но в основном это ложные сигналы, в то время как прямолинейная карта MACD может играть определенную роль фильтрации, но эффективность остается ограниченной. Кроме того, фиксированный механизм остановки убытков затрудняет захват прибыли, вызванной длинной линией.
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия имеет высокую общую прибыльность, особенно подходит для короткой линии торговли, и является хорошим выбором в количественной торговой стратегии, которая стремится к более высокой частоте торговли. Но при использовании трейдер должен быть осторожен, чтобы разумно скорректировать параметры в соответствии с рыночными условиями, чтобы максимизировать прибыль стратегии, а также контролировать торговые риски.
/*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")