
Strategi ini adalah strategi crossover rata-rata bergerak yang didasarkan pada grafik Renko. Strategi ini menggunakan indikator TEMA untuk membangun sinyal crossover dan memfilternya dengan garis rata-rata jangka panjang untuk mengidentifikasi tren pada grafik Renko dan mengirimkan sinyal beli dan jual.
Sumber sinyal utama dari strategi ini adalah indikator TEMA jangka pendek dan indikator SMA. Logika spesifiknya adalah:
Ketika short term TEMA melewati short term SMA, melakukan over; ketika short term TEMA melewati short term SMA, melakukan close out.
Selain itu, kebijakan ini juga menetapkan dua parameter pilihan, yaitu avg_protection dan gain_protection, untuk mengatur masuk dan stop loss logik:
avg_protection>0, hanya akan membeli jika harga tutup lebih rendah dari harga rata-rata yang dipegang saat ini, sehingga mengurangi biaya kepemilikan;
Pada gain_protection>0, stop loss hanya akan dijual jika harga tutup melebihi persentase tertentu dari harga masuk, sehingga mengunci keuntungan.
Akhirnya, strategi ini juga menggunakan indikator SMMA jangka panjang sebagai filter tren.
Strategi ini memiliki beberapa keuntungan utama:
Strategi ini juga memiliki beberapa risiko:
Untuk menghindari risiko ini, Anda dapat menyesuaikan parameter yang sesuai, mengatur posisi stop loss, dan sebagainya.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini secara keseluruhan adalah strategi crossover moving average yang sederhana namun sangat praktis. Ini terutama bergantung pada efek penghapusan suara yang sangat baik dari Renko K line dan sensitivitas tinggi dari indikator TEMA untuk menghasilkan sinyal.
/*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))