
Ini adalah strategi untuk membuat keputusan perdagangan yang menggunakan tiga indikator supertrend yang digabungkan. Ini dapat menangkap peluang arah yang lebih besar dalam situasi tren.
Strategi ini menggunakan fungsi ta.supertrend() untuk menghitung indikator supertrend dari tiga pengaturan parameter yang berbeda. Untuk menghitung supertrend 3 kali ATR pada hari ke-10, supertrend 1 kali ATR pada hari ke-14, supertrend 2 kali ATR, dan supertrend 3 kali ATR pada hari ke-20 2.5. Untuk menghasilkan sinyal beli ketika harga melewati semua tiga supertrend di atas. Untuk menghasilkan sinyal jual ketika harga melewati semua tiga supertrend di bawah.
Indikator supertrend yang dikombinasikan dengan indikator ATR, dapat secara efektif melacak tren perubahan harga. Strategi supertrend tiga kali lipat, membuat sinyal lebih dapat diandalkan, sehingga mendapatkan keuntungan yang lebih besar dalam situasi tren.
Hal-hal berikut dapat dipertimbangkan untuk mengurangi risiko:
Strategi ini menggunakan tiga overlapping supertrend untuk membuat keputusan dan dapat mengidentifikasi arah tren secara efektif. Ini memiliki kualitas sinyal yang tinggi, parameter yang dapat dioptimalkan, dan sebagainya. Namun, ada risiko tertentu yang memerlukan penyesuaian parameter dan waktu keluar untuk menyesuaikan dengan lingkungan pasar yang berbeda. Secara keseluruhan, strategi ini berkinerja baik dan layak untuk diteliti dan diterapkan lebih lanjut.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Combined Supertrend Strategy - Ajit Prasad', overlay=true)
// Function to calculate Supertrend
supertrendFunc(atrLength, factor) =>
[supertrend, direction] = ta.supertrend(factor, atrLength)
[supertrend, direction]
// Input parameters for the first Supertrend
atrPeriod1 = input(10, 'ATR Length 1')
factor1 = input(3, 'Factor 1')
// Calculate the first Supertrend
[supertrend1, direction1] = supertrendFunc(atrPeriod1, factor1)
// Input parameters for the second Supertrend
atrPeriod2 = input(14, 'ATR Length 2') // Change values as needed
factor2 = input(2, 'Factor 2') // Change values as needed
// Calculate the second Supertrend
[supertrend2, direction2] = supertrendFunc(atrPeriod2, factor2)
// Input parameters for the third Supertrend
atrPeriod3 = input(20, 'ATR Length 3') // Change values as needed
factor3 = input(2.5, 'Factor 3') // Change values as needed
// Calculate the third Supertrend
[supertrend3, direction3] = supertrendFunc(atrPeriod3, factor3)
// Define market opening and closing times
marketOpenHour = 9
marketOpenMinute = 15
marketCloseHour = 15
marketCloseMinute = 30
exitTimeHour = 15
exitTimeMinute = 10
// Fetch historical close values using security function
histClose = request.security(syminfo.tickerid, "D", close)
// Buy condition
buyCondition = close > supertrend1 and close > supertrend2 and close > supertrend3 and close[1] <= supertrend1[1]
// Sell condition
sellCondition = close < supertrend1 and close < supertrend2 and close < supertrend3 and close[1] >= supertrend1[1]
// Exit conditions
buyExitCondition = close < supertrend1[1] or close < supertrend2[1] or close < supertrend3[1]
sellExitCondition = close > supertrend1[1] or close > supertrend2[1] or close > supertrend3[1]
// Execute orders with market timing
if true
// Buy condition without 'and not'
strategy.entry('Buy', strategy.long, when = buyCondition)
// Sell condition without 'and not'
strategy.entry('Sell', strategy.short, when = sellCondition)
// Close conditions
strategy.close('Buy', when = buyExitCondition )
strategy.close('Sell', when = sellExitCondition)
// Close all trades at 3:10 pm IST
if true
strategy.close_all()
// Plot Supertrends
plot(supertrend1, 'Supertrend 1', color=color.new(color.green, 0), style=plot.style_linebr)
plot(supertrend2, 'Supertrend 2', color=color.new(color.red, 0), style=plot.style_linebr)
plot(supertrend3, 'Supertrend 3', color=color.new(color.blue, 0), style=plot.style_linebr)
// Plot labels
plotshape(buyCondition, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.large, text='Buy Signal', textcolor=color.new(color.white, 0))
plotshape(sellCondition, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.large, text='Sell Signal', textcolor=color.new(color.white, 0))