Chiến lược này đưa ra quyết định giao dịch dựa trên xu hướng của biểu đồ MACD. Nó sử dụng xu hướng tăng và giảm của biểu đồ để tạo ra tín hiệu mua và bán. Khi biểu đồ tiếp tục tăng hoặc giảm trong một khoảng thời gian nhất định, các tín hiệu tương ứng được tạo ra.
Chiến lược này sử dụng đường nhanh, đường chậm và Histogram của chỉ số MACD. Đầu tiên tính EMA nhanh và EMA chậm. Sau đó trừ EMA chậm từ EMA nhanh để có được MACD, và trừ tín hiệu là trung bình động của MACD để có được Histogram.
Khi Histogram tiếp tục tăng trong khoảng thời gian đã thiết lập, một tín hiệu mua được tạo ra. Điều này cho thấy MACD đang tăng tốc để phá vỡ đường tín hiệu của nó lên, dự đoán rằng giá có thể tăng.
Khi Histogram tiếp tục giảm trong khoảng thời gian đã thiết lập, một tín hiệu bán được tạo ra. Điều này cho thấy MACD đang tăng tốc để phá vỡ đường tín hiệu của nó xuống, dự đoán rằng giá có thể giảm.
Chiến lược có những lợi thế sau:
Sử dụng đặc điểm xu hướng của MACD Histogram, nó có thể nắm bắt các điểm chuyển đổi của sự thay đổi giá và tăng lợi nhuận.
Kết hợp với điều kiện tăng hoặc giảm liên tục của Histogram, một số giao dịch ồn ào có thể được lọc ra để giảm lỗ không cần thiết.
Cho phép tùy chỉnh các thông số MACD và thời gian xu hướng Histogram, nó có thể được điều chỉnh để phù hợp với các sản phẩm và phiên giao dịch khác nhau.
Logic chiến lược đơn giản và rõ ràng, dễ hiểu và sửa đổi, và cũng thuận tiện để kết hợp với các chỉ số hoặc chiến lược khác.
Chiến lược này cũng có một số rủi ro:
Các tín hiệu sai có thể xảy ra khi giá dao động trong phạm vi. Các chỉ số xu hướng cần được kết hợp để lọc.
Sau khi biểu đồ tăng hoặc giảm, đường MACD có thể không vượt qua đường tín hiệu, không thể thoát ra có lợi nhuận.
Chi phí giao dịch và trượt không được xem xét. Lợi nhuận thực tế có thể giảm trong giao dịch trực tiếp.
Cài đặt tham số không chính xác (ví dụ: thời gian MACD, thời gian xu hướng Histogram) có thể làm suy giảm hiệu suất chiến lược.
Những rủi ro này có thể được kiểm soát và giảm thiểu thông qua các phương pháp như kết hợp với các chỉ số xu hướng, thiết lập cơ chế dừng lỗ, tối ưu hóa các thông số vv.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Kết hợp các chỉ số khác để xác định hướng xu hướng tổng thể, tránh giao dịch trong phạm vi dao động. ví dụ: đường 20 ngày cho xu hướng trung bình dài hạn.
Thêm cơ chế dừng lỗ. ví dụ: dừng lỗ khi MACD phá vỡ lại đường tín hiệu xuống.
Tối ưu hóa các tham số MACD để phù hợp với các sản phẩm có tần số khác nhau. ví dụ: rút ngắn các tham số thời gian cho dữ liệu tần số cao.
Tối ưu hóa thời gian tối thiểu của Histogram liên tiếp tăng hoặc giảm, cân bằng tần số tín hiệu và độ tin cậy.
Hãy thử logic của tín hiệu theo sau khi thất bại, tức là tín hiệu ngược sau khi Histogram đảo ngược.
Kết hợp các chỉ số khác như chỉ số khối lượng hoặc biến động để đo nhiệt độ thị trường và các tín hiệu lọc.
Tóm lại, chiến lược xu hướng mô hình mô hình mô hình MACD thực hiện đánh giá các điểm chuyển đổi giá bằng cách nắm bắt các thay đổi xu hướng mô hình mô hình mô hình mô hình. Kết hợp tối ưu hóa tham số và các chỉ số kết hợp có thể lọc hiệu quả các tín hiệu sai. Là một công cụ đánh giá phụ quan trọng trong giao dịch định lượng, chiến lược này cung cấp một ý tưởng giao dịch đơn giản và thực tế bằng cách sử dụng mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô hình mô
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //study(title="Histogram Strategy by Sedkur", shorttitle="Histogram Strategy by Sedkur") strategy (title="Histogram Trends Strategy by Sedkur", shorttitle="Histogram Trends Strategy by Sedkur") /// Getting inputs dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500) fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) hist_length = input(title="Trend of Histogram Number", type=input.integer, defval=1, minval=1, maxval=100) //buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1) //sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.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=plot.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) //bullish = hist[1] <= hist and buyh<=hist?true:false //bearish = hist[1] >= hist and sellh>=hist?true:false bull=0 bear=0 for i=0 to hist_length if (hist[i+1] <= hist[i]) bull:=bull+1 bullish = bull==hist_length+1?true:false for j=0 to hist_length if (hist[j+1] >= hist[j]) bear:=bear+1 bearish = bear==hist_length+1?true:false //bullish = hist[1] <= hist and hist[2] <= hist and hist[3] <= hist and hist[4] <= hist and hist[5] <= hist?true:false //bearish = hist[1] >= hist and hist[2] >= hist and hist[3] >= hist and hist[4] >= hist and hist[5] >= hist?true:false strategy.entry("buy", strategy.long, comment="buy", when = bullish and year>=dyear) strategy.entry("sell", strategy.short, comment="sell", when = bearish and year>=dyear)