
Diese Strategie verwendet drei Indikatoren TEMA, VWMACD und HMA, um die Abwärtsentwicklung von Bitcoin zu erfassen. Ihre Hauptlogik besteht darin, dass die VWMACD unter der 0-Achse durchbricht, wenn der Preis unter der HMA-Mittellinie und die kurze TEMA unter der langen TEMA liegt.
Zuerst berechnen Sie den VWMACD (Differenz zwischen dem normalen MACD besteht nur in der Art und Weise, wie der Moving Average berechnet wird) und zeichnen Sie ihn in einer Säule. Dann fügen Sie HMA als Trendfilter hinzu. Dann erstellen Sie und fügen Sie die Schnelllinie TEMA (5-Zyklen) und die langsame Linie TEMA (8-Zyklen) hinzu und berechnen Sie die Differenz zwischen den beiden und zeichnen Sie sie in der Nähe der 0-Achse.
Die Eintrittsregeln lauten: Wenn der VWMACD unter der 0-Achse liegt, der Preis unter der HMA-Mittellinie liegt und die Schnelllinie TEMA unter der langsamen TEMA liegt, ist die Karte leer.
Die spezifische Ausgangsregel lautet: Platzieren Sie die Position, wenn der Preis über der HMA-Durchschnittslinie oder der langsamen TEMA-Linienlänge liegt, wenn die VWMACD die 0-Achse durchbricht.
Die Strategie verwendet eine Kombination aus VWMACD, HMA und schnellen TEMA, um die kurzfristigen Abwärtsbewegungen von Bitcoin zu erfassen. Ihr Vorteil ist, dass das Signal zuverlässig ist und für Hochfrequenz-Handel geeignet ist. Es besteht jedoch auch ein Risiko, dass die Parameter optimiert werden und leicht von Geräuschstörungen beeinträchtigt werden.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="TEMA_HMA_VWMACD short strategy", shorttitle="Short strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.018, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp(9999,1,1,0,0)
_testPeriod() =>
iff(time >= startP and time <= end, true, false)
slow = input(13, "Short period")
fast = input(21, "Long period")
signal = input(5, "Smoothing period")
Fast = ema( volume * close, fast ) / ema( volume, fast )
Slow = ema( volume * close, slow ) / ema( volume, slow )
Macd = Slow - Fast
Signal = ema(Macd, signal)
Hist=Macd-Signal
plot(Hist, color=color.silver, linewidth=1, style=plot.style_histogram)
plot(0, color=color.red)
length = input(400, minval=1, title = "HMA")
hullma = wma(2*wma(close, length/2)-wma(close, length), floor(sqrt(length)))
tema_length_1 = input(5, "Fast moving TEMA")
tema_length_2 = input(8, "Slow moving TEMA")
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)
threshold = 0
tm = tema1 - tema2
plot_fast = plot(tm, color = tm > 0 ? color.green : color.red)
plot(threshold, color=color.purple)
up = crossover(tm, 0)
down = crossunder(tm, 0)
longCondition = (Hist < 0) and hullma > close and (tema1 < tema2) and _testPeriod()
strategy.entry('BUY', strategy.short, when=longCondition)
shortCondition = (Hist > 0) or hullma < close or up
strategy.close('BUY', when=shortCondition)
// Take profit
tp = input(1, type=input.float, title='Take Profit (%)')
sl = input(4, type=input.float, title='Stop Loss (%)')
strategy.exit('XLong', from_entry='BUY', profit=(close * (tp/100) * (1/syminfo.mintick)), loss=(close * (sl/100) * (1/syminfo.mintick)))