Chiến lược thiết lập đảo ngược cực đoan là một chiến lược sử dụng đảo ngược đường K cực đoan. Nó sẽ đánh giá dựa trên kích thước thực thể của đường K gần đây nhất và giá trị trung bình, và tạo ra tín hiệu giao dịch khi kích thước thực thể lớn hơn giá trị trung bình và đảo ngược xảy ra.
Chiến lược này chủ yếu đánh giá kích thước thực thể của dòng K hiện tại và kích thước tổng thể của dòng K.
Nó sẽ ghi lại kích thước thực thể (sự khác biệt giữa mở và đóng) của đường K mới nhất và kích thước tổng thể của đường K (sự khác biệt giữa cao nhất và thấp nhất).
Sau đó, sử dụng Trung bình Di chuyển True Range (RMA) để tính kích thước thực thể trung bình và kích thước đường K của 20 đường K cuối cùng.
Khi đường K mới nhất tăng và kích thước thực thể lớn hơn kích thước thực thể trung bình, và kích thước đường K tổng thể cũng lớn hơn 2 lần kích thước đường K trung bình, một tín hiệu dài được tạo ra.
Ngược lại, khi đường K cuối cùng giảm và kích thước thực thể cũng đáp ứng các điều kiện trên, một tín hiệu ngắn được tạo ra.
Đó là, các tín hiệu giao dịch được tạo ra khi các đường K cực đảo ngược, bằng cách đánh giá với các giá trị trung bình.
Những lợi thế chính của chiến lược này là:
Chiến lược này cũng có một số rủi ro:
Để giảm rủi ro, các tham số có thể được điều chỉnh thích hợp hoặc dừng lỗ có thể được thêm vào các lỗ kiểm soát.
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược thiết lập đảo ngược cực đoan tạo ra tín hiệu giao dịch khi đảo ngược xảy ra bằng cách đánh giá các tình huống cực đoan của đường K mới nhất. Nó có lợi thế sử dụng các tính năng đường K cực đoan đặc biệt, nhưng cũng có một số rủi ro. Hiệu suất chiến lược tốt hơn có thể đạt được thông qua tối ưu hóa tham số và các biện pháp kiểm soát rủi ro.
/*backtest start: 2024-02-13 00:00:00 end: 2024-02-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Extreme Reversal Setup", overlay=true) bodySize = input(defval=0.75) barsBack = input(title="Lookback Period", type=input.integer, defval=20, minval=0) bodyMultiplier = input(title="Bar ATR Multiplier", type=input.float, defval=2.0, minval=0) myBodySize = abs(close - open) averageBody = rma(myBodySize, barsBack) myCandleSize = abs(high - low) averageCandle = rma(myCandleSize, barsBack) signal_long = open[1]-close[1] >= bodySize*(high[1]-low[1]) and high[1]-low[1] > averageCandle*bodyMultiplier and open[1]-close[1] > averageBody and close > open signal_short = close[1]-open[1] >= bodySize*(high[1]-low[1]) and high[1]-low[1] > averageCandle*bodyMultiplier and close[1]-open[1] > averageBody and open > close plotshape(signal_long, "LONG", shape.triangleup, location.belowbar, size=size.normal) plotshape(signal_short, "SHORT", shape.triangledown, location.belowbar, size=size.normal) strategy.entry("LONG", strategy.long, when=signal_long) strategy.entry("SHORT", strategy.short, when=signal_short)