Импульсная линия перекрестка EMA Nine Stock MACD Стратегия

Автор:Чао Чжан, Дата: 2024-02-27 16:49:10
Тэги:

img

Обзор

Эта стратегия широко использует индикатор EMA, индикатор Bollinger Bands и индикатор MACD. На основе золотого креста и смертельного креста 9-дневной EMA и 30-дневной EMA она определяет сроки покупки и продажи в сочетании с диапазоном распределения цен и индикаторами импульса.

Принцип стратегии

  1. Вычислить 3-дневную EMA, 9-дневную EMA и 30-дневную EMA.

  2. Вычислить стандартное отклонение в течение 20 дней от цены и нарисовать полосы Боллинджера с 1 и 2 раза стандартного отклонения.

  3. Вычислить 12-дневную, 26-дневную и 9-дневную сигнальные линии.

  4. Когда 9-дневная EMA превышает 30-дневную EMA, а цена превышает верхний предел 1x стандартного отклонения полос Боллинджера, выпускается сигнал покупки.

  5. Когда 30-дневная EMA опускается ниже 9-дневной EMA, а цена ниже нижнего предела 1x стандартного отклонения полос Боллинджера, выпускается сигнал продажи.

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

Благодаря сочетанию показателей скользящей средней и показателей импульса эта стратегия позволяет лучше понять тенденции и сроки развития рынка, имея следующие преимущества:

  1. Показатель EMA может быстро реагировать на изменения цен для определения тенденций рынка; индикатор MACD оценивает импульс для предотвращения ложных прорывов.

  2. Сочетание индикаторов стандартного отклонения полос Боллинджера и EMA позволяет более точно определить сроки покупки и продажи.

  3. Сочетание нескольких показателей может дополнять друг друга.

Анализ рисков и оптимизации

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

  1. Сочетание скользящих средних EMA может быть скорректировано и оптимизировано.

  2. Параметры полос Боллинджера могут быть оптимизированы путем изменения умножения стандартных отклонений для фильтрации ложных сигналов.

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

Резюме

Эта стратегия интегрирует индикатор EMA для определения основного тренда, дополненный индикатором Bollinger Bands, который может точно захватывать точки покупки и продажи, когда импульс относительно большой; индикатор MACD дополняет подтверждение тренда и может эффективно отфильтровывать ложные сигналы.


/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("emabb_collab", shorttitle="emabb", overlay=true)

// Input parameters
ema3 = input(3, title="3 EMA")
ema9 = input(9, title="9 EMA")
ema30 = input(30, title="30 EMA")
macdShort = input(12, title="MACD Short")
macdLong = input(26, title="MACD Long")
macdSignal = input(9, title="MACD Signal")
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev1 = mult * ta.stdev(src, length)
upper1 = basis + dev1
lower1 = basis - dev1
dev2 = mult * 2 * ta.stdev(src, length)
upper2 = basis + dev2
lower2 = basis - dev2
plot(basis, "Basis", color=#FF6D00)
p1 = plot(upper1, "Upper1", color=#2962FF)
p2 = plot(lower1, "Lower1", color=#2962FF)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
plot(basis, "Basis", color=#FF6D00)
p3 = plot(upper2, "Upper2", color=#00FF8C)
p4 = plot(lower2, "Lower2", color=#00FF8C)
fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95))

// Calculate EMAs
ema3Value = ta.ema(close, ema3)
ema9Value = ta.ema(close, ema9)
ema30Value = ta.ema(close, ema30)


// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)


// Conditions for buy signal
buyCondition = ta.crossover(ema9Value, ema30Value)  and ta.stdev(close, 20) > ta.stdev(close, 20)[1]

//Conditions for sell signal
sellCondition = ta.crossover(ema30Value, ema9Value)  and ta.stdev(close, 20) < ta.stdev(close, 20)[1]

// Plot signals on the chart

plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))

// Plot EMAs
plot(ema3Value, title="3 EMA", color=color.orange)
plot(ema9Value, title="9 EMA", color=color.purple)
plot(ema30Value, title="30 EMA", color=color.red)


if buyCondition
    strategy.entry('Long', strategy.long)
if sellCondition
    strategy.entry('Short', strategy.short)






Больше