Strategi ini melacak tren harga mata uang kripto dengan menetapkan harga tinggi dan rendah.
Strategi ini terutama menggunakan metode rata-rata bergerak tertimbang untuk menentukan apakah ada tren naik atau turun yang jelas. Secara khusus, ini akan mencatat harga tertinggi dan terendah selama periode tertentu. Ketika harga perdagangan aktual melebihi harga tertinggi yang tercatat, dinilai bahwa tren naik telah terjadi, dan itu akan panjang. Ketika harga perdagangan aktual lebih rendah dari harga terendah yang tercatat, dinilai bahwa tren turun telah terjadi, dan itu akan pendek.
Harga pembukaan untuk panjang dan pendek ditetapkan melalui parameter input
Secara khusus, logika utama dari strategi ini adalah:
Melalui loop logika ini, dapat menangkap tren harga naik dan turun dan mencapai tren berikut.
Keuntungan terbesar dari strategi ini adalah bahwa dengan menyesuaikan parameter, ia dapat secara otomatis menangkap tren harga tanpa perlu penilaian manual arah tren. Selama parameter ditetapkan dengan tepat, ia dapat secara otomatis melacak fluktuasi harga cryptocurrency.
Selain itu, strategi ini sangat cocok untuk perdagangan kuantitatif dan dapat dengan mudah mencapai penempatan pesanan otomatis. Tanpa operasi manual, hal ini mengurangi risiko perdagangan emosional dan sangat meningkatkan efisiensi perdagangan.
Akhirnya, strategi ini juga dapat memaksimalkan pengembalian dengan menyesuaikan parameter. Dengan menguji parameter ENTRY dan EXIT yang berbeda, parameter optimal dapat ditemukan untuk memaksimalkan pengembalian.
Risiko terbesar dari strategi ini adalah bahwa pengaturan parameter yang tidak tepat dapat menyebabkan perdagangan yang terlalu sering, meningkatkan biaya perdagangan dan kerugian slippage.
Selain itu, penyesuaian parameter yang tidak tepat juga dapat menyebabkan kegagalan untuk menangkap tren harga tepat waktu, kehilangan peluang perdagangan.
Akhirnya, strategi ini terlalu sensitif terhadap kebisingan pasar jangka pendek, yang dapat menghasilkan sinyal perdagangan yang salah.
Aspek berikut dapat dioptimalkan lebih lanjut untuk strategi ini:
Tambahkan logika stop loss. Ini memungkinkan stop loss ketika kerugian melebihi persentase tertentu untuk menghindari kerugian yang lebih besar.
Tambahkan filter indikator teknis seperti moving average, KDJ untuk menilai tren keseluruhan untuk menghindari terlalu banyak perdagangan karena kebisingan jangka pendek.
Mengoptimalkan logika pengaturan parameter. Mekanisme perubahan adaptif dapat diatur untuk parameter ENTRY dan EXIT daripada pengaturan statis sehingga mereka dapat menyesuaikan berdasarkan kondisi pasar.
Gunakan pembelajaran mesin untuk melatih parameter optimal. Dapatkan pengaturan ENTRY dan EXIT yang optimal untuk lingkungan pasar saat ini melalui pelatihan data historis yang besar.
Keuntungan terbesar dari strategi ini adalah bahwa dengan menangkap tren harga, ia mencapai perdagangan otomatis, yang dapat mengurangi dampak emosi manusia pada perdagangan, mengurangi risiko, dan meningkatkan efisiensi.
Risiko utama dari strategi ini adalah pengaturan parameter yang tidak tepat dan sensitivitas berlebihan terhadap kebisingan pasar. hal ini perlu ditingkatkan melalui stop loss, filter indikator, optimasi parameter adaptif dan banyak lagi.
Secara keseluruhan, ini adalah tren yang sederhana dan efektif mengikuti strategi yang cocok untuk perdagangan kuantitatif dan otomatis.
/*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())