
Strategi ini menggabungkan metode perdagangan terbalik (membeli titik rendah) dengan logika pelacakan tren (hanya ketika harga berada di atas MA200). Strategi ini bertujuan untuk menemukan waktu terbaik untuk mendapatkan keuntungan dari pembelian aset di titik rendah. Harga di atas rata-rata bergerak jangka panjang menunjukkan peningkatan kemungkinan untuk mendapatkan keuntungan dari membeli aset dengan harga jangka pendek yang lemah.
Strategi ini menentukan apakah harga berada pada titik rendah relatif dengan menghitung persentase perubahan keseluruhan harga selama periode pengembalian. Harga dianggap berada pada titik rendah ketika persentase perubahan keseluruhan kurang dari 3%. Selain itu, strategi ini juga menetapkan rata-rata bergerak sederhana 200 hari sebagai indikator untuk menilai tren.
Strategi ini menggabungkan keunggulan perdagangan tren dan perdagangan terbalik. Di satu sisi, menggunakan jangka panjang bergerak rata-rata untuk menilai tren, menghindari membeli buta selama penurunan tren. Di sisi lain, terbalik membeli titik rendah juga memungkinkan untuk mendapatkan waktu masuk yang lebih baik dalam penyesuaian jangka pendek. Kombinasi keduanya, baik menjamin keamanan perdagangan dan meningkatkan probabilitas keuntungan.
Risiko terbesar dari strategi ini adalah bahwa harga dapat terus turun setelah sinyal beli dikeluarkan, yang menyebabkan kerugian meluas. Selain itu, jika pasar berada di posisi horizontal jangka panjang, harga tidak dapat menembus moving average, strategi ini juga dapat menyebabkan kegagalan. Untuk mengurangi risiko ini, siklus moving average dapat dipersingkat secara tepat, dan kondisi pembelian dioptimalkan, untuk memastikan ada cukup keamanan margin.
Strategi ini dapat dioptimalkan dalam beberapa hal sebagai berikut: 1) mengoptimalkan siklus rata-rata bergerak, beradaptasi dengan pasar yang berbeda; 2) mengoptimalkan kondisi pembelian, memastikan ada margin yang cukup; 3) meningkatkan strategi stop loss, mengendalikan kerugian; 4) meningkatkan akurasi dalam menentukan tren dan titik rendah dalam kombinasi dengan indikator lain.
Strategi ini secara keseluruhan merupakan strategi yang menggabungkan trend tracking dan reversal trading ideology. Strategi ini menjamin keamanan perdagangan dan meningkatkan probabilitas keuntungan. Strategi ini memiliki nilai operasional yang kuat.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)
//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)
//Percent change
inp_lkb = input(1, title='Lookback Period')
perc_change(lkb) =>
overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100
// Call the function
overall = perc_change(inp_lkb)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA)
strategy.close(id="long", when = window() and overall>1)
bgcolor(color = showDate and window() ? color.gray : na, transp = 90)
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)