Ide utama dari strategi ini adalah untuk mengambil posisi dengan pembalikan yang menguji level support/resistance penting di sekitar Weighted Moving Average.
Strategi ini didasarkan pada indikator Weighted Moving Average. Pertama-tama menghitung WMA dengan panjang tertentu, kemudian memantau apakah harga keluar dari WMA dengan beberapa kisaran. Ketika jarak breakout mencapai ambang batas, ia memetakan panah dan membuka posisi. Untuk pergi panjang, harga perlu pecah terlebih dahulu dengan beberapa kisaran; untuk pergi pendek, harga perlu pecah terlebih dahulu dengan beberapa kisaran. Dengan membentuk sinyal pembalikan melalui breakout dan menggabungkan dengan level support/resistance WMA
Strategi ini menyediakan opsi antara trailing stop loss dan fixed stop loss melalui trail parameter, sehingga risiko dapat dikendalikan dengan menyesuaikan stop loss range.
Keuntungan terbesarnya terletak pada menggabungkan pengaturan pembalikan dengan rata-rata bergerak untuk menangkap titik balik pasar utama untuk membuka posisi. Strategi pembalikan sering memiliki tingkat kemenangan dan rasio imbalan risiko yang baik, dengan risiko yang mudah dikendalikan. Strategi ini juga dilengkapi dengan mekanisme stop loss yang komprehensif dan metode mengambil keuntungan parsial, yang lebih lanjut membantu mengurangi risiko dan meningkatkan stabilitas.
Karena didasarkan pada rata-rata bergerak, ruang yang cukup tersedia untuk optimasi parameter dengan menyesuaikan nilai seperti panjang WMA, rentang istirahat dll untuk menguji kemampuan beradaptasi di berbagai pasar.
Jika harga gagal memicu stop loss atau mengambil keuntungan setelah membentuk sinyal pembalikan, dan terus berjalan ke arah asli, maka akan menimbulkan kerugian mengambang yang cukup besar.
Selain itu, hal ini sangat bergantung pada optimasi parameter. pengaturan parameter yang tidak tepat dapat dengan mudah melewatkan waktu pembalikan harga atau menghasilkan sinyal palsu. pemahaman yang tepat tentang perilaku pasar dan evaluasi bijaksana dari pilihan parameter diperlukan melalui backtest yang cukup.
Lebih banyak indikator dapat diperkenalkan untuk meningkatkan kualitas dan akurasi sinyal. Misalnya, sebelum pembalikan harga, nilai tambahan dalam periode terakhir tertentu dapat diperiksa, terutama data tambahan jangka pendek, untuk mencirikan pola fluktuasi harga. Atau faktor kuantitatif tertentu dapat ditambahkan untuk mendeteksi momentum harga, volatilitas dll untuk pemodelan multifaktor.
Metode pembelajaran mesin juga dapat diuji untuk memprediksi pergerakan harga jangka pendek berdasarkan sinyal perdagangan historis dan data harga, yang membantu menyaring sinyal palsu dan meningkatkan kualitas sinyal.
Selain itu, beberapa mekanisme optimasi adaptif dapat diimplementasikan. Menurut hasil perdagangan yang sebenarnya, parameter atau berat aturan dapat disesuaikan secara dinamis untuk mewujudkan self-optimization dan ENO dari strategi.
Operasi keseluruhan dari strategi ini stabil. Dalam ruang parameter yang wajar dan lingkungan pasar, ia dapat mencapai pengembalian yang cukup. Keuntungan terbesar terletak pada risiko yang dapat dikendalikan dan potensi optimasi. Langkah selanjutnya upaya akan difokuskan pada peningkatan kualitas sinyal dan menggabungkan kemampuan optimasi adaptif. Diyakini bahwa pada peningkatan yang berkelanjutan, strategi ini dapat menjadi pilihan yang menarik dalam portofolio investasi.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-22 08:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02) len = input(20, minval=1, title="Length") src = input(close, title="Source") out = wma(src, len) price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001) price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001) trail = input(true, "Trailing Stop(checked), Market stop(unchecked)") stop = input(10, "Stop (in ticks)", step=1) limit = input(5, "Limit Out", step=1) //size = input(1, "Limit Position Size (pyramiding)", minval=1) timec = input(true, "Limit Time of Day (Buying Side)") //Time Session sess = input("1600-0500", "Start/Stop trades (Est time)") t = time(timeframe.period, sess) //plots plot(wma(src,len)) z = if low+price_drop<out (out-low) plotarrow(z, colorup=red) a = if high-price_climb>out (high-out) plotarrow(a, colorup=lime) av=wma(src,len) //Orders if(timec) strategy.entry("Enterlong", long=true, when=z and t>1) else strategy.entry("Enterlong", long=true, when=z) if(trail) strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Enterlong", profit=limit, loss = stop ) if(timec) strategy.entry("Entershort", long=false, when=a and t>1) else strategy.entry("Entershort", long=false, when=a) if(trail) strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Entershort", profit=limit, loss = stop )