Relative Volumenpreisstrategie


Erstellungsdatum: 2023-12-28 17:54:44 zuletzt geändert: 2023-12-28 17:54:44
Kopie: 0 Klicks: 623
1
konzentrieren Sie sich auf
1623
Anhänger

Relative Volumenpreisstrategie

Überblick

Die Relativitätspreis-Strategie ist eine quantitative Handelsstrategie, die auf Ausnahmeregelungen bei der Transaktionsmenge und auf Preisschwankungen basiert. Die Strategie beurteilt, ob die Transaktionsmenge außergewöhnlich ist, indem sie die Beziehung zwischen der aktuellen Transaktionsmenge und der historischen Durchschnittstransaktionsmenge vergleicht. In Kombination mit der durchschnittlichen tatsächlichen Bandbreite wird beurteilt, ob die Preise in einem relativ stabilen Bereich liegen.

Strategieprinzip

Die Kernlogik der Relativitätspreisstrategie basiert auf zwei Indikatoren, einem Relativitätsvolumen und einem Preisschwankungsbereich.

Zuerst berechnen wir den einfachen Moving Average der Transaktionen der letzten 20 Zyklen als den historischen Durchschnitt der Transaktionen. Dann setzen wir ein Multiplikator-Parameter (z. B. 1,5-fach) ein, und wenn die aktuelle Transaktionsmenge größer ist als die 1,5-fache der durchschnittlichen Transaktionsmenge, betrachten wir die Transaktionsmenge als ungewöhnlich und gehören zu den Fällen, in denen die relative Menge der Transaktionen steigt.

Zweitens berechnen wir die durchschnittliche tatsächliche Breite (ATR) der letzten 14 Zyklen als Maß für die Preisschwankungen. Gleichzeitig berechnen wir die Standardabweichung der durchschnittlichen Breite. Wenn die aktuelle tatsächliche Breite zwischen der Durchschnittswerte und einer positiven Standardabweichung liegt, betrachten wir die Preisschwankungen als in einem relativ gleichmäßigen Bereich.

Wenn die beiden oben genannten Bedingungen gleichzeitig erfüllt sind, werden mehrere Signale ausgegeben, um mehr Positionen zu eröffnen. Während der Positionshaltung wird der maximale Tiefpunkt abzüglich der doppelten ATR als Stop-Loss-Bereich abzüglich der maximalen doppelten ATR als Stop-Loss-Bereich abgezogen.

Analyse der Stärken

Der größte Vorteil der Relativitätspreis-Strategie besteht darin, die Preisentwicklung durch außergewöhnliche Handelsmengen zu erfassen. Wenn die Handelsmengen ansteigen, bedeutet dies eine Veränderung der Einstellung der Marktteilnehmer, was oftmals einen Preisbruch und die Bildung neuer Trends anzeigt. Die Strategie kann den Zeitpunkt der außergewöhnlichen Handelsmengen effektiv bestimmen, indem sie die Handelsmengen im Verhältnis zum historischen Durchschnitt vergleicht.

Auf der anderen Seite berücksichtigt die Strategie auch die Preisschwankungen, so dass die Signale in relativ ruhigen Zeiten auftreten. Dies vermeidet das große Risiko von Verlusten, die bei starken Schwankungen verursacht werden. Es erhöht auch die Gewinnchancen, da der Trend normalerweise erst nach einer relativ ruhigen Phase beginnt zu brechen.

Risikoanalyse

Das größte Risiko dieser Strategie besteht darin, dass die Handelsvolumenindikatoren keine neuen Trends zu 100 Prozent bestimmen können. Der Handelsvolumenanstieg kann ein Falschbruch sein, der die Preise schnell umkehrt. In diesem Fall erleidet die Strategie größere Verluste.

Um die Verluste zu reduzieren, können die Parameter für die relative Menge an Gold angepasst werden, um strengere Kriterien für die Beurteilung von Außergewöhnlichkeiten in der Handelsmenge festzulegen. Oder andere Beurteilungsindikatoren hinzugefügt werden, wie die Erhöhung der Handelsmengenanalyse, um zu beurteilen, ob der Anstieg der Handelsmengen mit dem Handelsbetrag übereinstimmt.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Die Zugabe anderer Indikatoren wie Kurs- und Kursschwankungen, Umsatzmengen usw. macht das Signal für außergewöhnliche Umsätze zuverlässiger.

  2. Die ATR-Parameter können für verschiedene Aktien optimiert werden, um die Preisstabilitätsspanne genauer zu bestimmen.

  3. Die Einführung von Machine-Learning-Algorithmen zur positiven Beurteilung von Transaktionsvolumen-Ausnahmen, anstatt sie einfach mit historischen Durchschnittswerten zu vergleichen.

  4. Die Prognose von Preisschwankungen wird durch Deep-Learning-Modelle ermittelt, die nicht nur auf historischen ATRs basieren.

