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:
Đâ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)