
Die Hauptidee der Strategie ist es, auf der Grundlage der wöchentlichen Preisentwicklung eine offene Richtung zu bestimmen, in den Fällen von Positionen, die nach dem Auftreten einer Sonnenstrahlform aufgenommen werden; Stopps, wenn die Preise bis zum vorgegebenen Stop-Loss steigen, und Stopps, wenn sie bis zum vorgegebenen Stop-Loss fallen.
Die Strategie definiert zunächst die Bedingungen für die Beurteilung der wöchentlichen Trends:
isUptrend = close > close[1]
isDowntrend = close < close[1]
Wenn der aktuelle Schlusskurs größer ist als der Schlusskurs des Vortages, wird er als bullish bewertet, umgekehrt ist er bullish.
Dann definieren Sie das Tageshandelssignal:
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend
Der Vortags-Schlusskurs ist also größer als der Vortags-Schlusskurs und befindet sich in einem bullischen Trend.
Nach dem Eintritt wird der Stop-Loss auf den Schlusskurs des Vortages minus 1.382-fache der Länge des Vortags festgelegt:
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
Der Stop-Loss-Punkt wird auf den Schlusskurs des Vortages plus die Differenz zwischen dem Stop-Loss-Punkt und dem Schlusskurs des Vortages festgelegt:
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)
Das bedeutet, dass die Einziehung von Verlusten möglich ist.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Um diese Risiken zu kontrollieren, können Sie folgende Optimierungen in Betracht ziehen:
Die Strategie kann auch in folgenden Richtungen optimiert werden:
Die Strategie ist insgesamt eher praktisch, die Kernidee ist, Trend-Trading hervorzuheben und gleichzeitig das Risiko zu kontrollieren. Sie kann als Grundstrategie für den kurzfristigen Handel innerhalb eines Tages verwendet werden, aber auch nach verschiedenen Märkten und Sorten modular optimiert werden, um ein diversifiziertes Handelsportfolio zu erreichen. In der praktischen Anwendung ist es immer noch wichtig, auf Kostenkontrolle und Risikoverhinderung zu achten und die richtige Mentalität zu bewahren.
/*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)