Chiến lược này tối ưu hóa các điểm đầu vào sau các tín hiệu từ hệ thống trung bình động cơ bản.
Lý lẽ chính là:
Tính toán trung bình động trong một khoảng thời gian (ví dụ: 20 ngày)
Crossover tạo ra tín hiệu dài / ngắn
Sau khi tín hiệu, không nhập ngay lập tức nhưng chờ cho mức tốt hơn
Nếu mức tốt hơn xảy ra trong những ngày được chỉ định (ví dụ 3 ngày), nhập giao dịch
Nếu không, nhập vào giá đóng cửa vào ngày thứ 5 để tránh bỏ lỡ
Điều này tìm cách tận dụng sự tiếp tục của xu hướng sau khi củng cố thay vì nhập tín hiệu ngay lập tức.
Tối ưu hóa nhập cảnh cho các mức nhập cảnh tốt hơn
Ngày chờ tối đa tránh hoàn toàn bỏ lỡ giao dịch
Quy tắc đơn giản và rõ ràng dễ thực hiện
Thời gian chờ và ngưỡng đòi hỏi tối ưu hóa
Có thể bỏ lỡ một số cơ hội xu hướng ngắn hạn.
Cần theo dõi cả điều kiện thời gian và giá cả
Chiến lược này nhằm mục đích đạt được mức nhập cảnh tốt hơn thông qua tối ưu hóa nhập cảnh đơn giản trong khi đảm bảo các xu hướng không bị bỏ lỡ.
/*backtest start: 2023-08-14 00:00:00 end: 2023-09-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("等待一个更好的入场机会", overlay=true) period = input(20,'') maxwait = input(3,'') threshold = input(0.01,'') signal = 0 trend = 0.0 newtrend = 0.0 wait = 0.0 initialentry = 0.0 trend := sma(close,period) signal := nz(signal[1]) if trend > nz(trend[1]) signal := 1 else if trend < nz(trend[1]) signal := -1 wait := nz(wait[1]) initialentry := nz(initialentry[1]) if signal != signal[1] if strategy.position_size > 0 strategy.close('long',comment='trend sell') signal := -1 else if strategy.position_size < 0 strategy.close('short',comment='trend buy') signal := 1 wait := 0 initialentry := close else if signal != 0 and strategy.position_size == 0 wait := wait + 1 // test for better entry if strategy.position_size == 0 if wait >= maxwait if signal > 0 strategy.entry('long',strategy.long, comment='maxtime Long') else if signal < 0 strategy.entry('short',strategy.short, comment='maxtime Short') else if signal > 0 and close < initialentry - threshold strategy.entry('long',strategy.long, comment='delayed Long') else if signal < 0 and close > initialentry + threshold strategy.entry('short',strategy.short, comment='delayed short')