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: 1. Sử dụng chỉ số Stochastic trên hai khung thời gian: khung thời gian dài hơn cho xác nhận xu hướng tổng thể, khung thời gian ngắn hơn cho việc tạo ra tín hiệu giao dịch cụ thể. 2. Quy tắc tạo tín hiệu thương mại: - Các tín hiệu dài: khi thời gian ngắn %K vượt trên %D từ khu vực bán quá mức (dưới 20), trong khi khung thời gian dài hơn cho thấy xu hướng tăng. - Các tín hiệu ngắn hạn: khi %K ngắn hạn vượt qua dưới %D từ khu vực mua quá mức (cao hơn 80), trong khi khung thời gian dài hơn cho thấy xu hướng giảm. 3. Đặt 14 giai đoạn làm thời gian cơ sở cho chỉ số Stochastic, 3 giai đoạn làm yếu tố làm mịn. 4. Tích hợp cơ chế xác nhận mẫu nến để tăng độ tin cậy tín hiệu.
Đâ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")