Strategi Perdagangan Crossover TEMA

Penulis:ChaoZhang, Tanggal: 2023-09-12 16:40:50
Tag:

Strategi ini memperdagangkan persilangan antara dua garis TEMA dari periode yang berbeda untuk menangkap tren jangka menengah.

Logika Strategi:

  1. Hitung garis TEMA cepat dan lambat, biasanya 5 dan 8 periode.

  2. Pergi panjang ketika TEMA cepat melintasi atas TEMA lambat.

  3. Keluar panjang ketika TEMA cepat melintasi di bawah TEMA lambat.

  4. Opsi untuk menyaring berdasarkan arah lilin untuk menghindari perdagangan kontra-trend.

  5. Backtest selama periode tertentu untuk mensimulasikan sinyal historis.

Keuntungan:

  1. TEMA sangat menyaring suara harga.

  2. Kombinasi cepat / lambat menangkap tren menengah.

  3. Filter arah meningkatkan tingkat menang dengan menghindari entri kontra-tren.

Risiko:

  1. TEMA masih tertinggal, berpotensi kehilangan entri terbaik.

  2. Pengaturan parameter diperlukan untuk pencocokan ideal.

  3. Sulit untuk mempertahankan sinyal di berbagai pasar.

Singkatnya, strategi ini melintasi garis TEMA untuk memperdagangkan tren dengan penyaringan kebisingan untuk stabilitas.


/*backtest
start: 2022-09-11 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Tema",overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)
startP = timestamp(input(2017, "Start Year"), input(12, "Start Month"), input(17, "Start Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "End Month"),   input(1, "End Day"),   0, 0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)

tema_length_1 = input(5, "Fast TEMA")
tema_length_2 = input(8, "Slow TEMA")
usedir       = input(true, "Use bar's direction ?" )
dirtime      = input(2,"direction bars")

tema(sec, length)=>
    tema1= ema(sec, length)
    tema2= ema(tema1, length)
    tema3= ema(tema2, length)
    tema = 3*tema1-3*tema2+tema3

tema1 = tema(hlc3, tema_length_1)
tema2 = tema(hlc3, tema_length_2)

dir=if close/close[dirtime] > 1
    1
else
    -1

plot(tema1, color=color.green, transp=50)
plot(tema2, color=color.red, transp=50)


up =  crossover(tema1, tema2) 
down = crossunder(tema1, tema2)

long_condition =  up and (usedir ? dir==1 : true) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition =  down
strategy.close('BUY', when=short_condition)

Lebih banyak