Chiến lược này là một hệ thống giao dịch theo xu hướng tiên tiến tích hợp các chỉ số G-Channel, RSI và MACD. Nó xác định các cơ hội giao dịch có khả năng cao bằng cách tính toán động các vùng hỗ trợ và kháng cự trong khi kết hợp các chỉ số động lực.
RSI là một chỉ số thị trường được sử dụng để xác định giá trị của thị trường. Trong khi đó, chỉ số G-Channel cũng được sử dụng để xác định giá cả của thị trường.
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua việc sử dụng toàn diện nhiều chỉ số kỹ thuật. Ưu điểm cốt lõi của nó nằm trong cơ chế xác nhận tín hiệu đa chiều và hệ thống quản lý rủi ro toàn diện. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược cho thấy hứa hẹn trong việc duy trì hiệu suất ổn định trên các môi trường thị trường khác nhau. Các nhà giao dịch được khuyên nên kiểm tra kỹ lưỡng các kết hợp tham số khác nhau và thực hiện điều chỉnh thích hợp dựa trên các đặc điểm thị trường cụ thể trước khi giao dịch trực tiếp.
/*backtest start: 2024-11-19 00:00:00 end: 2024-12-18 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("VinSpace Optimized Strategy", shorttitle="VinSpace Magic", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Input Parameters length = input.int(100, title="Length") src = input(close, title="Source") stop_loss_pct = input.float(1, title="Stop Loss (%)") / 100 take_profit_pct = input.float(3, title="Take Profit (%)") / 100 rsi_length = input.int(14, title="RSI Length") rsi_overbought = input.int(70, title="RSI Overbought") rsi_oversold = input.int(30, title="RSI Oversold") macd_short = input.int(12, title="MACD Short Length") macd_long = input.int(26, title="MACD Long Length") macd_signal = input.int(9, title="MACD Signal Length") // ---- G-Channel Calculations ---- var float a = na var float b = na a := math.max(src, na(a[1]) ? src : a[1]) - (na(a[1]) ? 0 : (a[1] - b[1]) / length) b := math.min(src, na(b[1]) ? src : b[1]) + (na(a[1]) ? 0 : (a[1] - b[1]) / length) avg = (a + b) / 2 // ---- RSI Calculation ---- rsi = ta.rsi(src, rsi_length) // ---- MACD Calculation ---- [macdLine, signalLine, _] = ta.macd(src, macd_short, macd_long, macd_signal) macd_hist = macdLine - signalLine // ---- Trend Detection Logic ---- crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.new(color.green, 0) : color.new(color.red, 0) // Plotting the Average p1 = plot(avg, "Average", color=c, linewidth=2) p2 = plot(close, "Close price", color=c, linewidth=1) // Adjusted fill with transparency fill(p1, p2, color=color.new(c, 90)) // ---- Buy and Sell Signals ---- showcross = input(true, title="Show Buy/Sell Labels") plotshape(showcross and bullish and not bullish[1], location=location.belowbar, style=shape.labelup, color=color.green, size=size.small, text="Buy", textcolor=color.white, offset=-1) plotshape(showcross and not bullish and bullish[1], location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white, offset=-1) // ---- Entry and Exit Conditions ---- enterLong = bullish and rsi < rsi_oversold and macd_hist > 0 enterShort = not bullish and rsi > rsi_overbought and macd_hist < 0 // Exit Conditions exitLong = ta.crossunder(close, avg) or rsi > rsi_overbought exitShort = ta.crossover(close, avg) or rsi < rsi_oversold // Position Size (example: 10% of equity) posSize = 1 // Submit Entry Orders if enterLong strategy.entry("EL", strategy.long, qty=posSize) if enterShort strategy.entry("ES", strategy.short, qty=posSize) // Submit Exit Orders if exitLong strategy.close("EL") if exitShort strategy.close("ES") // Set Stop Loss and Take Profit for the trades strategy.exit("Take Profit/Stop Loss Long", from_entry="EL", loss=stop_loss_pct * close, profit=take_profit_pct * close) strategy.exit("Take Profit/Stop Loss Short", from_entry="ES", loss=stop_loss_pct * close, profit=take_profit_pct * close)