Die Ressourcen sind geladen. Beförderung...

Asiatische Sitzung hohe Niedrige Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-29 17:12:49
Tags:

img

Übersicht

Die Hauptidee dieser Strategie besteht darin, die Hoch- und Tiefpunkte der asiatischen Sitzung als Ausbruchspunkte zu verwenden. Innerhalb weniger Stunden nach Öffnung der europäischen und amerikanischen Märkte geht der Preis, wenn er über das Hoch der asiatischen Sitzung bricht, lang; wenn er unter das Tief der asiatischen Sitzung bricht, geht er kurz. Stop-Loss und Take-Profit werden eingestellt, um das Risiko zu kontrollieren. Die Strategie öffnet nur einen Handel pro Tag mit maximal 100.000 gleichzeitigen Positionen.

Strategieprinzip

  1. Bestimmung der Handelszeit der asiatischen Sitzung. Benutzer können die Start- und Endzeiten anpassen.
  2. Während der asiatischen Sitzung werden die höchsten und niedrigsten Preise des Tages aufgezeichnet.
  3. Wenn der Preis zu einem bestimmten Zeitpunkt (nutzerdefinierte Versetzungszeiten) nach Öffnung der europäischen und amerikanischen Märkte über das Hoch der asiatischen Sitzung hinausgeht, geht man lang; wenn er unter das Tief der asiatischen Sitzung hinausgeht, geht man kurz.
  4. Die Anzahl der Punkte für Stop Loss und Take Profit kann angepasst werden.
  5. Öffnen Sie nur einen neuen Handel pro Tag mit maximal 100.000 gleichzeitigen Positionen.
  6. Wenn für den Tag bereits eine Position eröffnet wurde, werden keine neuen Geschäfte eröffnet.

Analyse der Vorteile

  1. Durch die Verwendung der relativ ruhigen Eigenschaften der asiatischen Sitzung und die Verwendung der Höhen und Tiefen der asiatischen Sitzung als Ausbruchspunkte kann sie die Trendchancen der europäischen und amerikanischen Sitzung besser erfassen.
  2. Die Einstellung von Stop-Loss und Take-Profit kann das Risiko effektiv kontrollieren, profitable Trades laufen lassen und Verluste bei unrentablen Trades schnell stoppen.
  3. Die Begrenzung auf nur einen Handel pro Tag und eine maximale Anzahl gleichzeitiger Positionen kann zu einem Überhandel und einer übermäßigen Verwendung von Geldern beitragen.
  4. Benutzer können Parameter wie asiatische Sitzungszeiten und Versetzungszeiten flexibel nach eigenen Bedürfnissen festlegen.

Risikoanalyse

  1. Es ist möglich, daß die europäischen und amerikanischen Märkte, nachdem sie durchbrochen haben, schnell zurückgehen und Verluste verursachen.
  2. Ein Festpunkt Stop-Loss und Take-Profit sind möglicherweise nicht in der Lage, mit großen Schwankungen auf dem Markt fertig zu werden.
  3. In Situationen, in denen der Trend nicht offensichtlich ist oder die Marktvolatilität hoch ist, kann die Strategie häufige Eröffnungs- und Stoppverluste aufweisen.

Optimierungsrichtung

  1. Es sollte in Betracht gezogen werden, die Anzahl der Stop-Loss- und Take-Profit-Punkte dynamisch anhand von Volatilitätsindikatoren wie ATR anzupassen, um sich an unterschiedliche Marktbedingungen anzupassen.
  2. Fügen Sie einige Trendbeurteilungsindikatoren wie MA hinzu und gehen Sie nur lang, wenn der große Trend steigt, und kurz, wenn er sinkt, um die Erfolgsquote zu verbessern.
  3. Überlegen Sie, für verschiedene Zeitabschnitte verschiedene Parameter festzulegen, z. B. die Verwendung von kleineren Stop Loss und Take Profit zu Beginn der europäischen und amerikanischen Handelssitzungen und die Erhöhung von Stop Loss und Take Profit, wenn der Trend offensichtlich ist.

Zusammenfassung

Diese Strategie nutzt die Höhen und Tiefen der asiatischen Sitzung als Ausbruchspunkte für den Handel und eignet sich für die Verwendung bei Sorten mit offensichtlichen Trends auf den europäischen und amerikanischen Märkten.


/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)


Mehr