Effiziente quantitative Handelsstrategie basierend auf maßgeschneiderten quantitativen Modellen


Erstellungsdatum: 2023-12-22 13:14:33 zuletzt geändert: 2023-12-22 13:14:33
Kopie: 0 Klicks: 658
1
konzentrieren Sie sich auf
1623
Anhänger

Effiziente quantitative Handelsstrategie basierend auf maßgeschneiderten quantitativen Modellen

Überblick

Die Strategie ist eine effiziente Quantitative Trading-Strategie, die auf einem Quantitativen Modell basiert. Die Strategie verwendet das Modellius-Volumen-Modell als Basismodell und erweitert und optimiert auf dieser Basis. Die Strategie kann quantitative Trading-Gelegenheiten im Markt erfassen und stabile Gewinne erzielen.

Strategieprinzip

Im Mittelpunkt der Strategie steht das Modellius-Volumen-Modell. Es nutzt die Veränderungen des Preises und des Handelsvolumens, um quantitative Handelsmöglichkeiten in den Märkten zu identifizieren. Insbesondere wird die Strategie in Kombination mit dem Close-Preis, dem Open-Preis, dem Höchstpreis und dem Tiefpreis verwendet, um die Richtung der aktuellen K-Linie nach bestimmten Regeln zu berechnen.

Die grundlegende Handelslogik besteht darin, wenn der Indikator von Negativ zu Positiv bricht, zu handeln; wenn der Indikator von Positiv zu Negativ bricht, zu verlieren. Darüber hinaus setzt die Strategie Stop Loss, Stop Stop und Tracking Stop Loss ein, um das Risiko zu kontrollieren.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass sie die Möglichkeit nutzt, die Quantifizierungschancen effektiv zu identifizieren. Im Vergleich zu herkömmlichen technischen Indikatoren ist das Modell stärker auf die Veränderung der Transaktionsmengen ausgerichtet, was in den derzeitigen hochfrequenten Quantifizierungsgeschäften sehr praktisch ist. Darüber hinaus sind die Einstiegsregeln der Strategie strenger, wodurch die Wahrscheinlichkeit einer Unordnung vermieden und gleichzeitig die Quantifizierungschancen vermieden werden.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass das Modellius-Volumen-Modell selbst nicht vollständig auf Geräusche verzichten kann. Wenn ein Markt unüblich schwankt, kann dies zu falschen Handelssignalen führen. Außerdem können die Parameter-Einstellungen in der Strategie Auswirkungen auf die endgültigen Ergebnisse haben.

Um das Risiko zu kontrollieren, können die Parameter angepasst werden und in Kombination mit anderen Indikatoren unterstützt werden. Darüber hinaus müssen die Stop-Loss- und Stop-Stop-Positionen vernünftigerweise eingestellt werden.

Optimierungsrichtung

Die Strategie bietet auch Optimierungsmöglichkeiten. Zum Beispiel kann man die Einstellung von Parametern in Kombination mit einem Machine-Learning-Algorithmus dynamisch optimieren. Oder man kann Indikatoren wie Emotion-Analyse in Verbindung bringen, um die Entscheidungsgenauigkeit zu verbessern.

Zusammenfassen

Insgesamt nutzt die Strategie die Vorteile des Modellierungsmodells von Modelius Volume, um eine quantitative Handelsstrategie mit hoher Handhabbarkeit zu entwickeln. Die Optimierung kann durch Parameteranpassung, Modellvergrößerung und maschinelles Lernen optimiert werden, um bessere stabile Erträge im tatsächlichen Handel zu erzielen.

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


//@version=3
strategy(title="strategy modelius volume model ", shorttitle="mvm",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)

method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating=input(defval=true, type=bool, title="Oscillating")
normalize=input(defval=false, type=bool, title="Normalize")
vol = useTrueRange == "Always" or (useTrueRange == "Auto" and na(volume))? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low

if method == "ATR"
    methodvalue := atr(round(methodvalue))
if method == "Part of Price"
    methodvalue := close/methodvalue

currclose = na
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose

direction = na
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0

barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol/barcount : vol


x=isOscillating and directionIsDown ? -res : res

TP = input(0) * 10
SL = input(0) * 10
TS = input(1) * 10
TO = input(3) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(x,0)
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(x,0)
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)