Chiến lược này xác định các điểm cao và thấp vào lúc 9:15 trong phiên buổi sáng, tự động tính giá mục tiêu và giá dừng lỗ cho các vị trí dài và ngắn, và tự động mở các vị trí khi các điều kiện được đáp ứng. Chiến lược sử dụng Chỉ số Sức mạnh Tương đối (RSI) để xác định trạng thái mua quá mức và bán quá mức, kết hợp với sự đột phá của các điểm cao và thấp 9:15 để xác định cơ hội nhập cảnh.
Chiến lược này dựa trên các điểm cao / thấp 9:15, sử dụng chỉ số RSI để đánh giá xu hướng, tự động tính toán giá mục tiêu và giá dừng lỗ, và tự động mở các vị trí dài hoặc ngắn dựa trên điều kiện nhập cảnh. Logic chiến lược đơn giản và rõ ràng, với mức độ tự động hóa cao, cho phép nhanh chóng nắm bắt các chuyển động xu hướng. Tuy nhiên, chiến lược cũng có rủi ro về tối ưu hóa tham số, dựa vào một chỉ số duy nhất, biến động trong ngày và thiếu quản lý vị trí. Trong tương lai, chiến lược có thể được tối ưu hóa và cải thiện trong các khía cạnh như dừng lỗ năng động, kết hợp với các chỉ số khác, tối ưu hóa điều kiện nhập cảnh và giới thiệu quản lý vị trí, để có được hiệu suất giao dịch mạnh mẽ hơn.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("9:15 AM High/Low with Automatic Forecasting", overlay=true) // Parameters showSignals = input(true, title="Show Signals") // Define session time sessionStartHour = input(9, title="Session Start Hour") sessionStartMinute = input(0, title="Session Start Minute") sessionEndHour = input(9, title="Session End Hour") sessionEndMinute = input(15, title="Session End Minute") // Calculate session high and low var float sessionHigh = na var float sessionLow = na if (hour == sessionStartHour and minute == sessionStartMinute) sessionHigh := high sessionLow := low // Update session high and low if within session time if (hour == sessionStartHour and minute >= sessionStartMinute and minute < sessionEndMinute) sessionHigh := high > sessionHigh or na(sessionHigh) ? high : sessionHigh sessionLow := low < sessionLow or na(sessionLow) ? low : sessionLow // Plot horizontal lines for session high and low plot(sessionHigh, color=color.green, title="9:00 AM High", style=plot.style_stepline, linewidth=1) plot(sessionLow, color=color.red, title="9:00 AM Low", style=plot.style_stepline, linewidth=1) // Calculate targets and stop loss longTarget = sessionHigh + 200 longStopLoss = sessionLow shortTarget = sessionLow - 200 shortStopLoss = sessionHigh // Plot targets and stop loss plot(longTarget, color=color.blue, title="Long Target", style=plot.style_cross, linewidth=1) plot(longStopLoss, color=color.red, title="Long Stop Loss", style=plot.style_cross, linewidth=1) plot(shortTarget, color=color.blue, title="Short Target", style=plot.style_cross, linewidth=1) plot(shortStopLoss, color=color.red, title="Short Stop Loss", style=plot.style_cross, linewidth=1) // RSI rsiLength = input(14, title="RSI Length") overboughtLevel = input(60, title="Overbought Level") oversoldLevel = input(40, title="Oversold Level") rsi = ta.rsi(close, rsiLength) // Entry conditions longCondition = close > sessionHigh and rsi > overboughtLevel shortCondition = close < sessionLow and rsi < oversoldLevel // Long entry if (showSignals and longCondition) strategy.entry("Long", strategy.long) // Short entry if (showSignals and shortCondition) strategy.entry("Short", strategy.short)