Стратегия MACD Long Only

Автор:Чао Чжан, Дата: 2024-01-12 11:02:06
Тэги:

img

Обзор

Эта стратегия основана на индикаторе MACD и длинных и закрытых линиях для реализации долгосрочной торговли валютной парой. Она открывает позиции, когда линия индикатора MACD пересекает длинную линию, и закрывает позиции, когда линия индикатора MACD пересекает ниже линии закрытия. Также настроена стратегия стоп-лосса.

Логика стратегии

Стратегия использует быстрые и медленные линии индикатора MACD. Быстрая линия имеет параметр 12-дневной EMA, а медленная линия имеет параметр 26-дневной EMA. Разница между двумя линиями заключается в гистограмме MACD. Кроме того, 9-дневная EMA рассчитывается как линия сигнала. Она длится, когда гистограмма MACD пересекает выше 0,04 и закрывает длинные позиции при пересечении ниже 0,015.

В частности, стратегия сначала рассчитывает быструю линию, медленную линию и сигнальную линию индикатора MACD. Затем длинная линия устанавливается на -0,04, линия закрытия устанавливается на 0,015. Если текущая гистограмма MACD больше длинной линии, она идет длинной. Если текущая гистограмма MACD меньше линии закрытия, она закрывает длинную позицию. Кроме того, линия остановки потери устанавливается на 95% от цены входа.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Использование индикатора MACD для высокоточной оценки рыночной тенденции
  2. Двойной фильтр с длинными и узкими линиями избегает ложных сигналов
  3. Стратегия стоп-лосса эффективно контролирует риски
  4. Простая и понятная логика, легко понятная и реализуемая
  5. Только потребности и индикатор MACD, меньше занятости ресурсами

Анализ рисков

Стратегия также сопряжена с некоторыми рисками:

  1. Индикатор MACD немного отстает, может упустить краткосрочные возможности
  2. Установка стоп-лосса может быть слишком консервативной для отслеживания долгосрочных тенденций
  3. Настройка параметров требует много обратного тестирования, в противном случае может возникнуть перенапряжение
  4. Применяется только для, эффективность для других пар неопределена

Для оптимизации и улучшения можно использовать такие методы, как корректировка параметров, объединение других показателей.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Проверить различные комбинации параметров MACD для поиска лучших параметров

    Быстрая линия, медленная линия, сигнальная линия с различными длинами можно попробовать найти более подходящие комбинации

  2. Попробуйте другие показатели.

    Показатели, такие как RSI, KD могут иметь очень разные результаты

  3. Оптимизировать параметры длинной и близкой линии

    Более подходящие параметры могут быть найдены путем повторного обратного тестирования

  4. Корректировка стратегии стоп-лосса

    Рассмотреть остановки отслеживания, чтобы сделать остановку потери более динамичной

  5. Тест на разных валютных парах

    Применить стратегию к другим парам и изучить последствия

Заключение

В заключение, это в целом очень простая и интуитивно понятная долгосрочная стратегия торговли. Она оценивает рыночные условия с использованием индикатора MACD и устанавливает критерии двойного фильтра для снижения ложной торговли. Контроль риска также выполняется с помощью стоп-лосса. Логика ясна и занятость ресурсов низкая. Ее легко понять и реализовать, стоит рекомендовать. Конечно, еще есть много возможностей для улучшения с помощью настройки параметров, изменения индикатора и других средств, чтобы сделать стратегию еще более выдающейся.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average",  defval = 12, minval = 7)
slowMA = input(title="Slow moving average",  defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)

//MACD
// Getting inputs
fast_length = input(title="Fast Length",  defval=12)
slow_length = input(title="Slow Length",  defval=26)
src = input(title="Source",  defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD

//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)

//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)


//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100


//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)


//Order Entries
strategy.entry("long", strategy.long,  when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)

Больше