
Chiến lược giao dịch tự điều chỉnh hai chiều là một chiến lược định lượng dựa trên mối quan hệ giữa giá mở và giá đóng của cổ phiếu để đưa ra phán đoán và hành động giao dịch. Chiến lược này sẽ thực hiện nhiều hoặc ít hoạt động nếu đáp ứng các điều kiện tham số được đặt. Đồng thời, nó có cơ chế thoát tự điều chỉnh, có thể quyết định khi nào rút khỏi vị trí hiện tại dựa trên sự thay đổi của giá mở và đóng gần đây nhất.
Lý thuyết cốt lõi của chiến lược này là dựa trên mối quan hệ giữa giá mở và giá đóng để xác định hướng. Cụ thể, nếu giá đóng lớn hơn giá mở so với giá đóng so với giá đóng Val1, sẽ tạo ra nhiều tín hiệu. Nếu giá mở lớn hơn giá đóng so với giá đóng so với giá đóng Val1, sẽ tạo ra tín hiệu đóng. Sau khi vào vị trí, chiến lược sẽ tiếp tục theo dõi sự thay đổi giá.
Từ thực hiện mã, chiến lược đầu tiên xác định các biểu thức điều kiện cho các vị trí dài và ngắn, sau đó tham gia đơn lẻ khi phù hợp với logic xây dựng vị trí. Sau đó, nó sẽ liên tục kiểm tra xem điều kiện thoát đã được kích hoạt hay không, khi điều kiện thoát được đáp ứng, tức là thực hiện các hoạt động thanh toán. Vì vậy, chiến lược giám sát thay đổi thị trường trong thời gian thực, có khả năng thích ứng và linh hoạt.
Chiến lược giao dịch tự điều chỉnh hai chiều có một số lợi thế:
Mặc dù chiến lược này có một số lợi thế, nhưng nó cũng có những rủi ro:
Những rủi ro này cần được chú ý chặt chẽ trong quá trình thực tế, điều chỉnh tham số hoặc tối ưu hóa thuật toán kịp thời.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Bằng cách tối ưu hóa các thuật toán và mô hình, bạn có thể cải thiện sự ổn định và lợi nhuận của chiến lược tổng thể.
Chiến lược giao dịch tự thích ứng hai chiều kết hợp hai cơ chế phán đoán xu hướng và thoát tự thích ứng, có thể kiểm soát rủi ro hiệu quả, nguyên tắc đơn giản và tham số linh hoạt làm cho chiến lược dễ hiểu và mở rộng, là một chiến lược định lượng đáng được đề xuất và nghiên cứu sâu.
/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true, calc_on_order_fills=true) // Repaint?
// strategy("Repaint in version 3", overlay=true, calc_on_every_tick=true) // Correct
val1 = input(123)
val2 = input(234)
from_year=input(2018, minval=2000, maxval=2020)
from_month=input(6, minval=1, maxval=12)
from_day=input(1, minval=1, maxval=31)
to_year=input(2019, minval=2007, maxval=2020)
to_month=input(12, minval=1, maxval=12)
to_day=input(31, minval=1, maxval=31)
long = (close-open) > val1
short = (open-close) > val1
exitLong = (open-close) > val2
exitShort = (close-open) > val2
term = true
strategy.entry("LONG", strategy.long, when=long and term)
strategy.close("LONG", when = exitLong and not short and term)
strategy.entry("SHORT", strategy.short, when=short and term)
strategy.close("SHORT", when = exitShort and not long and term)