Chiến lược theo xu hướng dựa trên chỉ báo WaveTrend

EMA SMA HLCC3 ESA
Ngày tạo: 2024-04-28 13:56:27 sửa đổi lần cuối: 2024-04-28 13:56:27
sao chép: 1 Số nhấp chuột: 1517
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng dựa trên chỉ báo WaveTrend

Tổng quan

Chiến lược WaveTrend Cross LazyBear là một chiến lược giao dịch dựa trên chỉ số WaveTrend. Chiến lược này sử dụng hai đường chỉ số WaveTrend có chu kỳ khác nhau, tạo ra tín hiệu mua khi đường chỉ số WaveTrend có chu kỳ nhanh hơn đi qua đường chỉ số WaveTrend có chu kỳ chậm hơn và tạo ra tín hiệu bán khi đường chỉ số WaveTrend có chu kỳ nhanh hơn đi qua đường chỉ số WaveTrend có chu kỳ chậm hơn.

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

Cốt lõi của chiến lược này là chỉ số WaveTrend, được tính bằng các bước sau:

  1. Tính toán giá điển hình ((AP), tương đương với giá cao nhất, giá thấp nhất và giá đóng cửa.
  2. Tính toán chỉ số di chuyển trung bình của AP ((ESA), với chu kỳ là n1。
  3. Tính toán trung bình di chuyển chỉ số d của giá trị tuyệt đối của chênh lệch giữa AP và ESA, với chu kỳ n1。
  4. Tính toán chỉ số CI, tương đương với ((AP - ESA) / (0.015 * d) ◦
  5. Tính toán chỉ số di chuyển trung bình TCI của CI, với chu kỳ n2, để có được chỉ số WaveTrend.

Chiến lược này sử dụng hai chu kỳ khác nhau (WT1 và WT2 theo mặc định 10 và 21) của đường chỉ số WaveTrend. Khi WT1 đi qua WT2, nó tạo ra tín hiệu mua; khi WT1 đi qua WT2, nó tạo ra tín hiệu bán. Ngoài ra, chiến lược này cũng thiết lập 4 mức phán đoán phụ trợ: mức mua quá mức 1, mức mua quá mức 2, mức bán quá mức 1 và mức bán quá mức 2, để hỗ trợ phán đoán tình trạng thị trường.

Lợi thế chiến lược

  1. Chỉ số WaveTrend kết hợp các tính năng của động lực và biến động, có thể nắm bắt được xu hướng thị trường tốt hơn.
  2. Chỉ số WaveTrend có chu kỳ kép có thể lọc một số tín hiệu nhiễu hiệu quả.
  3. Cài đặt mức OverBuy và OverSell có thể ngăn chặn một phần chiến lược giao dịch thường xuyên khi thị trường có biến động lớn.
  4. Chiến lược này có logic rõ ràng, dễ hiểu và dễ thực hiện.

Rủi ro chiến lược

  1. Chiến lược này có thể gây ra nhiều tín hiệu giả trong một thành phố bị chấn động.
  2. Lựa chọn tham số có ảnh hưởng lớn đến hiệu suất của chiến lược, và các tham số khác nhau có thể dẫn đến sự khác biệt lớn trong hiệu suất của chiến lược.
  3. Chiến lược này không tính đến việc kiểm soát rủi ro, và trong trường hợp cực đoan, có thể có sự rút lui lớn hơn.

Hướng tối ưu hóa chiến lược

  1. Có thể xem xét thêm các điều kiện lọc xu hướng, chẳng hạn như hướng của đường trung bình dài hạn, để giảm tín hiệu giả trong thị trường rung động.
  2. Các thiết lập có thể được tối ưu hóa ở mức độ mua quá mức, cho phép nó thích ứng động hơn với các tình trạng thị trường khác nhau.
  3. Có thể thêm các cơ chế dừng và dừng để kiểm soát rủi ro của một giao dịch.
  4. Bạn có thể tìm kiếm sự kết hợp tham số tốt nhất bằng cách tối ưu hóa tham số.

Tóm tắt

Chiến lược WaveTrend Cross LazyBear là một chiến lược theo dõi xu hướng dựa trên chỉ số WaveTrend, thông qua thiết kế chỉ số của hai chu kỳ và phán đoán trợ giúp về mức độ mua bán quá mức, đồng thời cũng có một số kiểm soát rủi ro trong khi nắm bắt xu hướng. Tuy nhiên, chiến lược này có thể có nhiều tín hiệu giả trong thị trường rung động và thiếu các biện pháp quản lý rủi ro nghiêm ngặt, cần được tối ưu hóa và cải thiện hơn nữa trong ứng dụng thực tế.

Mã nguồn chiến lược
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © burakaydingr

//@version=5
strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true)

// Kullanıcı girişleri
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-60, title="Over Sold Level 1")
osLevel2 = input(-53, title="Over Sold Level 2")

// Temel hesaplamalar
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// WaveTrend göstergeleri
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Al ve Sat Sinyalleri
buySignal = ta.crossover(wt1, wt2)
sellSignal = ta.crossunder(wt1, wt2)

// Alım ve Satım pozisyonları
if (buySignal)
    if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat
        strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2")

if (sellSignal)
    if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat
        strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2")

// Renkler ve diğer görseller
plot(0, color=color.new(color.gray, 0), title="Zero Level")
plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1")
plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1")
plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2")
plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2")

plot(wt1, color=color.new(color.red, 0), title="WT1")
plot(wt2, color=color.new(color.blue, 0), title="WT2")
plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area")

// İşaretler
plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal")
plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")