
Chiến lược đảo ngược hai chiều là một chiến lược giao dịch Bitcoin đơn giản để đặt lệnh mua và mất vào ngày hôm đó dựa trên phạm vi giao dịch của ngày hôm trước. Ý tưởng cốt lõi của chiến lược này là đặt lệnh mua và mất gần mức cao nếu giá mở cửa ngày hôm đó tăng so với giá đóng cửa ngày trước; đặt lệnh mua và mất gần mức thấp nếu giá mở cửa ngày hôm đó giảm so với giá đóng cửa ngày trước.
Chiến lược này đầu tiên tính toán phạm vi giao dịch của ngày hôm trước, tức là giá cao nhất trừ giá thấp nhất. Sau đó, sau khi mở cửa trong ngày, đánh giá xem giá có tăng so với giá đóng cửa ngày trước hay không, nếu tăng, giá mua dừng lỗ được đặt là giá mở cửa cộng với phạm vi giao dịch của ngày hôm trước gấp 0,6 lần; nếu giảm, giá mua dừng lỗ được đặt là giá mở cửa cộng với phạm vi giao dịch của ngày hôm trước gấp 1,8 lần.
Cụ thể, chiến lược bao gồm hai quy tắc nhập cảnh:
Nếu giá mở cửa ngày hôm đó cao hơn giá đóng cửa ngày trước ((longCond1 được đáp ứng) và trong cửa sổ thời gian đo lường lại ((window (() được đáp ứng), hãy mua ((strategy.long1)) trong giá mở cửa cộng với 0.6 lần phạm vi ngày trước.
Nếu giá mở cửa hôm đó thấp hơn giá đóng cửa ngày trước ((longCond2 được đáp ứng) và trong cửa sổ thời gian đo lường lại, hãy mua lệnh dừng lỗ với giá mở cửa cộng với 1,8 lần phạm vi ngày trước ((strategy.long2) ).
Chiến lược này sẽ mở nhiều vị trí sau khi kích hoạt hai lệnh dừng trên, sau đó tháo dỡ các vị trí bằng cách sử dụng strategy.close_all () trước khi đóng cửa trong ngày.
Chiến lược đảo ngược hai chiều có một số lợi thế:
Chiến lược này tính đến cả hai tình huống tăng và giảm giá cùng một lúc, có thể nắm bắt các tình huống đảo ngược đột phá theo nhiều hướng khác nhau.
Có thể kiểm soát rủi ro, có bảo vệ dừng lỗ. Chiến lược đặt giá dừng lỗ trước, có thể kiểm soát hiệu quả mức tổn thất tối đa cho một giao dịch.
Xóa hàng ngày, tránh rủi ro qua đêm. Chiến lược là tháo lỗ trước khi đóng cửa trong ngày, không giữ vị trí qua đêm, có thể giảm nguy cơ biến động lớn qua đêm.
Tần suất giao dịch cao, phù hợp với hoạt động ngắn. Chỉ giữ một ngày giao dịch mỗi ngày, có thể đảm bảo tần suất giao dịch cao.
Chiến lược của chúng tôi rất đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
Tuy nhiên, chiến lược đảo ngược hai chiều cũng có một số rủi ro cần lưu ý:
Lựa chọn khoảng cách ngăn chặn không đúng có thể dẫn đến lỗ hổng bị đâm. Nếu thiết lập khoảng cách ngăn chặn quá nhỏ, trong trường hợp cực đoan có thể bị phá vỡ trực tiếp và gây thiệt hại.
Tần suất giao dịch quá cao có thể gây áp lực chi phí giao dịch. Các giao dịch tần suất cao mở kho hàng ngày có thể tích lũy nhiều phí xử lý.
Dễ bị dừng khi có xu hướng chấn động lớn. Dễ bị kích hoạt, do đó gây ra thiệt hại.
Không thể tiếp tục nắm bắt xu hướng. Chiến lược này phù hợp hơn với thị trường đảo ngược, không thể tiếp tục nắm bắt lợi nhuận của xu hướng sau khi phá vỡ xu hướng.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa khoảng cách dừng. Bạn có thể thử nghiệm các vị trí dừng khác nhau để tìm điểm dừng tối ưu. Bạn cũng có thể điều chỉnh khoảng cách dừng theo mức độ biến động của thị trường.
Thêm bộ lọc xu hướng. Bạn có thể đánh giá hướng của xu hướng ở cấp độ lớn trước khi tham gia, tránh giao dịch ngược.
Tối ưu hóa quy tắc mở vị trí. Bạn có thể xem xét thêm phán đoán hình dạng đồ họa theo thời gian trước khi đột phá, hoặc tăng phán đoán logic năng lượng lượng để tăng độ chính xác mở vị trí.
Tăng khả năng tối ưu hóa vị thế. Bạn có thể thử nghiệm thêm lệnh dừng di động hoặc theo dõi xu hướng EXIT để kiếm được lợi nhuận liên tục.
Kiểm tra các giống giao dịch khác nhau. Chiến lược này có thể phù hợp hơn với các giống có biến động lớn, bạn có thể kiểm tra dữ liệu của các giống khác nhau để tìm giống phù hợp nhất.
Kết hợp với công nghệ học máy. Bạn có thể xem xét sử dụng học máy để tối ưu hóa các tham số như khoảng cách dừng lỗ, quy tắc mở kho.
Chiến lược đảo ngược hai chiều nói chung là một chiến lược ngắn hạn rất đơn giản và thực tế. Nó phù hợp với tình huống giá tăng và giảm cùng một lúc, có thể nắm bắt hiệu quả cơ hội đảo ngược. Tuy nhiên, chiến lược này cũng có một số rủi ro, cần phải tối ưu hóa khoảng cách dừng lỗ, quy tắc mở vị trí để giảm rủi ro và tăng sự ổn định của chiến lược. Nếu có thể nắm bắt các điểm quan trọng để tối ưu hóa, chiến lược này có thể trở thành một công cụ giao dịch ngắn hạn rất thực tế.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)
// X001TK R1 strategy
//
//
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
//
//
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]
strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)
// === /STRATEGY ===