Chiến lược MACD của EMA Nine Stock

Tác giả:ChaoZhang, Ngày: 2024-02-27 16:49:10
Tags:

img

Tổng quan

Chiến lược này sử dụng toàn diện chỉ số EMA, chỉ số Bollinger Bands và chỉ số MACD. Trên cơ sở thập giá vàng và thập giá chết của EMA 9 ngày và EMA 30 ngày, nó xác định thời gian mua và bán kết hợp với phạm vi phân phối giá và các chỉ số động lực.

Nguyên tắc chiến lược

  1. Tính toán EMA 3 ngày, EMA 9 ngày và EMA 30 ngày.

  2. Tính toán độ lệch chuẩn trong vòng 20 ngày của giá và vẽ Bollinger Bands với 1 và 2 lần độ lệch chuẩn.

  3. Tính toán đường tín hiệu MACD 12 ngày, 26 ngày và 9 ngày.

  4. Khi EMA 9 ngày vượt quá EMA 30 ngày, và giá vượt quá giới hạn trên của Bollinger Bands sai lệch chuẩn 1x, một tín hiệu mua được phát hành.

  5. Khi EMA 30 ngày đi dưới EMA 9 ngày, và giá thấp hơn giới hạn dưới của Bollinger Bands sai lệch chuẩn 1x, một tín hiệu bán được phát hành.

Phân tích lợi thế

Bằng cách kết hợp các chỉ số trung bình động và các chỉ số động lực, chiến lược này có thể nắm bắt tốt hơn xu hướng và thời gian thị trường, với những lợi thế sau:

  1. Chỉ số EMA có thể phản ứng nhanh chóng với sự thay đổi giá để xác định xu hướng thị trường; chỉ số MACD đánh giá động lực để ngăn chặn sự đột phá sai.

  2. Sự kết hợp của các chỉ số sai lệch chuẩn Bollinger Bands và EMA có thể xác định chính xác hơn thời gian mua và bán.

  3. Sự kết hợp của nhiều chỉ số có thể bổ sung cho nhau.

Phân tích rủi ro và tối ưu hóa

Chiến lược này cũng có một số rủi ro. Hãy chú ý đến các điểm sau đây để tối ưu hóa:

  1. Sự kết hợp giữa các đường trung bình di chuyển EMA có thể được điều chỉnh và tối ưu hóa.

  2. Các thông số của Bollinger Bands có thể được tối ưu hóa bằng cách thay đổi phép nhân các độ lệch chuẩn để lọc ra các tín hiệu sai.

  3. Các thông số và sự kết hợp của chỉ số MACD có thể được tối ưu hóa để cải thiện hiệu quả đánh giá động lượng.

Tóm lại

Chiến lược này tích hợp chỉ số EMA để xác định xu hướng chính, được bổ sung bằng chỉ số Bollinger Bands có thể nắm bắt chính xác các điểm mua và bán khi đà tăng tương đối lớn; chỉ số MACD bổ sung xác nhận xu hướng và có thể lọc hiệu quả các tín hiệu sai. Thông qua tối ưu hóa tham số, hiệu quả của chiến lược này có thể được cải thiện hơn nữa.


/*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)






Thêm nữa