Die Hauptidee dieser Strategie besteht darin, die Richtung von lang und kurz basierend auf dem wöchentlichen Preistrend zu bestimmen. In einem Aufwärtstrend geht es lang, wenn es ein bullisches Kerzenmuster gibt. Es macht Gewinn, wenn der Preis auf das vorgegebene Gewinnniveau steigt und Stoppt den Verlust, wenn er auf das vorgegebene Stop-Loss-Niveau fällt.
Die Strategie legt zunächst die Voraussetzungen für die Beurteilung der wöchentlichen Entwicklung fest:
isUptrend = close > close[1]
isDowntrend = close < close[1]
Wenn der aktuelle Abschluss höher ist als der vorherige Abschluss, wird er als Aufwärtstrend beurteilt, andernfalls als Abwärtstrend.
Anschließend wird das Intraday-Handelssignal definiert:
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
Das heißt, der vorherige Closing ist höher als der vorherige Open (Bullish Candle) und der vorherige Open ist höher als der Closing vor dem vorherigen Tag (Gap Up) und befindet sich in einem Aufwärtstrend.
Nach dem Eintritt in die Position wird der Stop Loss auf den vorherigen Schlusskurs minus 1.382 mal den tatsächlichen Wert des vorherigen Tages gesetzt:
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
Der Take Profit wird auf den vorherigen Closing plus das 2-fache der Differenz zwischen dem vorherigen Closing und dem Stop Loss gesetzt:
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
Dies verwirklicht die Stop-Loss- und Profit-Taking-Strategie.
Zu den Vorteilen dieser Strategie gehören:
Es gibt auch einige Risiken:
Um diese Risiken zu kontrollieren, können einige Optimierungen in Betracht gezogen werden:
Die Strategie kann auch auf folgende Weise optimiert werden:
Im Allgemeinen ist dies eine ziemlich praktische Strategie, die den Handel entlang der Trends hervorhebt und gleichzeitig Risiken kontrolliert. Es kann als grundlegende Intraday-Handelsstrategie dienen und kann modular für verschiedene Märkte und Produkte optimiert werden, um diversifizierte Handelsportfolios zu schaffen. In der tatsächlichen Anwendung bleibt die Kontrolle der Kosten und die Vermeidung von Fallen entscheidend, so dass die Aufrechterhaltung der richtigen Mentalität der Schlüssel ist.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true) // Function to get previous day's close and open getPrevDayClose() => request.security(syminfo.tickerid, "D", close[1]) getPrevDayOpen() => request.security(syminfo.tickerid, "D", open[1]) // Determine weekly trend isUptrend = close > close[1] isDowntrend = close < close[1] // Determine daily conditions for buy buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend // Calculate stop loss and take profit stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss) // Strategy logic if (isUptrend) strategy.entry("Buy", strategy.long, when = buyCondition) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit) if (isDowntrend) strategy.entry("Sell", strategy.short) // Plotting the trend on the chart plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar) plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar) // Plotting stop loss and take profit levels on the chart plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross) plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)