Zusammenfassen

Die Relativitätspreis-Strategie sendet Handelssignale aus, indem sie Transaktionsvolumen-Ausnahmen als Merkmale erfasst und in Kombination mit Preisstabilität beurteilt. Die Strategie ist einfach und praktisch und ist bei der Verfolgung von außergewöhnlichen Aktienhandelsmengen sehr effektiv. Es besteht jedoch ein gewisses Risiko für Falschsignale, die zur Verbesserung der Wirksamkeit der Beurteilung weiter optimiert werden müssen.

Strategiequellcode
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © DojiEmoji (kevinhhl)

//@version=4
strategy("[KL] Relative Volume + ATR Strategy",overlay=true,pyramiding=1)
ENUM_LONG = "Long"

// Timeframe {
backtest_timeframe_start = input(defval = timestamp("01 Apr 2016 13:30 +0000"), title = "Backtest Start Time", type = input.time)
USE_ENDTIME = input(false,title="Define backtest end-time (If false, will test up to most recent candle)")
backtest_timeframe_end = input(defval = timestamp("01 May 2021 19:30 +0000"), title = "Backtest End Time (if checked above)", type = input.time)
within_timeframe = true
// }
len_volat = input(14,title="Length of ATR to determine volatility")
ATR_volat = atr(len_volat)
avg_ATR_volat  = sma(ATR_volat, len_volat)
std_ATR_volat = stdev(ATR_volat, len_volat)
// }

// Trailing stop loss {
ATR_X2_TSL = atr(input(14,title="Length of ATR for trailing stop loss")) * input(2.0,title="ATR Multiplier for trailing stop loss",type=input.float)
TSL_source = low
var stop_loss_price = float(0)
TSL_line_color = color.green, TSL_transp = 100
if strategy.position_size == 0 or not within_timeframe
    TSL_line_color := color.black
    stop_loss_price := TSL_source - ATR_X2_TSL 
else if strategy.position_size > 0
    stop_loss_price := max(stop_loss_price, TSL_source - ATR_X2_TSL)
    TSL_transp := 0
plot(stop_loss_price, color=color.new(TSL_line_color, TSL_transp))
// }

// Signals for entry {
_avg_vol = sma(volume,input(20, title="SMA(volume) length (for relative comparison)"))
_relative_vol = _avg_vol * input(1.5,title="Multiple of avg vol to consider relative volume as being high",type=input.float)
__lowerOfOpenClose = min(open,close)
_wickRatio_lower = (__lowerOfOpenClose - low) / (high - low)
entry_signal1 = volume > _relative_vol
entry_signal2 = ATR_volat < avg_ATR_volat + std_ATR_volat and ATR_volat > avg_ATR_volat - std_ATR_volat
// }


alert_per_bar(msg)=>
    prefix = "[" + syminfo.root + "] "
    suffix = "(P=" + tostring(close) + "; atr=" + tostring(ATR_volat) + ")"
    alert(tostring(prefix) + tostring(msg) + tostring(suffix), alert.freq_once_per_bar)

// MAIN:
if within_timeframe
    if strategy.position_size > 0 and strategy.position_size[1] > 0 and (stop_loss_price/stop_loss_price[1]-1) > 0.005
        alert_per_bar("TSL raised to " + tostring(stop_loss_price))

    // EXIT ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::    // placed before entry, will re-enter if stopped out
	exit_msg = close <= strategy.position_avg_price ? "stop loss" : "take profit"
	if strategy.position_size > 0 and TSL_source <= stop_loss_price
        strategy.close(ENUM_LONG, comment=exit_msg)

    // ENTRY :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	if entry_signal1 and entry_signal2// and entry_signal3
		entry_msg = strategy.position_size > 0 ? "adding" : "initial"
		strategy.entry(ENUM_LONG, strategy.long, comment=entry_msg)

// CLEAN UP:
if strategy.position_size == 0
	stop_loss_price := float(0)