Strategi trading ini didasarkan pada sistem crossover rata-rata bergerak dan rata-rata bergerak sederhana untuk pelacakan tren. Ini menggunakan crossover rata-rata bergerak cepat dan lambat dengan periode yang berbeda sebagai sinyal untuk pergi panjang atau pendek. Ketika MA cepat melintasi di atas MA lambat dari bawah, pergi panjang; ketika MA cepat melintasi di bawah MA lambat dari atas, pergi pendek. Strategi ini bekerja dengan baik untuk produk dengan tren yang jelas.
Strategi ini menggunakan rata-rata bergerak sederhana cepat seperti 60 hari dan lambat seperti 200 hari. MA cepat merespons lebih cepat terhadap perubahan harga, mencerminkan tren jangka pendek; sementara MA lambat merespons lebih lambat dan menunjukkan tren jangka menengah hingga panjang.
Ketika MA pendek melintasi di atas MA panjang dari bawah, itu menandakan bahwa harga jangka pendek mulai naik dan memasuki pasar bull, jadi pergi panjang.
Strategi ini menggunakan MA crossover untuk menentukan arah tren. Ketika harga jangka pendek naik lebih cepat, MA pendek akan mendorong MA panjang ke atas dan melintasi dari bawah. Ini berarti tren naik sedang muncul dan posisi panjang harus diambil. Sebaliknya, ketika harga jangka pendek turun lebih cepat, MA pendek akan menarik MA panjang ke bawah dan melintasi dari atas, yang menyiratkan tren menurun dan posisi pendek harus diambil.
Dengan menangkap titik perubahan tren harga menggunakan penyeberangan MA yang cepat dan lambat, strategi dapat menyesuaikan posisi panjang/pendek sesuai.
Metode seperti menyesuaikan periode MA berdasarkan frekuensi volatilitas produk, meningkatkan stop loss/take profit menggunakan indikator yang lebih kompleks, menambahkan filter volume dll dapat mengoptimalkan strategi ini dan meningkatkan stabilitas.
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Mengoptimalkan periode MA cepat dan lambat untuk beradaptasi dengan produk dengan frekuensi volatilitas yang berbeda.
Meningkatkan kondisi masuk dengan menambahkan lebih banyak filter seperti lonjakan volume untuk mengurangi sinyal palsu.
Meningkatkan stop loss/take profit seperti trailing stop atau dynamic take profit untuk meningkatkan profitabilitas.
Pertimbangkan biaya perdagangan seperti komisi dan tambahkan modul evaluasi biaya untuk backtest yang lebih realistis.
Desain Parameter Universe untuk menemukan kombinasi parameter optimal yang disesuaikan dengan produk yang berbeda.
Tambahkan identifikasi pola lokal untuk membantu menentukan titik balik tren dan meningkatkan waktu masuk dan keluar.
Melalui optimalisasi strategi yang sistematis, profitabilitas, stabilitas dapat ditingkatkan secara signifikan dan pengurangan pengeluaran dapat dikurangi.
Strategi perdagangan menentukan pergeseran tren menggunakan MA crossover, strategi yang mengikuti tren yang khas. Ini menggunakan crossover antara MA cepat dan lambat untuk menghasilkan sinyal panjang / pendek, mengidentifikasi arah tren melalui kombinasi keduanya. Strategi ini secara stabil dan dapat diandalkan menangkap tren dan mudah dipahami dan diimplementasikan. Ketika dioptimalkan, dapat beradaptasi dengan sebagian besar produk dan membentuk strategi perdagangan kuantitatif mendasar. Peningkatan lebih lanjut dalam profitabilitas dan tingkat kemenangan dapat dicapai dengan menggabungkan dengan indikator teknis lainnya, mengoptimalkan strategi stop loss / take profit dll.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 10m basePeriod: 1m 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/ // © thebearfib // //@version=5 // strategy("x-over 150d_200d_sma - Free", overlay = true) repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system srcmc = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off) fast_length = input(title="Fast Length", defval=60) slow_length = input(title="Slow Length", defval=275) _fast = ta.sma(srcmc, fast_length) _slow = ta.sma(srcmc, slow_length) plot(_fast, title="Fast SMA", color=color.red, linewidth = 1) plot(_slow, title="Slow SMA", color=color.white, linewidth = 3) // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Calculating ————————————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // longProfitPerc = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01 longStopPerc = input.float(title="Long Stop (%)", minval=0.01, step=1.0, defval=13) * .01 // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Stop Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longExitPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc * (1 + longProfitPerc) longStopPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 - longStopPerc) : srcmc * (1 - longStopPerc) // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Long Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longCondition = srcmc > _slow and ta.crossover(_fast, _slow) closeCondition = ta.crossover(srcmc, _slow) if (longCondition) strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆") if (closeCondition) strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←") if (strategy.position_size > 0) strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss") // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Never the End Just the beginning ————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— //