Chiến lược khác biệt đã được xác nhận

Tác giả:ChaoZhang, Ngày: 2024-01-15 15:19:56
Tags:

img

Tổng quan

Chiến lược phân kỳ xác nhận sử dụng các tín hiệu phân kỳ kép từ chỉ số RSI và dao động tuyệt vời để xác định các điểm vào đáng tin cậy hơn. Khi giá hình thành mức cao hoặc thấp mới trong khi các chỉ số RSI và AO hình thành sự đảo ngược mức cao hoặc thấp, đó là một tín hiệu phân kỳ. Chiến lược này đòi hỏi sự phân kỳ từ cả hai chỉ số cùng một lúc để lọc ra một số tín hiệu sai và cải thiện hiệu quả nhập cảnh.

Nguyên tắc chiến lược

Chiến lược này đánh giá các điểm mua và bán dựa trên sự khác biệt giữa cường độ tăng và giảm giá và giá trị của các chỉ số RSI và AO.

Sự khác biệt tăng: giá hình thành mức thấp mới trong khi RSI và AO hình thành mức cao mới, tức là giá giảm trong khi RSI và AO tăng, tạo thành tín hiệu chênh lệch tăng.

Sự khác biệt giảm: giá hình thành mức cao mới trong khi RSI và AO hình thành mức thấp mới, tức là giá tăng trong khi RSI và AO giảm, tạo thành tín hiệu chênh lệch giảm.

Chiến lược này yêu cầu cả hai chỉ số đồng thời đáp ứng các tiêu chí phân kỳ để tránh các tín hiệu sai từ phân kỳ sai của một chỉ số duy nhất. Khi tín hiệu phân kỳ được thiết lập, đặt stop loss gần đường ray dưới hoặc trên của Bollinger Bands, cụ thể là ngay trên đường ray dưới hoặc ngay dưới đường ray trên.

Phân tích lợi thế

Chiến lược này có những lợi thế sau:

  1. Việc lọc hai chỉ số làm tăng độ tin cậy của tín hiệu và tránh các tín hiệu phân kỳ sai từ một chỉ số duy nhất.

  2. Sử dụng các đặc điểm phân kỳ của các chỉ số để xác định điểm mua và bán có khả năng giảm tương đối nhỏ.

  3. Các tín hiệu chênh lệch có tính bền vững tốt và tiềm năng lợi nhuận lớn hơn.

  4. Thiết lập dừng lỗ gần hỗ trợ hoặc kháng cự chính làm giảm khả năng mất mát lớn cá nhân.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Các điều kiện lọc hai lần ít được đáp ứng thường xuyên hơn, có thể bỏ lỡ một số cơ hội thương mại.

  2. Sự khác biệt không phải là tín hiệu đáng tin cậy 100% và có thể xảy ra tổn thất trong một số tình huống riêng lẻ.

  3. Các thiết lập tham số không chính xác cho Bollinger Bands có thể dẫn đến stop loss quá lỏng lẻo hoặc quá chặt chẽ.

Hướng dẫn tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo nhiều cách:

  1. Điều chỉnh các tham số chu kỳ để đánh giá sự phân kỳ để tối ưu hóa các tham số cho tín hiệu phân kỳ.

  2. Kiểm tra các phương pháp dừng lỗ khác nhau như dừng lại sau hoặc dừng lỗ động.

  3. Tăng độ lọc theo các chỉ số khác như khối lượng giao dịch để tiếp tục cải thiện độ tin cậy tín hiệu.

  4. Xem xét toàn diện xu hướng, hỗ trợ / kháng cự và các yếu tố khác để xác định chất lượng của tín hiệu phân kỳ.

Tóm lại

Chiến lược phân kỳ xác nhận xác định các điểm đầu vào thông qua các tín hiệu phân kỳ kép của RSI và AO. Cơ chế lọc kép có hiệu quả làm giảm các tín hiệu sai và tăng lợi nhuận. Chiến lược cũng đặt dừng lỗ ở các mức chính để kiểm soát rủi ro, với các đặc điểm rủi ro-lợi nhuận tốt. Bằng cách tối ưu hóa tham số, tăng lọc tín hiệu, v.v., sự ổn định và hiệu ứng giao dịch của chiến lược có thể được tăng thêm.


/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //

src = close

// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level",  defval=70)
os = input(title="Oversold Level",  defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods


//Awesome//

AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)

// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)


// END SETUP //

////////////////////////
// BULLISH DIVERGENCE //
////////////////////////

// define lower low in price //

srcLL = src > lowest(src,x) and  lowest(src,x)<lowest(src,z)[x]

// define higher low in rsi //

rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os

// define higher low in AO //


aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0



BullishDiv = srcLL and rsiHL and aoHL


////////////////////////
// BEARISH DIVERGENCE //
////////////////////////

// define higher high in price //

srcHH = src < highest(src,x) and  highest(src,x)>highest(src,z)[x]

// define lower high in RSI //

rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob

// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0

BearishDiv = srcHH and rsiLH and aoLH


basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev



if (BullishDiv)
    strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
    strategy.cancel(id="DivLE")
    
if (crossover(close, lower))
    strategy.close("DivSE")
    
if (crossunder(close, upper))
    strategy.close("DivLE")

if (BearishDiv)
    strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
    strategy.cancel(id="DivSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Thêm nữa