Strategi ini menggunakan indikator TEMA untuk membangun sinyal crossover dan menggabungkan rata-rata bergerak jangka panjang untuk penyaringan, bertujuan untuk mengidentifikasi tren pada grafik Renko dan menghasilkan sinyal beli dan jual.
Sumber sinyal utama dari strategi ini berasal dari salib emas dan salib kematian dari indikator TEMA jangka pendek dan indikator SMA.
Ketika TEMA jangka pendek melintasi SMA jangka pendek, pergi panjang; ketika TEMA jangka pendek melintasi SMA jangka pendek, tutup posisi.
Selain itu, strategi juga menetapkan dua parameter opsional avg_protection dan gain_protection untuk menyesuaikan masuk dan stop loss logika:
Bila avg_protection>0, hanya membeli ketika harga penutupan lebih rendah dari harga rata-rata kepemilikan saat ini, yang dapat mengurangi basis biaya;
Ketika gain_protection>0, hanya menjual ketika harga penutupan melebihi harga masuk dengan persentase tertentu untuk mengunci keuntungan.
Akhirnya, strategi ini juga menggunakan indikator SMMA jangka panjang sebagai filter tren. Hanya ketika harga penutupan berada di bawah SMMA sinyal panjang akan dipicu.
Keuntungan utama dari strategi ini adalah:
Strategi ini juga memiliki beberapa risiko:
Untuk mengurangi risiko ini, penyesuaian parameter yang tepat, pengaturan stop loss dll dapat diadopsi.
Arah utama optimasi untuk strategi ini adalah:
Secara umum, ini adalah strategi crossover rata-rata bergerak yang sederhana, tetapi sangat praktis. Ini terutama bergantung pada efek pengurangan kebisingan yang sangat baik dari batang Renko dan kepekaan tinggi dari indikator TEMA untuk menghasilkan sinyal. Sementara itu, kolaborasi antara rata-rata bergerak jangka panjang dan jangka pendek juga meningkatkan kemampuan mengikuti tren. Dengan penyesuaian parameter dan optimasi yang tepat, strategi ini dapat menjadi pilihan yang efektif untuk perdagangan kuantitatif.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TEMA Cross", overlay = true) tema(src, len) => 3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len) smma(src, len) => sa = 0.0 sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len sa temaLength = input(5) smaLength = input(3) smmaLength = input(30) tema1 = tema(close, temaLength) sma1 = sma(tema1, smaLength) smma1 = smma(close,smmaLength) plot(tema1, color = green, title = "TEMA") plot(sma1, color = orange, title = "SMA") plot(smma1, color = red, title = "SMMA") minGainPercent = input(2) gainMultiplier = minGainPercent * 0.01 + 1 avg_protection = input(1) gain_protection = input(1) longCondition = crossover(tema1, sma1) and tema1 < smma1 shortCondition = crossunder(tema1, sma1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))