Ide utama dari strategi ini adalah untuk menentukan arah panjang dan pendek berdasarkan tren harga mingguan. Dalam uptrend, itu pergi panjang ketika ada pola candlestick bullish. Ini mengambil keuntungan ketika harga naik ke tingkat keuntungan yang telah ditetapkan dan menghentikan kerugian ketika jatuh ke tingkat stop loss yang telah ditetapkan.
Strategi pertama-tama menentukan kondisi untuk menilai tren mingguan:
isUptrend = close > close[1]
isDowntrend = close < close[1]
Jika penutupan saat ini lebih tinggi dari penutupan sebelumnya, itu dinilai sebagai tren naik.
Kemudian sinyal perdagangan intraday didefinisikan:
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
Artinya, penutupan sebelumnya lebih tinggi dari penutupan sebelumnya (candle bullish), dan penutupan sebelumnya lebih tinggi dari penutupan sebelum hari sebelumnya (gap up), dan berada dalam tren naik.
Setelah masuk ke posisi, stop loss diatur ke penutupan sebelumnya dikurangi 1,382 kali hari sebelumnya
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
Take profit ditetapkan pada penutupan sebelumnya ditambah 2 kali perbedaan antara penutupan sebelumnya dan stop loss:
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
Ini mewujudkan strategi stop loss dan profit taking.
Keuntungan dari strategi ini meliputi:
Ada juga beberapa risiko:
Untuk mengendalikan risiko ini, beberapa optimasi dapat dipertimbangkan:
Strategi ini juga dapat dioptimalkan dengan cara berikut:
Secara keseluruhan ini adalah strategi yang cukup praktis, menyoroti perdagangan sesuai tren sambil mengendalikan risiko. Ini dapat berfungsi sebagai strategi perdagangan intraday dasar dan dapat dioptimalkan secara modular untuk pasar dan produk yang berbeda untuk menciptakan portofolio perdagangan yang beragam. Dalam penggunaan aktual, mengendalikan biaya dan menghindari perangkap tetap penting, sehingga menjaga mentalitas yang tepat adalah kuncinya.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true) // Function to get previous day's close and open getPrevDayClose() => request.security(syminfo.tickerid, "D", close[1]) getPrevDayOpen() => request.security(syminfo.tickerid, "D", open[1]) // Determine weekly trend isUptrend = close > close[1] isDowntrend = close < close[1] // Determine daily conditions for buy buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend // Calculate stop loss and take profit stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss) // Strategy logic if (isUptrend) strategy.entry("Buy", strategy.long, when = buyCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit) if (isDowntrend) strategy.entry("Sell", strategy.short) // Plotting the trend on the chart plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar) plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar) // Plotting stop loss and take profit levels on the chart plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross) plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)