SMA Volatilitätsabweichung Handelsstrategie


Erstellungsdatum: 2023-12-19 10:52:10 zuletzt geändert: 2023-12-19 10:52:10
Kopie: 1 Klicks: 786
1
konzentrieren Sie sich auf
1621
Anhänger

SMA Volatilitätsabweichung Handelsstrategie

SMA Volatilitätsabweichung Handelsstrategie

Strategieübersicht

Die Strategie verwendet einen einfachen Moving Average und einige mathematische Berechnungen, um den Kauf-/Verkaufspunkt zu bestimmen. Wir verwenden den 100-Tage-SMA als Basislinie. Wenn der Schlusskurs unterhalb dieser Linie liegt, wählen wir den Eröffnungspunkt, basierend darauf, wie weit er unterhalb dieser Linie liegt.

Strategieprinzip

Die Strategie verwendet drei SMA-Linien: die Schnelllinie (standard 14 Tage), die Langstrecke (standard 100 Tage) und die Referenzlinie (standard 30 Tage).

Wenn der Schlusskurs unter der Referenzlinie liegt und die niedrige Verschiebung der langsamen Linie gegenüber der konfigurierten niedrigen Verschiebung größer ist und die schnelle Linie steigt und die langsame Linie sinkt, tritt man in die Mehrzahl ein. Wenn diese Bedingungen erfüllt sind, ist es sehr wahrscheinlich, dass sich die schnellen und langsamen Linien kreuzen und daher ein guter Einstiegspunkt sind.

Wenn der Schlusskurs höher als die Referenzlinie ist und die hohe Verlagerung der langsamen Linie gegenüber der konfigurierten hohen Verlagerung größer ist, und der Schlusskurs 3 K-Linien in Folge gestiegen ist, ist ein Gewinn erzielt worden, und die schnelle Linie ist höher als die langsame Linie, ist die Platzierung einfach. Wenn der Preis weiter steigt, wird der Verfolgungsstillstand eingeleitet.

Bei jedem Handel werden Positionen nach einem bestimmten Prozentsatz der Zinssätze eingegeben, wodurch die Position kontrolliert wird.

Strategische Stärkenanalyse

  1. Die SMA nutzt die Vorteile, um die Kurskurve zu glätten und Marktlärm zu filtern.
  2. SMA-Kreuzungen haben eine gewisse Fähigkeit, Trends vorherzusagen.
  3. Vermeiden Sie falsche Durchbrüche, indem Sie die Abweichung gegenüber der SMA-Linie einstellen.
  4. In Kombination mit Trends und Cross-Indicators verbessert die Genauigkeit der Entscheidungen.
  5. Die Verfolgung von Stop-Loss-Verlusten wird genutzt, um Gewinne zu sichern und Rücknahmen zu vermeiden.

Strategische Risikoanalyse

  1. Die SMA selbst ist nachlässig und kann einen Preiswendepunkt verpassen.
  2. Eine falsche Abweichung kann zu radikal oder zu vorsichtig sein.
  3. Unzureichende Einstellungen für die Stop-Loss-Parameter können zu früh oder zu groß sein.
  4. Das ist eine schwierige Situation, da die Preise in den Märkten stark schwanken.

Entsprechende Optimierungsmaßnahmen:

  1. In Kombination mit anderen vorangegangenen Indikatoren wird die Zulassung gefiltert.
  2. Optimierung der Verschleppung durch Wiederholungstests.
  3. Die Optimierung der Stop-Loss-Parametern wird immer wieder getestet.
  4. Das ist ein sehr schwieriger Prozess.

Richtung der Strategieoptimierung

  1. Testen von SMAs in verschiedenen Phasen auf optimale Parameter
  2. Zusätzliche Indikatoren zur Beurteilung von Marktstrukturen und -trends
  3. Optimierung der Verfolgung von Stop-Loss-Parametern, um mehr Gewinne zu erzielen
  4. Anpassung der Position an die Marktschwankungen
  5. Gleichzeitig für verschiedene Sorten und Kombinationen

Zusammenfassen

Die Strategie ist einfach zu verstehen und leicht umzusetzen. Durch die Optimierung der SMA-Parameter, der Schwankungs-Einstellungen und des Schadensgleichgewichts kann eine bessere Wirkung erzielt werden. Die Strategie ist für Investoren geeignet, die eine mittlere und lange Zeitspanne anstreben und stabile Gewinne erzielen.

Strategiequellcode
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// Author: Sonny Parlin (highschool dropout)
strategy(shorttitle="SMA+Strategy", title="SMA Offset Strategy",
                                      overlay=true,  currency=currency.USD,
                                      initial_capital=10000)

// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.001, "Low Offset (%)", minval=0, step=0.001)
highOffset = input(0.0164, "High Offset (%)", minval=0, step=0.0001)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)

// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
distanceLow = (close - smaSlow) / close
distanceHigh = (close - smaSlow) / close

// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)

// The buy stratey:
// guard that the low is under our sma low reference line by our lowOffset %, 
// default is 0.001. (low < smaRef) and (distanceLow > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1)) 
enterLong = (low < smaRef) and (distanceLow > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow, 1)) 

// The sell Strategy:
// Guard that close is higher than our sma high reference line by our 
// highOffset %, default is 0.0164. (close > smaRef) and (distanceHigh > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3)) 
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (distanceHigh > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)

// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900

// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close

// Trailing Stoploss
// I'm using 1.35 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.35) * 0.01
     
longStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0

if (enterLong)
    strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
    
if (enterShort)
    strategy.exit(id="Close Long Position", stop=longStopPrice)


//plot(strategy.equity)