Chiến lược thu thập cộng hưởng ba lần

WT CRSI LSDD
Ngày tạo: 2025-10-09 14:09:21 sửa đổi lần cuối: 2025-10-09 14:09:21
sao chép: 0 Số nhấp chuột: 212
2
tập trung vào
319
Người theo dõi

Chiến lược thu thập cộng hưởng ba lần Chiến lược thu thập cộng hưởng ba lần

Ba chỉ số phải phát tín hiệu cùng một lúc trong 2 đường K, nếu không không nói chuyện

Đây không phải là một chiến lược đa chỉ số thông thường. Sự kết hợp của WaveTrend + Connors RSI + độ lệch hồi phục tuyến tính, chìa khóa nằm trong cơ chế đồng bộ cửa sổ: tất cả các tín hiệu mua phải xuất hiện trong phạm vi 2 K-line, các tín hiệu riêng lẻ được bỏ qua. Thiết kế này lọc trực tiếp 90% tín hiệu giả.

Các chiến lược truyền thống hoặc là đánh giá các chỉ số độc lập dễ gây ra tiếng ồn, hoặc yêu cầu kích hoạt cùng một lúc nhiều cơ hội bị bỏ lỡ. Chiến lược này tìm thấy sự cân bằng: cửa sổ chấp nhận lỗi của dòng K đảm bảo sự liên quan của tín hiệu và tránh yêu cầu đồng bộ quá nghiêm ngặt.

WaveTrend thiết lập đường bán tháo 48, nhạy cảm hơn RSI tiêu chuẩn

WT có chiều dài 10 chu kỳ, đường bán vượt mức 48, đường mua vượt mức 48. Sự kết hợp này mạnh hơn so với RSI truyền thống 3070 và có thể bắt được tín hiệu đảo ngược giá sớm hơn. Điểm mạnh của WT là nó kết hợp vị trí và biến động giá, đáng tin cậy hơn RSI đơn thuần trong các tình huống biến động.

Điều quan trọng là cách tính toán của WT:*WT tương đối ổn định khi thị trường biến động mạnh, tránh được sự biến động của RSI thông thường trong thời gian biến động cao.

Connors RSI xác nhận ba lần 2080

CRSI không phải là RSI thông thường, nó kết hợp RSI giá, RSI giảm liên tiếp và tỷ lệ phần trăm thay đổi giá. Thấp điểm bán tháo 20 mạnh hơn 30 truyền thống, nhưng cơ chế xác minh ba lần của CRSI làm giảm khả năng tín hiệu sai.

RSI dài 6 chu kỳ được thiết lập ngắn hơn để tăng độ nhạy của tín hiệu. Ở cấp độ 15 phút, 6 chu kỳ tương đương với 1,5 giờ nhớ giá, có thể nắm bắt được bán tháo ngắn hạn và không bị tụt hậu quá mức.

Biến độ hồi quy tuyến tính LSDD, 20 chu kỳ nắm bắt xu hướng

LSDD = Giá hiện tại - Phản hồi tuyến tính, khi LSDD đi trên trục 0 cho thấy giá bắt đầu lệch khỏi đường xu hướng giảm. Cài đặt 20 chu kỳ trên biểu đồ 15 phút bao gồm 5 giờ, có thể xác định hiệu quả sự thay đổi xu hướng ngắn hạn.

Điều tinh tế về chỉ số này là nó không đơn giản là theo xu hướng, mà là thước đo sai lệch xu hướng. Khi giá bắt đầu đi ngược lên sau khi giảm liên tục, thường báo hiệu sự khởi đầu của sự phục hồi. Kết hợp với tín hiệu bán tháo của WT và CRSI, tạo thành sự xác nhận kép của “thay đổi xu hướng bán tháo +”.

Chỉ cần làm nhiều đầu, 30% vị trí, gấp đôi kim tự tháp

Chiến lược được thiết kế đơn thuần là đa đầu, mỗi lần mở vị trí 30% vốn, cho phép thêm 1 lần. Cài đặt này phù hợp với xu hướng tăng dài hạn của tiền điện tử, đồng thời quản lý rủi ro thông qua kiểm soát vị trí. Vị trí duy nhất 30% có thể mang lại lợi nhuận đầy đủ và tránh rủi ro quá mức của một giao dịch.

