Стратегия перехода MACD в среднюю линию быков и медведей производит торговый сигнал путем вычисления средней линии DIFF и DEA в MACD-индикаторе, чтобы определить, произошел ли рыночный тренд. Когда DIFF превышает DEA, делают больше; когда DIFF превышает DEA, делают меньше.
Стратегия основана на DIFF и DEA средних значений MACD. MACD представляет собой дифференцированный переходный средний показатель, состоящий из DIFF, DEA и MACD.
Когда DIFF вверх пробивает DEA, это означает, что краткосрочная средняя линия начинает укрепляться, и рынок входит в плюс, а когда DIFF вниз пробивает DEA, это означает, что краткосрочная средняя линия начинает ослабевать, и рынок входит в пустоту. Таким образом, эта стратегия делает больше на DIFF, когда она проходит DEA, и делает пустоту, когда она проходит.
В то же время, стратегия также сочетается с средней линией цены EMA, чтобы отфильтровывать ложные прорывы. Выполняется только тогда, когда DIFF вверх прорывает DEA и цена ниже предыдущей ставки; только тогда, когда DIFF вниз прорывает DEA и цена выше предыдущей ставки.
Стратегия перехода MACD на линию быков и медведей в сочетании с MACD и линией цены на EMA, избегая ложных сигналов, генерируемых только MACD, улучшает эффективность торговли. Эта стратегия определяет, что рыночная тенденция быстро переходит и подходит для коротких операций.
Основные преимущества:
Также существуют некоторые риски, связанные со стратегией перехода на линейный бык-медведь по MACD, которые проявляются в следующем:
Эти риски можно оптимизировать в следующих аспектах:
Также есть возможность оптимизировать стратегию перехода на среднелинейный бык-медведь по MACD, используя следующие измерения:
Стратегия перехода MACD в равновесный бык и медведь позволяет быстро определить переход рыночной тенденции с помощью DIFF, DEA, чтобы определить время, когда рынок вступает в многоголовый и пустой рынок, и в сочетании с ценовым сигналом EMA в равновесный фильтр. Стратегия использует простую и четкую логику торговли, быстро определяет переходную точку, подходит для короткой и средней линий. Следующий шаг в работе может быть оптимизирован с точки зрения корректировки параметров, усиления фильтров, контроля частоты торгов и т. Д., Что делает стратегию более стабильной.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("macd_strategy",
shorttitle="macd",
overlay=true,
pyramiding=1,
max_bars_back=5000,
calc_on_order_fills = false,
calc_on_every_tick=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type =strategy.commission.percent,
commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]
cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
cross_over_price := price[1]
cross_over_signal := diff
if (crossunder(diff,dea))
cross_under_price := price[1]
cross_under_signal := diff
if dea > 0
cross_over_price = na
cross_over_signal = na
else
cross_under_price = na
cross_under_signal = na
if diff > 0
if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
strategy.entry("S", strategy.short, comment="S")
else
if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
strategy.entry("B", strategy.long, comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))