
Chiến lược thiết lập cực đảo ngược là một chiến lược sử dụng đường K cực đảo ngược. Nó sẽ được đánh giá dựa trên kích thước thực thể và giá trị trung bình của đường K mới nhất, 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à xảy ra đảo ngược.
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ể của một dòng K mới nhất ((giá mở và giá đóng khác nhau) và kích thước K tổng thể ((giá cao nhất và giá thấp nhất khác nhau).
Sau đó sử dụng phương pháp trung bình phạm vi thực trung bình ((RMA) để tính toán kích thước thực thể trung bình và kích thước K của 20 đường K gần đây nhất.
Khi K-line mới nhất xuất hiện 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 K-line tổng thể cũng lớn hơn kích thước K-line trung bình gấp 2 lần, sẽ tạo ra tín hiệu đa.
Ngược lại, khi dòng K mới nhất giảm và kích thước thực thể cũng đáp ứng các điều kiện trên, sẽ tạo ra tín hiệu tắt.
Định nghĩa là khi đường K cực đảo ngược, sử dụng giá trị trung bình để tạo ra tín hiệu giao dịch.
Những ưu điểm 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 thêm dừng để kiểm soát tổn thất.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược thiết lập cực đoan đảo ngược tạo ra tín hiệu giao dịch khi xảy ra sự đảo ngược bằng cách đánh giá các trường hợp cực đoan của đường K mới nhất. Nó có lợi thế trong việc sử dụng các đặc điểm đường K cực đoan bất thường, nhưng cũng có một số 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)