
Strategi ini menggunakan perhitungan rata-rata bergerak dan tingkat perubahan harga, digabungkan dengan garis K dalam periode tertentu, untuk menentukan apakah saat ini sedang dalam tren naik atau tren turun, dan melakukan over atau short sesuai.
Strategi ini pertama-tama menghitung rata-rata bergerak sederhana a dengan panjang l dan tingkat perubahan harga r dengan panjang l. Kemudian menghitung perbedaan antara harga K-line saat ini dan rata-rata bergerak k. Akhirnya, k dihitung sebagai jumlah total garis K-line di s-root masa lalu.
Ketika sum>0 berarti saat ini sedang dalam tren naik, strategi ini akan melakukan lebih banyak. Ketika sum berarti saat ini sedang dalam tren turun, strategi ini akan kosong.
Setelah melakukan lebih banyak shorting, Anda akan terus memegang posisi sampai tren berbalik (sum berubah dari positif menjadi negatif atau dari negatif menjadi positif), dan Anda akan menetas.
Keuntungan terbesar dari strategi ini adalah kemampuan untuk menangkap tren dan cocok untuk perdagangan tren. Secara khusus, ada beberapa keuntungan berikut:
Menggunakan Moving Average untuk menilai arah tren secara keseluruhan, dapat secara efektif menyaring kebisingan pasar dan mengunci tren utama.
Menggunakan indikator tingkat perubahan harga untuk mengukur intensitas momentum, hindari kehilangan momentum.
Dengan mempertimbangkan beberapa garis K dalam periode tertentu, tren dapat diukur dengan lebih akurat dan menghindari individu Ausreißer in die Irre.
Jika tidak ada perubahan tren, maka Anda akan terus memegang posisi dan menikmati keuntungan maksimum dari tren.
Strategi ini memiliki risiko utama sebagai berikut:
Tidak dapat menentukan waktu akhir tren dengan tepat, mungkin berhenti lebih awal atau kehilangan sebagian keuntungan.
Tidak dapat mengontrol secara efektif ukuran kerugian individu, dan dalam kasus yang ekstrim, kerugian bisa lebih besar.
Parameter strategi yang tidak tepat dapat menyebabkan perdagangan yang terlalu sering atau kehilangan beberapa peluang perdagangan.
Untuk jangka panjang, Anda mungkin menghadapi risiko bunga dan jaminan uang tunai.
Untuk mengontrol risiko, Anda dapat mengatur stop loss, hanya berdagang dengan komoditas yang sangat likuid, mengoptimalkan parameter, dan menggunakan leverage secara rasional.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Uji rata-rata bergerak dan tingkat perubahan harga pada panjang yang berbeda untuk menemukan kombinasi parameter yang optimal.
Cobalah indikator lain seperti MACD untuk menilai tren dan meningkatkan akurasi lebih lanjut.
Menambahkan mekanisme manajemen posisi, seperti penutupan sebagian setelah keuntungan, dan mengendalikan kerugian tunggal.
Menggunakan indikator volatilitas untuk mengatur stop loss dinamis, mengurangi risiko ekstremitas.
Mengoptimalkan logis open and close, memfilter penembusan palsu untuk meningkatkan efisiensi transaksi.
Strategi ini memiliki konsep yang jelas dan mudah untuk diterapkan, dengan melacak tren untuk melakukan perdagangan jangka panjang, kontrol penarikan relatif masuk akal, cocok untuk investor yang mencari keuntungan yang stabil. Jika dapat lebih mengoptimalkan mekanisme seperti stop loss dan manajemen posisi, diharapkan untuk mendapatkan keuntungan stabil jangka panjang yang lebih baik.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if sum<0
strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0
//shortCondition = sum<0
//exitshort = sum>0
//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)