
Chiến lược này dựa trên Histogram của chỉ số MACD để đưa ra quyết định giao dịch. Nó sử dụng xu hướng tăng và xu hướng giảm của Histogram để tạo ra tín hiệu mua và bán.
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 toán đường nhanh EMA và đường chậm EMA. Sau đó, đường nhanh trừ đi đường chậm để có được MACD, MACD và trừ đi tín hiệu di chuyển của nó để có được Histogram.
Một tín hiệu mua được tạo ra khi Histogram tiếp tục xu hướng tăng lên đến chu kỳ được thiết lập. Điều này cho thấy MACD đang tăng tốc lên vượt qua đường tín hiệu của nó và dự đoán giá có thể tăng lên.
Một dấu hiệu bán ra được tạo ra khi Histogram tiếp tục đi xuống và đạt được một chu kỳ được thiết lập. Điều này cho thấy MACD đang tăng tốc đi xuống và phá vỡ đường tín hiệu của nó, dự đoán giá có thể giảm.
Chiến lược này có những ưu điểm sau:
Sử dụng MACD Histogram theo xu hướng, có thể nắm bắt các điểm biến đổi của giá và tăng khả năng lợi nhuận.
Kết hợp với các điều kiện chu kỳ khi Histogram liên tục tăng hoặc giảm, bạn có thể lọc một số giao dịch ồn và giảm tổn thất không cần thiết.
Cho phép tùy chỉnh các tham số MACD và chu kỳ xu hướng Histogram, có thể điều chỉnh để phù hợp với các giống và thời gian giao dịch khác nhau.
Logic của chiến lược đơn giản và rõ ràng, dễ hiểu và sửa đổi, cũng như dễ dàng sử dụng 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:
Khi giá nằm trong vùng dao động, có thể tạo ra tín hiệu sai, cần kết hợp các chỉ số xu hướng và các bộ lọc khác.
Sau khi histogram tăng hoặc giảm, đường MACD có thể không thể vượt qua đường tín hiệu, không thể rút ra lợi nhuận và cần thiết lập dừng lỗ để kiểm soát rủi ro.
Không tính đến các vấn đề giao dịch thực tế như chi phí giao dịch và điểm trượt, thu nhập trong thời gian thực có thể giảm.
Các thiết lập tham số (như chu kỳ MACD, chu kỳ xu hướng Histogram, v.v.) có thể dẫn đến hiệu quả chiến lược kém, cần tối ưu hóa cho giống và thời gian.
Những rủi ro này có thể được kiểm soát và giảm thiểu bằng 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ác cơ chế dừng lỗ và các tham số tối ưu hóa.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Kết hợp với các chỉ số khác để xác định định hướng xu hướng chung chung, tránh các khu vực giao dịch dao động. Ví dụ: Xác định xu hướng đường dài giữa đường 20 ngày.
Tăng cơ chế dừng lỗ. Ví dụ: MACD dừng lại khi nó rơi xuống đường tín hiệu.
Tối ưu hóa tham số MACD để phù hợp với các giống khác nhau về chu kỳ. Ví dụ, tham số chu kỳ có thể được rút ngắn đối với dữ liệu tần số cao.
Tối ưu hóa số chu kỳ tối thiểu của Histogram liên tục tăng hoặc giảm, cân bằng tần suất và độ tin cậy của tín hiệu.
Logic của chiến lược theo dõi tín hiệu sau khi cố gắng Breakout thất bại.
Kết hợp với các chỉ số khác, chẳng hạn như chỉ số năng lượng, chỉ số tỷ lệ dao động để đánh giá nhiệt độ thị trường, lọc tín hiệu.
Các chiến lược MACD Histogram Trend bằng cách nắm bắt các thay đổi trong xu hướng Histogram, để thực hiện phán đoán về các điểm biến đổi biến đổi giá. kết hợp với các tham số tối ưu hóa và kết hợp các chỉ số phán đoán, có thể hiệu quả loại bỏ các tín hiệu sai. MACD Histogram là một công cụ hỗ trợ rất quan trọng trong giao dịch định lượng phán đoán, chiến lược cung cấp một giao dịch đơn giản và thiết thực tư duy.
/*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)