Strategi ini adalah strategi crossover purata bergerak berdasarkan carta lilin Renko. Ia menggunakan penunjuk TEMA untuk membina isyarat crossover dan menggabungkan purata bergerak jangka panjang untuk penapisan, bertujuan untuk mengenal pasti trend pada carta Renko dan menghasilkan isyarat beli dan jual.
Sumber isyarat utama strategi ini berasal dari salib emas dan salib kematian penunjuk TEMA jangka pendek dan penunjuk SMA.
Apabila TEMA jangka pendek melintasi SMA jangka pendek, pergi panjang; apabila TEMA jangka pendek melintasi di bawah SMA jangka pendek, tutup kedudukan.
Di samping itu, strategi juga menetapkan dua parameter pilihan avg_protection dan gain_protection untuk menyesuaikan logik masuk dan henti rugi:
Apabila avg_protection>0, hanya membeli apabila harga penutupan lebih rendah daripada harga pegangan purata semasa, yang boleh mengurangkan asas kos;
Apabila gain_protection>0, hanya jual apabila harga penutupan melebihi harga kemasukan dengan peratusan tertentu untuk mengunci keuntungan.
Akhirnya, strategi ini juga menggunakan penunjuk SMMA jangka panjang sebagai penapis trend. Hanya apabila harga penutupan di bawah SMMA isyarat panjang akan dicetuskan.
Kelebihan utama strategi ini ialah:
Strategi ini juga mempunyai beberapa risiko:
Untuk mengurangkan risiko ini, penyesuaian parameter yang betul, menetapkan kerugian berhenti dan lain-lain boleh diterima pakai.
Arah pengoptimuman utama untuk strategi ini adalah:
Secara umum, ini adalah strategi crossover purata bergerak yang asas, mudah tetapi sangat praktikal. Ia terutamanya bergantung pada kesan pengurangan bunyi bising bar Renko yang sangat baik dan kepekaan tinggi penunjuk TEMA untuk menghasilkan isyarat. Sementara itu, kerjasama antara purata bergerak jangka panjang dan jangka pendek juga meningkatkan keupayaan mengikuti trendnya. Dengan penyesuaian parameter dan pengoptimuman yang betul, strategi ini boleh menjadi pilihan yang berkesan 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))