
Chiến lược này là một chiến lược giao dịch trong ngày dựa trên mô hình biểu đồ sáng, chủ yếu sử dụng các điểm cao thấp của đường quay 11 giờ sáng để xác định xu hướng thị trường. Ý tưởng cốt lõi của chiến lược là làm nhiều khi giá vượt qua mức cao sáng, phá vỡ mức thấp, đồng thời thiết lập các điều kiện dừng tương ứng. Phương pháp này kết hợp các khái niệm về theo dõi xu hướng và biến đổi giá, nhằm nắm bắt các xu hướng ngắn sau khi phá vỡ mức giá quan trọng trong ngày.
Chiến lược này hoạt động như sau:
Xác định mức giá quan trọng: Chiến lược đầu tiên xác định điểm cao nhất và thấp nhất của 11 giờ sáng và sử dụng hai mức giá này làm mức giá quan trọng.
Tín hiệu nhập cảnh:
Cài đặt Stop Loss:
Cơ chế rút lui:
Hạn chế thời gian giao dịch: Chiến lược không mở giao dịch mới sau 15:15 để tránh biến động bất thường trước khi đóng cửa.
Quy tắc giao dịch rõ ràng: Chiến lược dựa trên logic phá vỡ và đảo ngược giá rõ ràng, dễ hiểu và thực hiện.
Kiểm soát rủi ro: Kiểm soát hiệu quả rủi ro của mỗi giao dịch bằng cách thiết lập điểm dừng cố định.
Khả năng thích ứng với tình trạng thị trường: Chiến lược có thể thích ứng với tình trạng biến động thị trường khác nhau dựa trên phạm vi giá hình thành vào buổi sáng.
Tự động hóa thực hiện: Chiến lược có thể được lập trình để thực hiện giao dịch hoàn toàn tự động, giảm sự can thiệp của con người và ảnh hưởng cảm xúc.
Giao dịch trong ngày: tránh rủi ro giữ vị thế qua đêm bằng cách giảm vị thế trước khi ngày kết thúc.
Tính linh hoạt: Chiến lược có thể được tối ưu hóa theo các tham số cho các thị trường và loại giao dịch khác nhau.
Rủi ro phá vỡ giả: Thị trường có thể bị phá vỡ giả, dẫn đến việc dừng lỗ thường xuyên.
Hạn chế độ biến động: Trong thời gian biến động thấp, chiến lược có thể khó kích hoạt tín hiệu giao dịch hoặc tạo ra lợi nhuận hiệu quả.
Một khung thời gian duy nhất: chỉ dựa vào đường dây 11 giờ có thể bỏ qua thông tin thị trường quan trọng trong các khoảng thời gian khác.
Thiếu theo dõi xu hướng: Chiến lược không đặt ra các điều kiện dừng, có thể không nắm bắt đầy đủ các xu hướng lớn.
Hạn chế cố định: Trong thị trường có biến động cao, Hạn chế cố định có thể quá gần, dẫn đến thoát khỏi lợi nhuận sớm.
Chi phí giao dịch: Việc giao dịch thường xuyên có thể dẫn đến chi phí giao dịch cao, ảnh hưởng đến thu nhập tổng thể.
Nhập phân tích nhiều khung thời gian: kết hợp với định hướng của chu kỳ thời gian dài hơn, tăng độ chính xác của giao dịch.
Động lực dừng: sử dụng các phương pháp như chỉ số ATR để thiết lập động lực dừng để thích ứng với các tình trạng biến động thị trường khác nhau.
Tham gia vào cơ chế dừng: thiết lập các điều kiện dừng dựa trên tỷ lệ lợi nhuận rủi ro, cải thiện tỷ lệ thua lỗ của chiến lược.
Phân tích khối lượng: Thêm phân tích khối lượng giao dịch để tăng độ tin cậy của tín hiệu đột phá.
Bộ lọc trạng thái thị trường: giới thiệu các chỉ số biến động như ATR, giảm tần suất giao dịch trong thời gian biến động thấp.
Tối ưu hóa thời gian vào thị trường: Xem xét sử dụng các chỉ số như RSI để giao dịch ngược trong khu vực mua quá mức.
Thêm một yếu tố theo dõi xu hướng: Hãy xem xét sử dụng lệnh dừng di động để theo dõi xu hướng khi có sự phá vỡ mạnh mẽ.
Phản hồi và tối ưu hóa tham số: Phản hồi các kết hợp tham số khác nhau để tìm ra thiết lập tham số tối ưu.
Chiến lược đột phá và đảo ngược vào buổi sáng là một hệ thống giao dịch trong ngày dựa trên đột phá giá trị quan trọng. Nó sử dụng điểm cao và thấp vào lúc 11 giờ sáng như một tham chiếu quan trọng để nắm bắt xu hướng ngắn hạn thông qua đột phá giá. Ưu điểm của chiến lược là quy tắc rõ ràng, rủi ro có thể kiểm soát được, thích hợp cho việc thực hiện tự động. Tuy nhiên, nó cũng có những rủi ro tiềm ẩn như cố định, dừng lỗ, phá vỡ giả.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)
// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15
// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
morningHigh := high
morningLow := low
morningCandleFound := true
// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)
// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false
if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
// Check for Buy Call condition
if (close[1] > morningHigh and close > morningHigh)
if (not inTrade or tradeDirection != 1)
strategy.entry("Buy Call", strategy.long, stop=morningLow)
buyCallCondition := true
inTrade := true
tradeDirection := 1
label.new(bar_index, high, "Buy Call", color=color.green)
alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
else if (close[1] <= morningHigh)
buyCallCondition := false
// Check for Buy Put condition
if (close[1] < morningLow and close < morningLow)
if (not inTrade or tradeDirection != -1)
strategy.entry("Buy Put", strategy.short, stop=morningHigh)
buyPutCondition := true
inTrade := true
tradeDirection := -1
label.new(bar_index, low, "Buy Put", color=color.red)
alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
else if (close[1] >= morningLow)
buyPutCondition := false
// Exit conditions
if (inTrade)
if (tradeDirection == 1 and low <= morningLow)
strategy.close("Buy Call")
label.new(bar_index, low, "Exit Call", color=color.red)
alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
buyCallCondition := false
inTrade := false
tradeDirection := 0
if (tradeDirection == -1 and high >= morningHigh)
strategy.close("Buy Put")
label.new(bar_index, high, "Exit Put", color=color.green)
alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
buyPutCondition := false
inTrade := false
tradeDirection := 0
// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
strategy.close_all()
inTrade := false
tradeDirection := 0
noNewTrades := true
alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)
// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
noNewTrades := false