Preisbasierte Stop-Loss- und Take-Profit-Strategien


Erstellungsdatum: 2023-11-23 15:36:00 zuletzt geändert: 2023-11-23 15:36:00
Kopie: 0 Klicks: 672
1
konzentrieren Sie sich auf
1617
Anhänger

Preisbasierte Stop-Loss- und Take-Profit-Strategien

Überblick

Die Kernidee dieser Strategie ist es, die eingegebenen Stop-Loss-Stop-Mengen zu nutzen, um eine angemessene Anzahl von Stop-Loss-Stop-Punkten einzurichten und die Risiken und Gewinne für jeden Handel zu verwalten.

Strategieprinzip

Die Strategie setzt zunächst ein zufälliges Einstiegssignal ein, das überschreitet, wenn SMA14 SMA28 durchschreitet, und unterschreitet, wenn SMA14 SMA28 durchschreitet.

Nach dem Eintritt berechnet die Strategie die entsprechende Anzahl von Stop-Loss-Punkten anhand der eingegebenen Stop-Loss-Funktion moneyToSLPoints und berechnet gleichzeitig die Anzahl der Stop-Loss-Punkte. Dadurch wird eine Stop-Loss-Sperre basierend auf dem US-Dollar-Betrag festgelegt.

Zum Beispiel, wenn man 100 zusätzliche Hände spielt, die 10 Dollar pro Punkt wert sind, und der Stop-Loss auf 100 Dollar gesetzt ist, dann wird die Stop-Loss-Score auf 100/10/100 = 0,1 Punkte gesetzt.

Schliesslich kann man mit strategy.exit den Ausgangspunkt für die Stop-Loss-Stop-Line festlegen.

Analyse der Stärken

Der größte Vorteil dieser Strategie, die auf einem Stop-Loss-Stopp basiert, besteht darin, dass die Parameter intuitiv eingestellt werden können, um die Beziehung zwischen Risiko und Ertrag zu sehen und die Parameter zu wählen.

Darüber hinaus kann ein Dollarstop die tatsächliche Risikogrenze besser kontrollieren als ein Punktstop. Ein Dollarstop kann das Geld besser schützen, wenn die Marktfluktuation zunimmt.

Risikoanalyse

Es gibt einige Risiken bei dieser Stop-Loss-Strategie:

  1. Wenn der Stop-Loss-Punkt zu breit ist, kann er leicht eingeschaltet werden. Wenn der Stop-Loss-Punkt zu weit ist, ist die Wahrscheinlichkeit, dass die Kurzlinie umkehrt, relativ hoch.

  2. Wenn der Stopppunkt zu nahe ist, ist es schwierig, einen Gewinn zu erzielen. Wenn der Stopppunkt zu nah ist, können normale einseitige Geschäfte nicht erreicht werden, es ist schwierig, einen Gewinn zu erzielen.

  3. Wenn ein Vertrag mit einem zu hohen Punktwert, wie z. B. Rohöl, ausgewählt wird, wird der gleiche USD-Stop-Loss erzielt, wobei die entsprechenden Punkte sehr klein sind und leicht in Marktschwankungen ausgeschüttet werden können. Dies erfordert eine vernünftige Auswahl des Punktwerts.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Eintrittssignale können optimiert werden, z. B. durch Kombination von Trends, Schwankungen und Saisonalität, um eine bessere Eintrittszeit zu erhalten.

  2. Die entsprechenden Stop-Loss-Prozentsätze können für verschiedene Sorten gewählt werden. Zum Beispiel können für Großhandelswaren lockere Stop-Loss-Prozentsätze festgelegt werden.

  3. Es ist möglich, die Stop-Loss-Rate zu kombinieren, um die Stop-Loss-Rate bei zunehmender Schwankung entsprechend zu lockern, und die Stop-Loss-Rate bei abnehmender Schwankung entsprechend zu verschärfen.

  4. Es können verschiedene Stop-Loss-Strategien für verschiedene Zeitpunkte des Handelstages gewählt werden. Zum Beispiel wird der Stop-Loss während der US-Handelszeit verschärft, um die Wahrscheinlichkeit zu verringern, dass er eingestellt wird.

Zusammenfassen

Die Strategie hat die intuitive Stop-Loss-Funktion, die sich auf die Parameter des US-Dollar-Betrags bezieht. Die Vorteile der Strategie liegen in der intuitiven Auswahl der Parameter und der Kapitalkontrolle. Die Nachteile sind leicht zu manipulieren und schwierig zu profitieren.

Strategiequellcode
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-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/
// © adolgov

// @description
// 

//@version=4
strategy("Stop loss and Take Profit in $$ example", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)