Strategi ini adalah sistem perdagangan grid yang menambahkan posisi berdasarkan penurunan harga dan menutup posisi ketika mencapai target keuntungan tetap. Logika inti adalah membeli ketika pasar turun ke persentase yang telah ditetapkan sebelumnya, menutup semua posisi ketika harga bangkit ke keuntungan target, dan menghasilkan pengembalian dengan berulang kali melakukan proses ini. Strategi ini sangat cocok untuk menangkap rebound jangka pendek di pasar osilasi.
Strategi ini menggunakan mekanisme gabungan perdagangan jaringan dan mengambil keuntungan arah:
Ini adalah strategi perdagangan grid yang sederhana secara struktural namun praktis yang membangun posisi dalam batch pada penurunan harga yang telah ditetapkan dan menutup posisi secara seragam saat mencapai target keuntungan. Keuntungan utama strategi terletak pada kepastian eksekusi dan diversifikasi risiko, tetapi pemilihan lingkungan pasar dan optimasi parameter sangat penting selama implementasi. Ada potensi optimasi yang signifikan melalui penambahan stop-loss dinamis dan peningkatan manajemen posisi. Untuk perdagangan langsung, backtesting menyeluruh dan penyesuaian parameter berdasarkan kondisi pasar yang sebenarnya dianjurkan.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Buy Down 5%, Sell at 5% Profit", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1) // Inputs initial_date = input(timestamp("2024-01-01 00:00:00"), title="Initial Purchase Date") profit_target = input.float(5.0, title="Profit Target (%)", minval=0.1) // Target profit percentage rebuy_drop = input.float(5.0, title="Rebuy Drop (%)", minval=0.1) // Drop percentage to rebuy // Variables var float initial_price = na // Initial purchase price var int entries = 0 // Count of entries var float total_profit = 0 // Cumulative profit var bool active_trade = false // Whether an active trade exists // Entry Condition: Buy on or after the initial date if not active_trade initial_price := close strategy.entry("Buy", strategy.long) entries += 1 active_trade := true // Rebuy Condition: Buy if price drops 5% or more from the initial price rebuy_price = initial_price * (1 - rebuy_drop / 100) if active_trade and close <= rebuy_price strategy.entry("Rebuy", strategy.long) entries += 1 // Exit Condition: Sell if the price gives a 5% profit on the initial investment target_price = initial_price * (1 + profit_target / 100) if active_trade and close >= target_price strategy.close_all(comment="Profit Target Hit") active_trade := false total_profit += profit_target // Display information on the chart plotshape(series=close >= target_price, title="Target Hit", style=shape.labelup, location=location.absolute, color=color.green, text="Sell") plotshape(series=close <= rebuy_price, title="Rebuy", style=shape.labeldown, location=location.absolute, color=color.red, text="Rebuy") // Draw statistics on the chart var label stats_label = na if (na(stats_label)) stats_label := label.new(x=bar_index, y=close, text="", style=label.style_none, size=size.small) label.set_xy(stats_label, bar_index, close) label.set_text(stats_label, "Entries: " + str.tostring(entries) + "\nTotal Profit: " + str.tostring(total_profit, "#.##") + "%")