Эта стратегия является стратегией отслеживания трендов, которая использует несколько временных рамок, чтобы адаптироваться к принципу пересечения движущихся средних линий. Эта стратегия одновременно использует быструю линию, медленную линию и индикатор MACD для определения торговых сигналов с целью получения дополнительной прибыли от трендов средней и длинной линий.
Эта стратегия основана на комбинации двух подвижных среднелинейных пересечений с MACD-индикатором. Двух подвижных среднелинейных пересечений состоят из короткосрочной EMA и долгосрочной EMA, которые рассчитывают краткосрочную среднюю и долгосрочную среднюю соответственно. Когда на короткой линии проходит медленная линия, то появляется сигнал покупки, показывающий, что ситуация изменилась в сторону падения, и может быть создана многоочередная позиция. Когда на короткой линии проходит медленная линия, то появляется сигнал продажи, показывающий, что ситуация изменилась в сторону падения, и может быть выведена из позиции.
Эта стратегия, объединяющая трендовую оценку двойных движущихся средних и средних линий и сигналы переключения MACD, эффективно фильтрует ложные прорывы, получая при этом прибыль от тренда средних и средних линий. В частности, более надежный сигнал об отключении производится, если столбцы MACD переходят медленную линию на быстрой линии и одновременно становятся зелеными; наоборот, более сильный сигнал об отключении производится, если столбцы MACD переходят медленную линию на быстрой линии и одновременно становятся красными.
Кроме того, в стратегии также введена функция самоадаптации параметров. В процессе оптимизации параметров, быстрого цикла, медленного цикла и параметров MACD будут автоматически корректироваться в зависимости от эффекта разных временных промежутков, чтобы гарантировать оптимальную производительность стратегии в разных ситуациях.
Объединение двух равнолинейных систем и MACD-показателей, объединение различных факторов для принятия решений, избежание заблуждения ложными сигналами шума.
Применение функции самостоятельной адаптации параметров, позволяющей стратегии динамически корректировать параметры для адаптации к изменениям рынка, автоматически оптимизируя торговые решения.
Лучше отслеживать долгосрочные тренды, отфильтровывать ложные прорывы во время рыночных колебаний и получать дополнительную прибыль в трендовых ситуациях.
Анализ по временным рамкам позволяет выявить тенденции на более широком уровне.
Логика стратегии ясна и проста, структура кода оптимизирована, легко понимается и изменяется, адаптируется к различным потребностям.
Двухлинейная система содержит риски картонного випсава, не подходит для шокирующих ситуаций, следует выбирать более заметные акции и периоды времени.
MACD имеет запаздывающий характер и не подходит для отслеживания резко изменяющихся тенденций, его следует использовать в сочетании с другими показателями.
Оптимизация параметров требует достаточно большого цикла обратной проверки и строгой оценки рисков, чтобы избежать пересочетания.
При удержании позиции в долгой линии необходимо обращать внимание на системные риски, связанные с внезапными событиями, и своевременно останавливать ущерб.
Возможно, что функция параметров самостоятельной адаптации была оптимизирована, поэтому необходимо проверить ее, чтобы избежать слишком частого корректировки параметров.
Можно тестировать комбинации различных средних скоростей, выбирая средние параметры, которые могут фильтровать шум и следовать тенденциям.
Можно опробовать множественные параметры MACD, чтобы найти комбинационные параметры, которые могут предварительно реагировать на точку перехода тенденции.
В качестве фильтра можно использовать индикатор тренда, чтобы приостановить торговлю, когда тенденция не ясна, и избежать whipsaw.
Можно ввести механизм остановки убытков, установить подвижный или висячий остановку убытков, контролировать одиночные убытки.
Можно попробовать включить алгоритмы машинного обучения, использовать большое количество данных для обучения параметров, адаптироваться к правилам, повысить стабильность стратегии.
Можно попробовать арбитраж с несколькими разновидностями, сформировать портфель сделок между соответствующими разновидностями, чтобы рассеять системный риск на рынке.
Эта стратегия объединяет двухместный пересекающийся средний и динамический индикатор MACD, реализуя органическое сочетание отслеживания тенденций и контроля ритма. Введение самостоятельно адаптируемых параметров делает стратегию более гибкой, способной плавно адаптироваться к изменениям рынка. По сравнению со стратегией с одним индикатором, эта стратегия создает более сильный эффект на принятие решений, позволяющий получать более богатую торговую выгоду в средне- и долгосрочных тенденциях.
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// To enable alerts: Change 'Strategy' to read 'Study' below and you also need to comment out lines 43 and 47 - Strategy code
// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3 )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")
source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal
// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//
isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]
// ======= MACD STRATEGY CODE ========== //
// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]
MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance
plot(macd, title="MACD", color=blue, linewidth=3)
plot(signal, title="SIGNAL", color=orange, linewidth=3)
// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//
plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)
// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD
//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)
// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //
strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long
strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())
// === CREATE ALERT CONDITIONS === //
alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()
alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')