Öffnen Sie die Antriebsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-23 15:13:49
Tags:

img

Übersicht

Die Open Drive-Strategie beobachtet das Preisverhalten in den ersten 30 Minuten nach der Öffnung des Marktes an jedem Handelstag, identifiziert starke Richtungsbrechungen und tritt in diese Richtung in Trendgeschäfte ein. Sie nutzt hauptsächlich die erhöhte Liquidität und das Handelsvolumen nach der Öffnung, was größere Kursschwankungen und Richtungskräfte erzeugen kann.

Strategie Logik

  1. Verwenden Sie 30-minütige Balken, da nach der Öffnung genügend Zeit zur Messung extremer Kursbewegungen vorhanden sein muss.

  2. Identifizieren Sie die Bars, die in diesen Zeiträumen geöffnet sind: 0700-0715, 0800-0815, 1300-1315, 1430-1445.

  3. Überprüfen Sie, ob die offene Leiste erfüllt:

    • Öffnen in der Nähe der Bar niedrig, schließen in der Nähe der Bar hoch (Oberbar)

    • Oder offen in Barhöhe, dicht in Barniedrigkeit (niedrig)

    • Und das Hoch übersteigt das vorherige 5-Bar-Hoch um 1 x 5-Bar-Bereich oder das Niedrige bricht das vorherige 5-Bar-Tief um 1 x 5-Bar-Bereich (Ausbruch)

  4. Wenn die vorstehenden Bedingungen erfüllt sind, tritt der Trendhandel in diese Richtung 3 Bar nach dem Signalbar ein.

  5. Stoppverlust bei hoher/niedriger Einstiegsbar setzen.

  6. Halten Sie die Position für 3 Stäbe (90 Minuten) und gehen Sie dann aus.

Analyse der Vorteile

  • Erfasst starke Richtungsbewegungen infolge hoher Liquidität nach der Eröffnung
  • Breakout-Filter verhindern falsche Signale aus schüttelnden Bedingungen
  • Höhere Zeitrahmen verringern den Überhandel
  • Stop-Loss vermeidet übermäßige Verluste

Risikoanalyse

  • Bei festen Öffnungszeiten besteht das Risiko, dass Trend-Breakouts fehlen
  • Eine unzureichende Durchbruchsschwelle kann gültige Signale filtern.
  • Eine feste Aufbewahrungszeit kann sich nicht an spezifische Bedingungen anpassen.
  • Kein Trailing-Stop verfehlt die Trends.

Betrachten wir Folgendes:

  • Dynamische Bestimmung der offenen Periode mit mehr Parametern
  • Optimierung der Ausbruchsschwelle
  • Anpassung der Aufbewahrungszeit an die Volatilität
  • Hinzufügen von Trailing Stop-Verfahren

Verbesserungsrichtlinien

  • Mehr Indikatoren zur Verbesserung der Signalqualität
  • Eingabe von Geschäften in kürzeren Zeitrahmen für mehr Häufigkeit
  • Optimieren von Parametern wie offene Periode, Breakout-Schwelle, Stopps usw. basierend auf Backtests
  • Überlegen Sie, ob Sie die Gewinne steigern möchten, indem Sie einen Rückgang der Gewinne, einen Wiedereintritt usw. in Betracht ziehen.
  • Backtest verschiedener Produkte zur Suche nach der besten Passform

Zusammenfassung

Die Open Drive-Strategie folgt dem Trend, indem sie starke Richtungsbrechungen nach der Öffnung erfasst. Im Vergleich zu zufälligen Einträgen bietet sie bessere Risiko-Renditeigenschaften. Der Schlüssel ist die richtige Parameter-Tuning, die Auswahl der Instrumente und die Ausgleichsfrequenz und Rentabilität. Sie eignet sich für erfahrene Trader mit zusätzlicher Analyse.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-22 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Marcns_

//@version=5
// a script that highlights open drives around cash market opens throughout the day
// this indicator identifies the following cash open, open drives 0700 - 0715 / 0800 - 0815 / 1300 - 1315 / 1430 - 1445 
// an open drive is when a cash market opens and price runs either up or down away from the opening price, often this will be the high or the low the remainer of the session or day
// and often identify a trend session
strategy("Open Drive", commission_type =  strategy.commission.cash_per_contract, commission_value = 3.8 )

// open drive filter times - all times GMT
eu_sev = time(timeframe.period, "0700-0715", "GB")
eu_eig = time(timeframe.period, "0800-0815", "GB")
us_one = time(timeframe.period, "1300-1315", "GB")
us_two = time(timeframe.period, "1430-1445", "GB")


// identify bar that opens at low and closes at high + vice versa 
// bar needs to open at one extreme and close at another 
TrndExThreshold_Open = 0.15
TrndExThreshold_Close = 0.15

// add a bar range expansion filter - range of bar correlates to volume, high volume = wider range. This script will be able to filter for a break of a 5 bar range +100% or -100%

fbhi = ta.highest(5)
fblo = ta.lowest(5)

fbr = (fbhi - fblo)

RangeEx_up = 0.0

if high >= (fbhi[1] + fbr[1])
    RangeEx_up := 1.0
else
    na

// range ex down

RangeEx_do = 0.0

if low <= (fblo[1] - fbr[1]) 
    RangeEx_do := 1.0
else
    na


//#1 open within 5% of low

OpenAtLow = 0.0 

if (close > open) and (open-low) / (high-low) < TrndExThreshold_Open
    OpenAtLow := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtHigh = 0.0

if (close > open) and (high-close) / (high-low) < TrndExThreshold_Close
    CloseAtHigh := 1.0
else
    na 

OD_Up = 0.0

if (OpenAtLow + CloseAtHigh + RangeEx_up == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Up := 1
else
    na

plot(OD_Up, title = "OD_up")



OpenAtHigh = 0.0 

if (close < open) and (high-open) / (high-low) < TrndExThreshold_Open
    OpenAtHigh := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtLow = 0.0

if (close < open) and (close-low) / (high-low) < TrndExThreshold_Close
    CloseAtLow := 1.0
else
    na 

OD_Down = 0.0

if (OpenAtHigh + CloseAtLow + RangeEx_do == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Down := -1
else
    na

plot(OD_Down, title = "OD_down", color = color.red)


//3sma

ma = ta.sma(close,3)

// one time framing - highlight bars the make a series of lower highs or higher lows to identify trend 
// one time frame up 
otf_u = 0.0

if close > ma and close[1] > ma[1]
    otf_u := 1
else
    na
// one time frame down 
otf_d = 0.0

if close < ma and close[1] < ma[1]
    otf_d := 1
else
    na


//bgcolor(otf_u ? color.rgb(76, 175, 79, 70) : na)
//bgcolor(otf_d ? color.rgb(255, 82, 82, 66) : na)

// record high and low of entry bar into variable for absolute stop
// buy stop
bs = 0.0

if OD_Up
    bs := low[1]
else
    na

// sell stop
ss = 0.0

if OD_Down
    ss := high[1]
else
    na




// strategy entry and exits 
// long
if OD_Up
    strategy.entry("el", strategy.long, 2)
if ta.barssince(OD_Up)> 3 
    strategy.exit(id = "ex" , from_entry = "el", limit = close)

// short 
if OD_Down
    strategy.entry("es", strategy.short, 2)
if ta.barssince(OD_Down)> 3
    strategy.exit(id = "ex" , from_entry = "es", limit = close)



Mehr