Nén Động lực trên Chiến lược đảo ngược

Tác giả:ChaoZhang, Ngày: 2023-09-09 23:56:32
Tags:

imgSqueeze Momentum on Reversal Strategy là một chiến lược giao dịch kỹ thuật sử dụng các chỉ số Bollinger Bands (BB) và Keltner Channel (KC) để xác định sự đảo ngược tiềm năng trên thị trường.

Chiến lược này hoạt động bằng cách đầu tiên tính toán các băng tần BB và KC cho chiều dài được chỉ định. Độ dài mặc định là 20 thanh. Các băng tần BB sau đó được nhân với số nhân được chỉ định, đó là 2,0 theo mặc định. Các băng tần KC sau đó được nhân với số nhân được chỉ định, đó là 1,5.

Bước tiếp theo là kiểm tra xem các dải BB và KC có bị ép lại với nhau không. Nếu như vậy, thì chiến lược sẽ đi vào một vị trí dài nếu giá nằm trên dải KC và một vị trí ngắn nếu giá nằm dưới dải KC. Kích thước của vị trí sẽ được xác định bởi sức mạnh đảo ngược được chỉ định, đó là 0,0018 theo mặc định.

Chiến lược sẽ thoát khỏi vị trí khi các băng tần BB và KC mở rộng ra khỏi nhau.

Squeeze Momentum on Reversal Strategy là một chiến lược tương đối đơn giản để thực hiện, nhưng nó có thể có hiệu quả trong việc xác định những sự đảo ngược tiềm năng trên thị trường. Tuy nhiên, điều quan trọng cần nhớ là không có chiến lược giao dịch nào được đảm bảo là có lợi nhuận.

Dưới đây là một lời giải thích chi tiết hơn về các thành phần khác nhau của chiến lược:

Bollinger Bands (BB): Chỉ số BB là một chỉ số biến động sử dụng đường trung bình động và độ lệch chuẩn để tạo ra các dải xung quanh giá. Dải mở rộng khi biến động cao và hẹp khi biến động thấp. Keltner Channel (KC): Chỉ số KC tương tự như chỉ số BB, nhưng nó sử dụng tính toán trung bình động và độ lệch chuẩn khác nhau. Sức mạnh đảo ngược: Sức mạnh đảo ngược là một thông số xác định kích thước của vị trí được thực hiện khi chiến lược tham gia giao dịch. Sức mạnh đảo ngược cao hơn sẽ dẫn đến kích thước vị trí lớn hơn. Squeeze Momentum on Reversal Strategy là một chiến lược linh hoạt có thể được sử dụng trên nhiều khung thời gian và thị trường khác nhau. Tuy nhiên, điều quan trọng cần lưu ý là chiến lược này hiệu quả nhất trong các thị trường xu hướng. Trong các thị trường hỗn loạn, chiến lược có thể tạo ra rất nhiều tín hiệu sai.

Dưới đây là một số mẹo để sử dụng Squeeze Momentum trên chiến lược đảo ngược:

Sử dụng lệnh dừng lỗ để bảo vệ lợi nhuận của bạn. Sử dụng lệnh dừng lỗ để giữ lợi nhuận khi thị trường thuận lợi. Kiểm tra lại chiến lược trên dữ liệu lịch sử trước khi sử dụng nó trong giao dịch trực tiếp. Sử dụng nhiều chỉ số khác để xác nhận các tín hiệu được tạo ra bởi Squeeze Momentum trên Chiến lược đảo ngược. Squeeze Momentum on Reversal Strategy là một công cụ mạnh mẽ có thể được sử dụng để xác định sự đảo ngược tiềm năng trên thị trường. Tuy nhiên, điều quan trọng là sử dụng chiến lược một cách khôn ngoan và hiểu những hạn chế của nó. Bằng cách làm theo các mẹo trên, bạn có thể tăng cơ hội thành công khi sử dụng chiến lược này.


/*backtest
start: 2022-09-02 00:00:00
end: 2023-09-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
// @author Odyssee
// @version=2
//
strategy(shorttitle = "Squeeze MOM", title="Squeeze Momentum on Reversal Strategy", overlay=false)

length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
strength = input(0.0018, title="Reversal Strength")

useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)

// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

highest = highest(high, lengthKC)
lowest = lowest(low, lengthKC)
lastsma = sma(close,lengthKC)

valin = linreg(source  -  avg(avg(highest, lowest), lastsma), lengthKC,0)

bcolor = iff( valin > 0, iff( valin > nz(valin[1]), lime, green), iff( valin < nz(valin[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray 
plot(valin, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)

shortcondition = valin > strength and valin < nz(valin[1]) // line become green
longcondition = valin < (strength*-1) and valin > nz(valin[1]) // line become maroon

if(longcondition)
    strategy.entry("BUY", strategy.long)
if(shortcondition)
    strategy.entry("SELL", strategy.short)


Thêm nữa