
Diese Strategie wird als “Low Volatility Oriented Buy Stop Loss Strategy” bezeichnet. Sie nutzt die Kreuzung des Moving Averages als Kaufsignal und kombiniert Stop Losses mit Gewinnschließung. Sie ist für Währungen mit niedriger Volatilität geeignet.
Die Strategie verwendet einen Moving Average mit 3 verschiedenen Perioden: 50 Perioden, 100 Perioden und 200 Perioden. Die Kauflogik lautet: Wenn die 50-Periodenlinie die 100-Periodenlinie durchläuft und die 100-Periodenlinie die 200-Periodenlinie durchläuft, wird ein zusätzlicher Einstieg gemacht.
Das Signal zeigt an, dass der Markt aus der niedrigen Schwankungszone herausbricht und in einen Trend beginnt. Ein schneller 50-Zyklus-Aufstieg bedeutet eine plötzliche Erhöhung der kurzfristigen internen Kräfte, die die mittlere Längen nach oben treiben, und ein Beginn der 100-Zyklus-Linien zeigt an, dass die mittleren Kräfte hinzukommen und den Trend stabilisieren.
Nach dem Eintritt wird die Strategie mit einem Stop-Loss-Methode verriegelt. Das Stop-Loss-Ziel beträgt 8% des Eintrittspreises, die Stop-Line 4% des Eintrittspreises. Das Setzen eines Stop-Losses ist größer als der Stop-Loss, was dazu beiträgt, dass die Gewinne die Verluste übersteigen und die Gesamtprofitabilität der Strategie gewährleistet.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Gegenmaßnahmen:
Die Strategie kann optimiert werden durch:
Insgesamt ist die Strategie klar und logisch, mit der Konfiguration von Moving Average-Perioden und Stop-Loss-Margen, um ein niedriges Risiko zu erzielen. Sie kann flexibel auf quantitative Transaktionen angewendet werden. Sie kann anschließend von Einstiegssignalen, Stop-Loss-Methoden usw. optimiert werden, um die optimale Wirkung zu finden.
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)
//Exit
longStopPrice = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)
strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())
//PLOT
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)