
Chiến lược này dựa trên sự sai lệch của xu hướng trên biểu đồ một giờ, tín hiệu chéo của MACD trên biểu đồ 15 phút và tỷ lệ biến động nhanh và lỗ hổng trên biểu đồ 5 phút để xác định điểm vào. Bằng cách sử dụng nhiều chỉ số trong các chu kỳ thời gian khác nhau, chiến lược này nhằm mục đích nắm bắt xu hướng dài hạn, động lực trung hạn và biến động ngắn hạn của thị trường để dự báo thị trường chính xác hơn.
Nguyên tắc cốt lõi của chiến lược này là kết hợp các chỉ số kỹ thuật của các giai đoạn thời gian khác nhau để phân tích thị trường một cách toàn diện hơn. Cụ thể:
Bằng cách kết hợp các tín hiệu của ba chu kỳ thời gian khác nhau, chiến lược này có thể nắm bắt được xu hướng tổng thể của thị trường tốt hơn, đồng thời sử dụng biến động ngắn hạn để tối ưu hóa điểm nhập cảnh, do đó cải thiện độ chính xác của giao dịch và tiềm năng lợi nhuận.
Chiến lược này xây dựng một hệ thống giao dịch nhiều chu kỳ, nhiều chỉ số bằng cách kết hợp sai lệch xu hướng trên biểu đồ một giờ, tín hiệu động lực MACD trên biểu đồ mười lăm phút và biến động nhanh và lỗ hổng giá trên biểu đồ năm phút. Phương pháp này cho phép phân tích thị trường một cách toàn diện hơn, nắm bắt các xu hướng và cơ hội ở nhiều cấp độ khác nhau, đồng thời kiểm soát rủi ro. Tuy nhiên, hiệu suất của chiến lược có thể nhạy cảm hơn với lựa chọn tham số và có thể gặp thách thức trong một số biến động mạnh mẽ của thị trường.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("H1 Bias + M15 MSS + M5 FVG", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// H1 Bias
h1_bias = request.security(syminfo.tickerid, "60", close)
h1_ma = ta.sma(h1_bias, 50)
// M15 MSS
[m15_macd_line, m15_macd_signal, _] = ta.macd(request.security(syminfo.tickerid, "15", close), 12, 26, 9)
// M5 FVG Entry
m5_volatility = ta.atr(14)
// Entry conditions for long and short positions
long_condition = m15_macd_line > m15_macd_signal and m5_volatility > 0.001
short_condition = m15_macd_line < m15_macd_signal and m5_volatility > 0.001
// Exit conditions
exit_long_condition = m15_macd_line < m15_macd_signal
exit_short_condition = m15_macd_line > m15_macd_signal
// Strategy
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (exit_long_condition)
strategy.close("Long")
if (exit_short_condition)
strategy.close("Short")
// Take-Profit and Stop-Loss settings considering leverage
leverage = 10.0 // Leverage as a float
tp_percentage = 15.0 // TP percentage without leverage as a float
sl_percentage = 5.0 // SL percentage without leverage as a float
tp_level = strategy.position_avg_price * (1.0 + (tp_percentage / 100.0 / leverage)) // TP considering leverage as a float
sl_level = strategy.position_avg_price * (1.0 - (sl_percentage / 100.0 / leverage)) // SL considering leverage as a float
strategy.exit("TP/SL", "Long", limit=tp_level, stop=sl_level)
strategy.exit("TP/SL", "Short", limit=tp_level, stop=sl_level)
// Plotting
plot(h1_ma, color=color.blue, linewidth=2)
plotshape(long_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(short_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)