
Strategi ini memungkinkan pelacakan tren harga cryptocurrency dengan menetapkan titik tinggi dan rendah di mana harga akan pecah. Lakukan plus ketika harga mencapai titik tertinggi, dan kosongkan saat harga mencapai titik terendah, untuk menangkap tren.
Strategi ini terutama menggunakan rata-rata bergerak yang diimbangi untuk menentukan apakah harga mengalami tren naik atau turun yang jelas. Secara khusus, strategi ini akan menghitung harga tertinggi dan terendah dalam periode tertentu, menilai harga yang naik ketika harga transaksi aktual melebihi harga tertinggi yang tercatat, dan melakukan lebih banyak; menilai harga yang turun ketika harga transaksi aktual lebih rendah dari harga terendah yang tercatat, dan melakukan nol.
Harga open position untuk melakukan overdraft ditetapkan melalui parameter ENTRY, dan harga close position ditetapkan melalui parameter EXIT. Periode pengembalian juga dapat diatur melalui parameter. Dengan demikian, kombinasi combo optimal dapat ditemukan dengan menyesuaikan parameter.
Secara khusus, logika utama dari strategi ini adalah:
Melalui siklus logis ini, tren naik dan turun harga dapat ditangkap dan trend dapat dilacak.
Keuntungan terbesar dari strategi ini adalah bahwa dengan penyesuaian parameter, tren harga dapat ditangkap secara otomatis, tanpa perlu menilai arah tren secara manual. Dengan parameter yang tepat, Anda dapat secara otomatis melacak fluktuasi harga cryptocurrency.
Selain itu, strategi ini sangat cocok untuk perdagangan kuantitatif dan dapat dengan mudah mengotomatiskan pesanan. Tidak perlu operasi manual, mengurangi risiko perdagangan emosional dan dapat meningkatkan efisiensi perdagangan secara signifikan.
Akhirnya, strategi ini juga dapat memaksimalkan keuntungan melalui penyesuaian parameter. Dengan menguji parameter ENTRY dan EXIT yang berbeda, parameter optimal dapat ditemukan untuk mencapai keuntungan maksimal.
Risiko terbesar dari strategi ini adalah bahwa pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan yang terlalu sering, meningkatkan biaya perdagangan dan kehilangan titik geser. Jika ENTRY diatur terlalu rendah, dan EXIT diatur terlalu tinggi, sangat mudah untuk menghasilkan sinyal perdagangan palsu.
Selain itu, jika parameter tidak disesuaikan dengan benar, dapat menyebabkan ketidakmampuan untuk menangkap tren harga pada waktu yang tepat, kehilangan peluang perdagangan. Ini memerlukan banyak pengujian ulang untuk menemukan parameter optimal.
Akhirnya, strategi ini terlalu sensitif terhadap kebisingan pasar jangka pendek dan dapat menghasilkan sinyal perdagangan yang salah. Ini perlu dihindari dengan pengaturan yang tepat dari parameter siklus waktu perdagangan.
Strategi ini dapat terus dioptimalkan melalui:
Tambahkan logika stop loss. Dengan demikian, Anda dapat menghentikan dan keluar dari kerugian ketika kerugian meningkat hingga proporsi tertentu, untuk menghindari kerugian yang lebih besar.
Tambahkan filter indikator teknis seperti moving average. Gunakan indikator seperti MA, KDJ untuk menilai tren besar, hindari kebisingan jangka pendek yang membawa terlalu banyak perdagangan.
Logika pengaturan parameter yang dioptimalkan. Anda dapat mengatur mekanisme perubahan adaptif dari parameter ENTRY, EXIT, bukan pengaturan statis, sehingga dapat menyesuaikan parameter sesuai dengan kondisi pasar.
Menggunakan parameter terbaik untuk pelatihan pembelajaran mesin. Dengan banyak pelatihan data historis, mendapatkan pengaturan ENTRY dan EXIT yang optimal untuk lingkungan pasar saat ini.
Strategi ini memungkinkan perdagangan otomatis dengan menangkap tren harga, dengan keuntungan terbesar adalah dapat mengurangi pengaruh emosi manusia pada perdagangan, mengurangi risiko, meningkatkan efisiensi. Selain itu, dapat mencari titik keuntungan optimal dengan penyesuaian parameter.
Risiko utama dari strategi ini adalah parameter yang tidak tepat dan terlalu sensitif terhadap kebisingan pasar. Ini perlu diperbaiki dengan cara-cara seperti stop loss, penyaringan indikator, dan optimasi parameter yang beradaptasi.
Secara keseluruhan, strategi ini adalah strategi pelacakan tren yang sederhana dan efektif, cocok untuk trading kuantitatif dan otomatis. Dengan optimasi berkelanjutan, stabilitas strategi dapat ditingkatkan lebih lanjut.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JstMtlQC
//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")
/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")
/////////////// Backtest Setting
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)
/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)
/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)
/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// SHORT
entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)
/////////////// LONG
exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)
///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
/////////////// LONG
if (entrylong)
strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
strategy.close("LongEntry", when=window())
/////////////// SHORT
if (entryshort)
strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
strategy.close("short", when=window())