
В данной статье представлена стратегия торговли, объединяющая два технических показателя MACD и Supertrend. Эта стратегия использует перекрестные сигналы MACD и направление тренда Supertrend для определения времени входа и выхода с целью получения прибыли в условиях тренда. Основная идея стратегии заключается в том, чтобы делать больше, когда MACD-форекс Supertrend зеленый, делать больше, когда MACD-форекс мертв, а Supertrend - пустой, когда MACD-форекс мертв, и перекрестные сигналы MACD-форекс и MACD-форекс являются сигналом равновесия.
Эта стратегия использует индикатор MACD и индикатор Supertrend для создания торговых сигналов. MACD получается путем уменьшения быстрого скользящего среднего ((дифференцированный 12 день) минус медленный скользящий средний ((дифференцированный 26 день) и вычисления 9-дневного скользящего среднего MACD в качестве сигнальной линии. Когда MACD пересекает сигнальную линию вверх, образуется золотая спираль, это сигнал плюс; когда MACD пересекает сигнальную линию вниз, образуется мертвая спираль, это сигнал плюс.
В этой статье представлена торговая стратегия, основанная на MACD и Supertrend, которая использует MACD для определения тенденции и фильтрации направления Supertrend, торгует в трендовых ситуациях, используя перекрестные сигналы и своевременное плавание для контроля отступления. Преимущества стратегии заключаются в простоте логики, сильной способности удерживать тенденцию, а также в наличии параметров применимости, задержки сигнала и риска частых торгов. В будущем можно совершенствовать стратегию из параметровой оптимизации, фильтрации сигнала, управления позицией, цикла и выбора пары, чтобы получить более стабильную прибыль.
/*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(title="MACD + Supertrend Strategy", overlay=true)
// MACD Calculation
fastLength = 12
slowLength = 26
signalSmoothing = 9
macdSrc = close
// MACD Line
fastMA = ta.ema(macdSrc, fastLength)
slowMA = ta.ema(macdSrc, slowLength)
macdLine = fastMA - slowMA
// MACD Signal Line
signalMA = ta.ema(macdLine, signalSmoothing)
// MACD Histogram
histogram = macdLine - signalMA
// Supertrend Calculation
supertrendATRLength = 10
supertrendFactor = 3.0
[supertrend, _] = ta.supertrend(supertrendFactor, supertrendATRLength)
// Entry and Exit Conditions
longCondition = (macdLine > signalMA) and (supertrend < close)
shortCondition = (signalMA > macdLine) and (supertrend > close)
// Long Entry
if longCondition
strategy.entry("Long", strategy.long)
// Long Exit (Sell)
if signalMA > macdLine
strategy.close("Long")
// Short Entry
if shortCondition
strategy.entry("Short", strategy.short)
// Short Exit (Cover)
if macdLine > signalMA
strategy.close("Short")
// Close Long Position if short condition is met
if shortCondition
strategy.close("Long")
// Close Short Position if long condition is met
if longCondition
strategy.close("Short")
// Plotting
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")
// Alerts
alertcondition(longCondition, title='Long Entry Signal', message='MACD crossover and Supertrend below close price')
alertcondition(signalMA > macdLine, title='Long Exit Signal', message='MACD signal line crosses above MACD line')
alertcondition(shortCondition, title='Short Entry Signal', message='MACD crossunder and Supertrend above close price')
alertcondition(macdLine > signalMA, title='Short Exit Signal', message='MACD line crosses above MACD signal line')