
Chiến lược này là một hệ thống giao dịch động lực hai chu kỳ thời gian dựa trên các chỉ số ngẫu nhiên (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 của các chỉ số ngẫu nhiên trên các chu kỳ thời gian khác nhau, đồng thời kết hợp nguyên tắc động lực và phương pháp theo dõi xu hướng, cho phép đánh giá chính xác hơn về xu hướng thị trường và nắm bắt thời gian giao dịch.
Logic cốt lõi của chiến lược này 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, logic rõ ràng, để nắm bắt cơ hội thị trường thông qua phân tích chỉ số ngẫu nhiên với thời gian hai lần. Ưu điểm của chiến lược này là cơ chế xác nhận nhiều lần và kiểm soát rủi ro tốt, nhưng cũng cần lưu ý đến các rủi ro như đột phá giả và nhạy cảm của tham số.
/*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")