
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.
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:
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.
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ế.
/*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")