TEMA-Kreuzhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-12 16:40:50
Tags:

Diese Strategie handelt über die Überschneidung zwischen zwei TEMA-Linien unterschiedlicher Zeiträume, um mittelfristige Trends zu erfassen.

Strategie Logik:

  1. Berechnen Sie schnelle und langsame TEMA-Linien, typischerweise 5 und 8 Perioden.

  2. Gehen Sie lang, wenn die schnelle TEMA über die langsame TEMA geht.

  3. Ausgang lang, wenn schnelle TEMA unter langsame TEMA überschreitet.

  4. Der Wert der Risikopositionen, für die die Risikopositionen gemäß Artikel 147 Absatz 1 Buchstabe c der CRR gelten, wird in der Tabelle 1 aufgeführt.

  5. Zurückprüfung über einen bestimmten Zeitraum zur Simulation historischer Signale.

Vorteile:

  1. TEMA filtert das Preisgeräusch stark ab.

  2. Eine schnelle/langsame Kombination erfasst zwischengeschaltete Trends.

  3. Der Richtungsfilter verbessert die Gewinnrate, indem Gegentrend-Einträge vermieden werden.

Risiken:

  1. TEMA ist immer noch hinterher, möglicherweise fehlen die besten Einträge.

  2. Parameter-Tuning für eine ideale Übereinstimmung.

  3. Es ist schwierig, Signale in verschiedenen Märkten zu erhalten.

Zusammenfassend lässt sich sagen, dass diese Strategie die TEMA-Linien überschreitet, um Trends mit Lärmfilterung für Stabilität zu handeln.


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

Mehr