Долгосрочная стратегия на основе MACD


Дата создания: 2024-01-12 11:02:06 Последнее изменение: 2024-01-12 11:02:06
Копировать: 0 Количество просмотров: 639
1
Подписаться
1617
Подписчики

Долгосрочная стратегия на основе MACD

Обзор

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

Стратегический принцип

Эта стратегия использует быструю и медленную линии MACD-индикаторов. Параметры быстрой линии составляют 12-дневную ЭМА, а медленной линии - 26-дневную ЭМА. Разница между двумя равномерными линиями представляет собой столбик MACD. Кроме того, 9-дневная ЭМА рассчитывается в качестве сигнальной линии.

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

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

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

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

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

Однако эта стратегия также несет в себе определенные риски:

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

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

Направление оптимизации

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

  1. Тестирование различных комбинаций MACD-параметров в поисках наиболее эффективных

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

  1. Замена других показателей

Такие показатели, как RSI, KD и т.д., могут иметь разные эффекты.

  1. Оптимизация параметров длинных и позеристых линий

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

  1. Настройка стратегии стоп-лосса

Можно подумать о том, чтобы использовать такие методы, как trailing stop, чтобы остановить убытки более динамично.

  1. Тестирование нескольких валютных пар

Применение стратегии к другим валютным парам, эффективность исследования

Подвести итог

В целом, эта стратегия является очень простой и интуитивно понятной стратегией длинных линий торговли. Используйте 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)