
Đây là một chiến lược giao dịch tự động dựa trên nhận dạng hình dạng giá trên biểu đồ. Chiến lược này chủ yếu để đưa ra quyết định giao dịch bằng cách nhận ra hình dạng hai đáy và hai đỉnh trong thị trường, theo dõi biến động giá bằng cách thiết lập một chu kỳ thời gian cụ thể và tự động thực hiện lệnh giao dịch khi hình dạng phù hợp xuất hiện.
Lập luận cốt lõi của chiến lược là xác định hình thức hai đáy và hai đỉnh trong thị trường thông qua các phương pháp phân tích kỹ thuật. Thực hiện cụ thể bao gồm một số bước quan trọng sau:
Đây là một chiến lược giao dịch tự động được thiết kế hợp lý và thiết thực. Bằng cách xác định chính xác hình thức hai tầng hai tầng trong thị trường, kết hợp với các thiết lập tham số linh hoạt và cơ chế kiểm soát gió tốt, có thể nắm bắt hiệu quả các cơ hội đảo ngược thị trường trong thời gian ngắn. Mặc dù có một số rủi ro, nhưng bằng cách tối ưu hóa và hoàn thiện liên tục, chiến lược này có khả năng trở thành một công cụ giao dịch đáng tin cậy.
/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Double Bottom and Top Hunter", overlay=true)
// Parametreler
length = input.int(100, title="Dönem Uzunluğu", defval=100)
lookback = input.int(100, title="Geriye Dönük Kontrol Süresi", defval=100)
// İkili Dip ve Tepe Bulma
low1 = ta.lowest(low, length)
high1 = ta.highest(high, length)
low2 = ta.valuewhen(low == low1, low, 1)
high2 = ta.valuewhen(high == high1, high, 1)
doubleBottom = (low == low1 and ta.lowest(low, lookback) == low1 and low == low2)
doubleTop = (high == high1 and ta.highest(high, lookback) == high1 and high == high2)
// İşlem Açma Koşulları
longCondition = doubleBottom
shortCondition = doubleTop
// İşlem Kapatma Koşulları
closeLongCondition = ta.highest(high, length) > high1 and low < low1
closeShortCondition = ta.lowest(low, length) < low1 and high > high1
// İşlem Açma
if (longCondition)
strategy.entry("Long", strategy.long, qty=1)
if (shortCondition)
strategy.entry("Short", strategy.short, qty=1)
// İşlem Kapatma
if (closeLongCondition)
strategy.close("Long")
if (closeShortCondition)
strategy.close("Short")
// Grafik Üzerinde Göstergeler ve ZigZag Çizimi
plotshape(series=longCondition, title="İkili Dip Bulundu", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
plotshape(series=shortCondition, title="İkili Tepe Bulundu", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
// var line zigzagLine = na
// if (doubleBottom or doubleTop)
// zigzagLine := line.new(x1=bar_index[1], y1=na, x2=bar_index, y2=doubleBottom ? low : high, color=doubleBottom ? color.green : color.red, width=2)
// Zigzag çizgisini sürekli güncelleme
// line.set_xy1(zigzagLine, bar_index[1], na)
// line.set_xy2(zigzagLine, bar_index, doubleBottom ? low : high)