Chiến lược này là một hệ thống giao dịch xu hướng dựa trên các mức khôi phục Fibonacci và các mô hình nến. Nó hoạt động trên nhiều khung thời gian, kết hợp các nguyên tắc phân tích kỹ thuật và quản lý rủi ro. Chiến lược chủ yếu tìm kiếm các cơ hội giao dịch bằng cách xác định các mức khôi phục Fibonacci chính (0.618 và 0.786) trong khi sử dụng các mục tiêu dừng lỗ và lợi nhuận để quản lý rủi ro.
Logic cốt lõi của chiến lược dựa trên một số yếu tố chính: 1. Lựa chọn khung thời gian: Chiến lược có thể hoạt động trên nhiều khung thời gian bao gồm 4 giờ, hàng ngày, hàng tuần và hàng tháng để phù hợp với các phong cách giao dịch khác nhau. 2. Tính toán mức Fibonacci: Sử dụng giá cao và thấp 50 giai đoạn để tính toán hai mức khôi phục chính ở 0,618 và 0,786. 3. Sản xuất tín hiệu đầu vào: Hệ thống tạo ra tín hiệu dài hoặc ngắn khi giá đóng phá vỡ mức Fibonacci trong điều kiện cụ thể. 4. Quản lý rủi ro: Chiến lược sử dụng tỷ lệ dừng lỗ cố định và xác định mục tiêu lợi nhuận thông qua tỷ lệ rủi ro-lợi nhuận đã được đặt trước.
Đây là một chiến lược theo xu hướng có cấu trúc tốt cung cấp cho các nhà giao dịch một cách tiếp cận giao dịch có hệ thống bằng cách kết hợp việc khôi phục lại Fibonacci, các mô hình nến và các nguyên tắc quản lý rủi ro. Mặc dù có một số rủi ro nhất định, tính ổn định và độ tin cậy của chiến lược có thể được tăng thêm thông qua các hướng tối ưu hóa được đề xuất. Bản chất nhiều khung thời gian và các tham số tùy chỉnh của chiến lược làm cho nó phù hợp với các loại trader khác nhau.
/*backtest start: 2024-12-03 00:00:00 end: 2024-12-10 00:00:00 period: 2m basePeriod: 2m 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/ // © jontucklogic7467 //@version=5 strategy("Fibonacci Swing Trading Bot", overlay=true) // Input parameters fiboLevel1 = input.float(0.618, title="Fibonacci Retracement Level 1") fiboLevel2 = input.float(0.786, title="Fibonacci Retracement Level 2") riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio") stopLossPerc = input.float(1.0, title="Stop Loss Percentage") / 100 // Timeframe selection useTimeframe = input.timeframe("240", title="Timeframe for Analysis", options=["240", "D", "W", "M"]) // Request data from selected timeframe highTF = request.security(syminfo.tickerid, useTimeframe, high) lowTF = request.security(syminfo.tickerid, useTimeframe, low) // Swing high and low calculation over the last 50 bars in the selected timeframe highestHigh = ta.highest(highTF, 50) lowestLow = ta.lowest(lowTF, 50) // Fibonacci retracement levels fib618 = highestHigh - (highestHigh - lowestLow) * fiboLevel1 fib786 = highestHigh - (highestHigh - lowestLow) * fiboLevel2 // Plot Fibonacci levels // line.new(bar_index[1], fib618, bar_index, fib618, color=color.red, width=2, style=line.style_dashed) // line.new(bar_index[1], fib786, bar_index, fib786, color=color.orange, width=2, style=line.style_dashed) // Entry signals based on candlestick patterns and Fibonacci levels bullishCandle = close > open and close > fib618 and close < highestHigh bearishCandle = close < open and close < fib786 and close > lowestLow // Stop loss and take profit calculation stopLoss = bullishCandle ? close * (1 - stopLossPerc) : close * (1 + stopLossPerc) takeProfit = bullishCandle ? close + (close - stopLoss) * riskRewardRatio : close - (stopLoss - close) * riskRewardRatio // Plot buy and sell signals if bullishCandle strategy.entry("Buy", strategy.long) strategy.exit("Take Profit", "Buy", limit=takeProfit, stop=stopLoss) if bearishCandle strategy.entry("Sell", strategy.short) strategy.exit("Take Profit", "Sell", limit=takeProfit, stop=stopLoss)