Strategi Dagangan TEMA

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

Strategi ini memperdagangkan persilangan antara dua garis TEMA dari tempoh yang berbeza untuk menangkap trend jangka menengah. TEMA menapis bunyi bising dengan baik untuk mengenal pasti pembalikan trend.

Logik Strategi:

  1. Mengira garis TEMA pantas dan perlahan, biasanya 5 dan 8 tempoh.

  2. Pergi panjang apabila TEMA cepat melintasi TEMA perlahan.

  3. Keluar lama apabila TEMA pantas melintasi di bawah TEMA perlahan.

  4. Pilihan untuk menapis berdasarkan arah lilin untuk mengelakkan perdagangan yang bertentangan dengan trend.

  5. Ujian balik dalam tempoh tertentu untuk mensimulasikan isyarat sejarah.

Kelebihan:

  1. TEMA sangat menapis bunyi harga.

  2. Kombo pantas / perlahan menangkap trend pertengahan.

  3. Penapis arah meningkatkan kadar kemenangan dengan mengelakkan entri yang bertentangan dengan trend.

Risiko:

  1. TEMA masih ketinggalan, berpotensi kehilangan entri terbaik.

  2. Penyesuaian parameter diperlukan untuk kecocokan yang ideal.

  3. Sukar untuk mengekalkan isyarat di pasaran yang berbeza.

Ringkasnya, strategi ini melintasi garis TEMA untuk perdagangan trend dengan penapisan bunyi bising untuk kestabilan.


/*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 lanjut