Strategi ini menilai hala tuju trend berdasarkan memecahkan paras tertinggi dan terendah berkala. Ia pergi lama apabila harga memecahkan paras tertinggi berkala dan pergi pendek apabila harga memecahkan di bawah paras rendah berkala. Ia tergolong dalam strategi penjejakan trend.
Strategi pertama membaca kitaran yang ditakrifkan pengguna (tiap hari, mingguan, dan lain-lain) dan tempoh melihat kembali. Kemudian ia mendapat harga tertinggi dan terendah untuk tempoh melihat kembali berdasarkan parameter ini. Sebagai contoh, jika ia ditetapkan untuk kitaran harian dan melihat kembali 1 tempoh, ia mengambil harga tertinggi dan terendah untuk hari sebelumnya.
Dalam dagangan sebenar, jika harga penutupan lebih besar daripada atau sama dengan harga terendah dalam tempoh melihat kembali, ia dinilai sebagai terobosan ke atas dan ia pergi panjang.
Dengan menangkap arah trend melalui memecahkan puncak dan terendah berkala, strategi ini tergolong dalam sejenis strategi pengesanan trend.
Kelebihan utama strategi ini ialah:
Menangkap trend besar selepas penyatuan yang kuat dengan menilai arah berdasarkan titik terobosan.
Sederhana dan mudah difahami, sangat sesuai untuk pemula untuk belajar dan menggunakan.
Mudah untuk mengoptimumkan dengan menyesuaikan parameter berkala, boleh digunakan untuk pelbagai jenis.
Boleh menetapkan input terbalik untuk operasi terbalik, memperkayakan penggunaan strategi.
Menggambar tinggi dan rendah berkala untuk membantu pertimbangan dan membentuk pengesahan berbilang.
Terdapat juga beberapa risiko:
Tidak dapat menapis volatiliti sampingan dengan berkesan, kemungkinan pelbagai kesalahan operasi.
Tidak boleh mengawal stop loss, tahap tertentu risiko kerugian wujud.
Sensitif terhadap kos dagangan, PnL sebenar mungkin menyimpang.
Tidak boleh mengehadkan saiz kedudukan, risiko perdagangan berlebihan wujud.
Untuk menangani risiko ini, kaedah seperti menetapkan stop loss, mengoptimumkan keadaan penapis, mengawal saiz kedudukan boleh digunakan.
Arah pengoptimuman utama ialah:
Menambah mekanisme penapis untuk mengelakkan pembukaan yang kerap semasa sisi. Tetapkan saluran harga, penapis turun naik dll.
Tetapkan stop loss atau time stop loss untuk mengawal risiko kerugian tunggal dan memastikan keuntungan keseluruhan.
Mengoptimumkan saiz kedudukan dan pengurusan wang untuk mengelakkan perdagangan berlebihan dan memastikan kestabilan.
Uji kesan parameter berkala yang berbeza dan pilih kombinasi parameter yang optimum.
Meningkatkan modul dagangan algoritma, menggunakan algoritma pembelajaran mesin untuk meningkatkan kecekapan keputusan.
Ringkasnya, strategi backtest tinggi rendah terobosan ini adalah mudah untuk beroperasi berdasarkan pengesanan trend, sesuai untuk pemula untuk belajar, tetapi risiko terperangkap wujud. Dengan menambah pengoptimuman seperti penapis, berhenti, kawalan kedudukan, risiko ini dapat dikurangkan dan keputusan strategi dapat ditingkatkan. Ia boleh memberikan idea dan rujukan untuk penyelidikan dan penambahbaikan kami selanjutnya.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/07/2018 // This script shows a high and low period value. // Width - width of lines // SelectPeriod - Day or Week or Month and etc. // LookBack - Shift levels 0 - current period, 1 - previous and etc. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="High and Low Levels Backtest", shorttitle="HL Levels", overlay = true) SelectPeriod = input("D", defval="D") LookBack = input(1, minval=0) reverse = input(false, title="Trade reverse") xHigh = request.security(syminfo.tickerid, SelectPeriod, high[LookBack]) xLow = request.security(syminfo.tickerid, SelectPeriod, low[LookBack]) vS1 = xHigh vR1 = xLow pos = iff(close > vR1, 1, iff(close < vS1, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue )