
Strategi ini adalah sistem perdagangan bandwidth multi-frame time frame berdasarkan indikator acak (Stochastic Oscillator). Strategi ini menentukan peluang perdagangan dengan menggabungkan sinyal indikator acak dari kerangka waktu saat ini dan kerangka waktu yang lebih tinggi, dan menggunakan stop loss stop loss dinamis untuk mengelola risiko. Strategi ini cocok untuk pasar yang lebih volatil, untuk mendapatkan keuntungan dengan menangkap fluktuasi harga dalam jangka pendek.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Ini adalah sistem perdagangan lengkap yang menggabungkan analisis teknis dan manajemen risiko. Strategi ini memiliki potensi keuntungan yang baik dengan jaminan stabilitas melalui konfirmasi sinyal dan stop loss dinamis dalam beberapa kerangka waktu. Namun, pengguna perlu mengoptimalkan parameter sesuai dengan gaya perdagangan dan lingkungan pasar mereka sendiri, dan selalu menjaga kontrol risiko yang ketat.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Swing Fairas Oil", overlay=true)
// Input parameters
kLength = input(14, title="Stochastic K Length")
dLength = input(3, title="Stochastic D Length")
smoothK = input(3, title="Smooth K")
tfHigher = input.timeframe("30", title="Higher Timeframe")
takeProfit = input(1.7, title="Take Profit Multiplier")
stopLoss = input(1.7, title="Stop Loss Multiplier")
// Calculate Stochastic Oscillator for current timeframe
k = ta.sma(ta.stoch(close, high, low, kLength), smoothK)
d = ta.sma(k, dLength)
// Calculate Stochastic Oscillator for higher timeframe
kHTF = request.security(syminfo.tickerid, tfHigher, ta.sma(ta.stoch(close, high, low, kLength), smoothK))
dHTF = request.security(syminfo.tickerid, tfHigher, ta.sma(kHTF, dLength))
// Buy and sell conditions (confirmation from two timeframes)
buyCondition = ta.crossover(k, d) and k < 20 and kHTF < 20 and kHTF > dHTF
sellCondition = ta.crossunder(k, d) and k > 80 and kHTF > 80 and kHTF < dHTF
// Define Take Profit and Stop Loss levels
longStopLoss = close * (1 - stopLoss / 100)
longTakeProfit = close * (1 + takeProfit / 100)
shortStopLoss = close * (1 + stopLoss / 100)
shortTakeProfit = close * (1 - takeProfit / 100)
// Execute Trades
if buyCondition
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", limit=longTakeProfit, stop=longStopLoss)
if sellCondition
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss)
// Plot buy/sell signals on candlestick chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal")
// Highlight candles for buy and sell conditions
barcolor(buyCondition ? color.green : sellCondition ? color.red : na)
// Draw Take Profit and Stop Loss levels dynamically with labels
var float tpLevel = na
var float slLevel = na
if buyCondition
tpLevel := longTakeProfit
slLevel := longStopLoss
if sellCondition
tpLevel := shortTakeProfit
slLevel := shortStopLoss