
Стратегия основана на MACD-индикаторе, используя перекрестные линии MACD и линии Сигнала в MACD-индикаторе для определения торгового сигнала. При пересечении линии Сигнала на линии MACD образуется сигнал “сделай больше”, а при пересечении линии Сигнала на линии MACD - сигнал “сделай меньше”. При этом используется минимальная цена предыдущей линии K в качестве многоголовной остановки, а максимальная цена предыдущей линии K в качестве пустой остановки.
MACD-индикатор состоит из DIF-линии и DEA-линии. DIF-линия представляет собой разницу между быстрым средним и медленным средним, а DEA-линия представляет собой движущуюся среднюю из DIF-линий. Когда DIF-линия проходит через DEA-линию, это означает, что цена акции вышла из зоны перепродажи и начинает двигаться вверх, создавая плюсовый сигнал.
Стратегия основана на MACD-индикаторе, используя пересечение MACD-линий и линий сигналов для определения торговых сигналов, а также используя минимальную и максимальную цены предыдущей K-линии в качестве стоп-лосса, с установкой стоп-лосса в 4 раза ATR. Логика стратегии ясна, проста в реализации и лучше улавливает тенденции цен на акции. Однако, стратегия также имеет некоторые риски, такие как задержка показателя, простая установка стоп-лосса и т. Д. В будущем можно рассмотреть возможность добавления других показателей, оптимизации установки стоп-лосса, включения управления позициями и т. Д.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD Strategy", overlay=true)
// Define MACD
[macdLine, signalLine, _] = macd(close, 12, 26, 9)
// Define conditions for long entry
longCondition = crossover(macdLine, signalLine)
// Define conditions for short entry
shortCondition = crossunder(macdLine, signalLine)
// Define stop loss for long entry
longStopLoss = low[1] // Previous candle low
// Define stop loss for short entry
shortStopLoss = high[1] // Previous candle high
// Define take profit for both long and short entries
takeProfit = close + (close - longStopLoss) * 4 // 4 x ATR
// Execute long entry
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("TP/SL", "Buy", stop=longStopLoss, limit=takeProfit)
// Execute short entry
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("TP/SL", "Sell", stop=shortStopLoss, limit=takeProfit)