
Chiến lược này kết hợp các chỉ số cân bằng trực tiếp và các chỉ số xung đột ẩn để thực hiện một chiến lược giao dịch định lượng đơn giản hơn. Nó tạo ra tín hiệu mua khi đường cân bằng trực tiếp cao hơn đường xung đột ẩn và giá đóng cửa cao hơn đường cân bằng trực tiếp; nó tạo ra tín hiệu bán khi đường cân bằng trực tiếp thấp hơn đường xung đột ẩn và giá đóng cửa thấp hơn đường cân bằng trực tiếp.
Chỉ số cân bằng một mắt bao gồm ba đường cong của đường chuyển tiếp, đường chuẩn và đường trì hoãn. Đường chuyển tiếp trước đại diện cho giá trung bình của một khoảng thời gian nhất định gần đây nhất, đường chuẩn đại diện cho giá trung bình của một khoảng thời gian dài hơn, và đường trì hoãn thường là trung bình của đường chuyển tiếp trước và đường chuẩn.
Chỉ số xung đột ẩn bao gồm hai đường cong A và B. Chúng đại diện cho giá trị trung bình của biến động giá trong các chu kỳ chiều dài khác nhau. Khi đường A cao hơn đường B, biểu thị sự biến động trong ngắn hạn tăng lên, giá sẽ tăng lên.
Chiến lược này sử dụng đường cân bằng để xác định hướng xu hướng chung, sử dụng đường dẫn trước xung đột ẩn để xác định động lực giá, kết hợp với giá đóng cửa để tạo ra tín hiệu giao dịch chính xác. Mua khi có xu hướng tăng và biến động tăng lên, bán khi có xu hướng giảm và biến động thu hẹp, để kiếm lợi nhuận.
Đây là một chiến lược giao dịch số lượng đơn giản, có một số lợi thế:
Chiến lược này cũng có một số rủi ro, bao gồm:
Chính sách này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này nói chung là một chiến lược giao dịch định lượng rất đơn giản, nó kết hợp các chỉ số cân bằng và xung đột ẩn để xác định xu hướng và động lực giá, tạo ra tín hiệu giao dịch. Chiến lược này phù hợp với giao dịch ngắn hạn của tài sản có tính biến động cao, có thể thu được lợi nhuận tốt. Tất nhiên, không có chiến lược nào hoàn hảo, chiến lược này cũng có một số không gian tối ưu hóa, có thể cải thiện từ các quy tắc nhập cảnh, cơ chế dừng lỗ, lựa chọn tham số, v.v.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)
len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
plot(out, title="EMA", color=color.white)
// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2
// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1
// Strategy entry and exit conditions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
if (close < out)
strategy.close("Buy")
// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
if (close > out)
strategy.close("Sell")