
Diese Strategie ermöglicht die Quantifizierung von Gold-Cross-Buying und -Solding durch die Berechnung eines benutzerdefinierten Netto-Quantität-Indikators. Die Strategie ist eine Trend-Following-Strategie.
Die Kernlogik der Strategie ist die Berechnung eines benutzerdefinierten Nettowertes (NV) Indikators. Der NV Indikator beurteilt die Richtung der Preisänderung, indem er den Tagesumsatz als positiv, den Negativwert als negativ und den Nullwert als unverändert annimmt. So kann die Beziehung zwischen Preisänderung und Handelsvolumen klarer dargestellt werden.
Danach berechnet die Strategie den 3-Tage-Simple-Moving-Average des NV-Indikators als Gold- und Todesquerschnitt. Wenn der NV-Indikator von unten nach oben durch die Gold- und Todesquerschnittlinie geht, macht man einen Plus; wenn der NV von oben nach unten durch die Todesquerschnittlinie geht, macht man einen Minus.
Die Strategie setzt außerdem parametrische Start- und Endzeiten ein, um die Handelszeiten zu kontrollieren.
Der größte Vorteil dieser Strategie ist, dass die Strategie einfach und klar ist, leicht zu verstehen ist, die Parameter flexibel eingestellt werden können, die Handelsvariante, die Handelszeit usw. angepasst werden kann. Darüber hinaus gehört diese Strategie zu den Trend-Follow-Strategien, die die Preisentwicklung effektiv erfassen, die Handelsfrequenz senken und eine höhere Gewinnrate erzielen können.
Diese Strategie birgt folgende Risiken:
Die Aktionäre, die nicht mit der Strategie übereinstimmen, können nicht rechtzeitig auf die Preisentwicklung reagieren. Sie können einige Handelschancen verpassen oder nicht in der Lage sein, ihre Verluste rechtzeitig zu stoppen.
Die Quantifizierung des Goldkreuzes selbst ist etwas nachlässig und kann zu verspäteten Eintritten und größeren Verlusten führen.
Es ist nicht möglich, Marktgeräusche effektiv zu filtern, und es ist leicht zu erwischen.
Das Risiko kann durch einen dynamischen Moving Average in Kombination mit anderen Indikatoren verringert werden.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Erhöhung der Stop-Loss-Strategie, Einsatz von mobilen Stop-Losses, Overnight-Stop-Losses und andere Methoden zur Kontrolle von Einzelschäden.
Erhöhung der Filtergröße und Filterung von Falschmeldungen durch MACD, KDJ und andere Indikatoren zur Steigerung der Strategiestabilität.
Parameteroptimierung, die durch iterative Methoden wie genetische Algorithmen und Markov-Ketten die optimale Kombination von Parametern sucht.
Eine Strategie-Kombination mit anderen nicht relevanten Strategien kann das Risiko weiter verteilen und die Gesamtrendite erhöhen.
Diese Strategie ermöglicht einfaches und effektives Trend-Folgen durch Quantifizierung von Gold-Crossings. Obwohl es ein gewisses Maß an Rückstand gibt, ist die Parameter-Einstellung flexibel und leicht verständlich und ist eine Strategie, die für Anfänger geeignet ist. Durch kontinuierliche Optimierung können die Effektivität der Strategie schrittweise erhöht und die Risiken verringert werden.
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 03:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="@DankCoins - Customized Net Volume")
src = input(defval = close, title = "VA Source")
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume
// Inputs //
VHigh = input(defval = 50, title = "VHigh Amount")
VLow = input(defval = -50, title = "VLow Amount")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2012)
MAV1 = sma(volume, 3)
MAV2 = -sma(volume, 3)
enterShort = crossunder(nv, MAV1)
exitShort = crossunder(nv, MAV2)
enterLong = crossover(nv, MAV2)
exitLong = crossover(nv, MAV1)
// Time Function
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=enterShort and window())
strategy.exit("Exit Long", from_entry = "Long Entry", when=exitLong and window())
strategy.exit("Exit Short", from_entry = "Short Entry", when=exitShort and window())
// Plot
plot(nv, color=blue, title="NV")
plot(VHigh, color=red)
plot(VLow, color=red)
plot(MAV1, color=green)
plot(MAV2, color=green)