Đây là một chiến lược giao dịch tự động dựa trên nhận dạng mô hình biểu đồ. Chiến lược chủ yếu đưa ra quyết định giao dịch bằng cách xác định hình thành đáy kép và đỉnh kép trên thị trường, theo dõi biến động giá trong thời gian cụ thể và tự động thực hiện lệnh giao dịch khi các mô hình đủ điều kiện xuất hiện. Chiến lược sử dụng chỉ số zigzag để hình dung các mô hình giá chính này, giúp các nhà giao dịch hiểu xu hướng thị trường một cách trực quan.
Lý thuyết cốt lõi của chiến lược là xác định các mô hình đáy kép và đỉnh kép thông qua phân tích kỹ thuật.
Đây là một chiến lược giao dịch tự động được thiết kế tốt và thực tế. Thông qua việc xác định chính xác các mô hình đáy và đỉnh kép, kết hợp với các thiết lập tham số linh hoạt và kiểm soát rủi ro toàn diện, nó có hiệu quả nắm bắt các cơ hội đảo ngược thị trường ngắn hạn. Mặc dù có một số rủi ro, thông qua tối ưu hóa và cải tiến liên tục, chiến lược này có tiềm 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)