
Die Strategie ist ein hochfrequentes, quantifiziertes Handelssystem, das eine Analyse von Trends in mehreren Zeiträumen und die Beziehung zwischen den Preisen kombiniert. Es beurteilt die Markttrends hauptsächlich anhand von Index-Moving Averages (EMA) in zwei Zeiträumen von 3 Minuten und 1 Stunde, kombiniert mit einer synthetischen Quantifikationsanalyse, um Handelssignale zu bestätigen, und entwickelt eine doppelte Ausstiegsmechanik, die auf Tageshochpreisen und festen Zeitpunkten basiert.
Die Kernlogik der Strategie besteht aus drei Hauptteilen:
Ein Eintrittssignal muss die oben genannten drei Bedingungen gleichzeitig erfüllen. Die Ausstiegsstrategie verwendet eine der beiden Bedingungen: Der Preis erreicht den höchsten Punkt des Tages oder er erreicht die Uhrzeit um 15:00.
Die Strategie kombiniert mehrere Zeitzyklus-Analysen und Quantitativ-Präsentationsbeziehungen, um ein relativ vollständiges Handelssystem zu erstellen. Die Vorteile liegen in der logischen Klarheit und Einfachheit der Umsetzung, aber immer noch Optimierungen in Bezug auf die Risikokontrolle. Es wird empfohlen, dass die Händler vor dem Einsatz in der Praxis ausreichende Tests mit historischen Daten durchführen und die Parameter entsprechend den Eigenschaften der jeweiligen Handelsart optimieren.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday + 1-Hour Trend Match", overlay=true)
// Inputs
emaLength3Min = input.int(50, title="EMA Length (3-Min)")
emaLength1Hr = input.int(50, title="EMA Length (1-Hour)")
volumeMultiplier = input.float(1.5, title="Volume Spike Multiplier")
// Intraday (3-Minute) EMA and Volume Spike
ema3Min = ta.ema(close, emaLength3Min)
volumeSMA = ta.sma(volume, 20)
isVolumeSpike = volume > (volumeSMA * volumeMultiplier)
// 1-Hour Trend (EMA)
ema1Hr = request.security(syminfo.tickerid, "60", ta.ema(close, emaLength1Hr))
is1HrUptrend = close > ema1Hr
// Intraday Signal
buyCondition3Min = close > ema3Min and isVolumeSpike
// Combined Signal: Match 3-Min Signal with 1-Hour Trend
finalBuyCondition = buyCondition3Min and is1HrUptrend
// All-Day High Tracking
var float allDayHigh = na
if (hour == 9 and minute == 0)
allDayHigh := high // Reset the all-day high at market open
else
allDayHigh := math.max(allDayHigh, high) // Update all-day high
// Debugging Plots
plot(ema3Min, color=color.blue, title="EMA 3-Min")
plot(ema1Hr, color=color.orange, title="EMA 1-Hour")
plotshape(isVolumeSpike, style=shape.circle, color=color.blue, title="Volume Spike (3-Min)")
plotshape(finalBuyCondition, style=shape.triangleup, color=color.green, title="Buy Signal")
plot(allDayHigh, color=color.red, title="All-Day High", linewidth=2)
// Strategy Execution
if (finalBuyCondition)
strategy.entry("Buy Signal", strategy.long)
// Exit Conditions
exitCondition = (close == allDayHigh) or (hour == 15 and minute >= 0)
if (exitCondition)
strategy.close("Buy Signal")