Các điều kiện thoát ra cũng nghiêm ngặt: WT Overbought ((> 48) AND CRSI Overbought ((> 80) AND LSDD Negative, ba điều kiện phải được đáp ứng cùng một lúc. Thiết kế này đảm bảo tính toàn vẹn của giao dịch xu hướng và tránh thoát ra quá sớm.

15 phút BTC phản hồi tối ưu hóa, nhưng cần chú ý đến môi trường thị trường

Chiến lược này hoạt động tốt ở mức 15 phút của BTC, nhưng điều này không có nghĩa là nó có hiệu quả trong tất cả các môi trường thị trường. Trong thị trường biến động ngang, thậm chí xác nhận ba lần có thể tạo ra nhiều tín hiệu giả. Chiến lược này phù hợp nhất với môi trường thị trường có đặc điểm xu hướng rõ ràng.

Lưu ý rủi ro: Lịch sử phản hồi không thể hiện lợi nhuận trong tương lai, thị trường tiền điện tử biến động rất lớn, có nguy cơ mất vốn.

Mã nguồn chiến lược
/*backtest
start: 2024-10-09 00:00:00
end: 2025-10-07 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":500000}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alescha13
// WT + CRSI + Linear Regression Long-only Strategy
// Description: 
// This long-only trading strategy combines WaveTrend (WT), 
// Connors RSI (CRSI), and a Linear Regression Slope (LSDD) trend filter.
// Signals are generated only when all three indicators align within a defined window.
// Exits occur when all indicators turn bearish.
// Backtested on BTC with 15-minute timeframe.

strategy("WT + CRSI + Linear Regression Long-only © alescha13", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30, 
     pyramiding=1, 
     calc_on_every_tick=false, 
     process_orders_on_close=true)

// =====================
// Inputs
// =====================
wtLength        = input.int(10, "WT Length")
wtOversold      = input.int(-48, "WT Oversold Level")
wtOverbought    = input.int(48, "WT Overbought Level")

crsiRSILength   = input.int(6,  "CRSI RSI Length")
crsiOversold    = input.int(20, "CRSI Oversold Level")
crsiOverbought  = input.int(80, "CRSI Overbought Level")

lsddLen         = input.int(20, "Linear Regression Length")

windowSize      = input.int(2, "Window size (bars) for all signals", minval=1)

// =====================
// Helper: CRSI Function
// =====================
updown(s) =>
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1]) + 1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1]) - 1)
    ud

crsiFunc(src, lenrsi) =>
    lenupdown = 2
    lenroc = 100
    rsi = ta.rsi(src, lenrsi)
    updownrsi = ta.rsi(updown(src), lenupdown)
    percentrank = ta.percentrank(ta.roc(src, 1), lenroc)
    math.avg(rsi, updownrsi, percentrank)

// =====================
// WaveTrend (WT) Calculation
// =====================
ap  = (high + low + close) / 3.0
esa = ta.ema(ap, wtLength)
d   = ta.ema(math.abs(ap - esa), wtLength)
ci  = (ap - esa) / (0.015 * d)
wt  = ta.ema(ci, 3)

wtBull = ta.crossover(wt, wtOversold)
wtBear = wt > wtOverbought

// =====================
// CRSI Calculation
// =====================
crsiValue = crsiFunc(close, crsiRSILength)
crsiBull  = crsiValue < crsiOversold
crsiBear  = crsiValue > crsiOverbought

// =====================
// Linear Regression LSDD Calculation
// =====================
slope = ta.linreg(close, lsddLen, 0)
lsdd = close - slope
lsddBull = ta.crossover(lsdd, 0)
lsddBear = lsdd < 0

// =====================
// Window Logic (Synchronize Signals)
// =====================
var int wtBarIndex   = na
var int crsiBarIndex = na
var int lsddBarIndex = na

if wtBull
    wtBarIndex := bar_index
if crsiBull
    crsiBarIndex := bar_index
if lsddBull
    lsddBarIndex := bar_index

buySignal = false
if not na(wtBarIndex) and not na(crsiBarIndex) and not na(lsddBarIndex)
    maxBar = math.max(wtBarIndex, crsiBarIndex, lsddBarIndex)
    minBar = math.min(wtBarIndex, crsiBarIndex, lsddBarIndex)
    if (maxBar - minBar) <= windowSize
        buySignal := true
        wtBarIndex := na
        crsiBarIndex := na
        lsddBarIndex := na

finalLong = buySignal

// =====================
// Exit Logic
// =====================
sellSignal = wtBear and crsiBear and lsddBear

// =====================
// Entries / Exits
// =====================
if finalLong
    strategy.entry("Long", strategy.long, comment="Long Entry")

if sellSignal
    strategy.close("Long", comment="Long Exit")

// =====================
// Background Color for Signals
// =====================
bgcolor(finalLong ? color.new(color.green, 85) : na)
bgcolor(sellSignal ? color.new(color.red, 85) : na)

// =====================
// Plots
// =====================
plot(wt, color=color.new(color.blue, 0), title="WT")
plot(crsiValue, color=color.new(color.purple, 0), title="CRSI")
plot(lsdd, color=color.new(color.orange, 0), title="LSDD")

plotshape(finalLong, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// =====================
// Alerts
// =====================
alertcondition(finalLong, title="Long Alert", message="WT + CRSI + LSDD Long Signal")
alertcondition(sellSignal, title="Exit Alert", message="WT + CRSI + LSDD Exit Signal")