Chiến lược này là một hệ thống giao dịch động lượng hai khung thời gian dựa trên chỉ số Stochastic. Nó xác định các cơ hội giao dịch tiềm năng bằng cách phân tích các tín hiệu chéo Stochastic trên các khung thời gian khác nhau, kết hợp các nguyên tắc động lượng và các phương pháp theo xu hướng để đánh giá xu hướng thị trường chính xác hơn và thời gian giao dịch. Chiến lược cũng kết hợp các cơ chế quản lý rủi ro, bao gồm cài đặt lấy lợi nhuận và dừng lỗ, để quản lý tiền tốt hơn.
Logic cốt lõi dựa trên các yếu tố chính sau:
Đây là một chiến lược giao dịch có cấu trúc tốt với logic rõ ràng, nắm bắt các cơ hội thị trường thông qua phân tích chỉ số Stochastic hai khung thời gian. Sức mạnh của chiến lược nằm trong nhiều cơ chế xác nhận và kiểm soát rủi ro toàn diện, nhưng phải chú ý đến các rủi ro như đột phá sai và độ nhạy của tham số. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược có tiềm năng đạt được kết quả giao dịch tốt hơn.
/*backtest start: 2024-12-04 00:00:00 end: 2024-12-11 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced Stochastic Strategy", overlay=true) // Input untuk Stochastic length = input.int(14, title="Length", minval=1) OverBought = input(80, title="Overbought Level") OverSold = input(20, title="Oversold Level") smoothK = input.int(3, title="Smooth %K") smoothD = input.int(3, title="Smooth %D") // Input untuk Manajemen Risiko tpPerc = input.float(2.0, title="Take Profit (%)", step=0.1) slPerc = input.float(1.0, title="Stop Loss (%)", step=0.1) // Hitung Stochastic k = ta.sma(ta.stoch(close, high, low, length), smoothK) d = ta.sma(k, smoothD) // Logika Sinyal co = ta.crossover(k, d) // %K memotong %D ke atas cu = ta.crossunder(k, d) // %K memotong %D ke bawah longCondition = co and k < OverSold shortCondition = cu and k > OverBought // Harga untuk TP dan SL var float longTP = na var float longSL = na var float shortTP = na var float shortSL = na if (longCondition) longTP := close * (1 + tpPerc / 100) longSL := close * (1 - slPerc / 100) strategy.entry("Buy", strategy.long, comment="StochLE") strategy.exit("Sell Exit", "Buy", limit=longTP, stop=longSL) if (shortCondition) shortTP := close * (1 - tpPerc / 100) shortSL := close * (1 + slPerc / 100) strategy.entry("Sell", strategy.short, comment="StochSE") strategy.exit("Buy Exit", "Sell", limit=shortTP, stop=shortSL) // Plot Stochastic dan Level hline(OverBought, "Overbought", color=color.red, linestyle=hline.style_dotted) hline(OverSold, "Oversold", color=color.green, linestyle=hline.style_dotted) hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted) plot(k, color=color.blue, title="%K") plot(d, color=color.orange, title="%D") // Tambahkan sinyal visual plotshape(longCondition, title="Buy Signal", location=location.belowbar, style=shape.labelup, color=color.new(color.green, 0), text="BUY") plotshape(shortCondition, title="Sell Signal", location=location.abovebar, style=shape.labeldown, color=color.new(color.red, 0), text="SELL")