VWAP-Strategie basierend auf Z-Distanz


Erstellungsdatum: 2023-11-10 12:02:19 zuletzt geändert: 2023-11-10 12:02:19
Kopie: 0 Klicks: 803
1
konzentrieren Sie sich auf
1617
Anhänger

VWAP-Strategie basierend auf Z-Distanz

Überblick

Die Strategie basiert auf LazyBears Z-Distanz-VWAP-Indikator, um zu bestimmen, ob ein Überkauf oder Überverkauf erfolgt, indem der Preis mit der Z-Distanz des VWAP berechnet wird, und einen Einstieg durchgeführt wird. Die Strategie enthält die EMA-Gehaltslinie und die Z-Distanz-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr-Rückkehr.

Strategieprinzip

  1. Berechnung der VWAP-Werte
  2. Z-Distanz zwischen Preis und VWAP berechnet
  3. Setzen Sie eine Überkauf- und eine Überverkauf-Linie auf
  4. Wenn die schnelle Linie größer als die langsame Linie ist, ist die Z-Distanz niedriger als die Übersell-Linie, und die Z-Distanz ist höher, wenn sie über die 0-Achse geht
  5. Platzieren, wenn Z über die Überkauflinie liegt
  6. Stop Loss Logik hinzugefügt

Schlüsselfunktionen:

  • calc_zvwap: Berechnung des Z-Abstands zwischen dem Preis und dem VWAP
  • VWAP-Wert: vWp (hlc3)
  • FastEma ist ein deutsches Internet-Netzwerk, das sich mit den Themen “fastEma” und “fastEma” befasst.
  • Schnell, aber sicher.

Analyse der Stärken

  1. Überkaufe und Überverkäufe sind intuitiver mit Z-Distanz
  2. Ein EMA-Filter und ein falscher Durchbruch verhindern, dass man eingeklemmt wird
  3. Es ist möglich, dass sich der Trend durch eine Zunahme der Anlage auswirkt.
  4. Die Risiken werden mit Stop-Loss-Logik kontrolliert.

Risikoanalyse

  1. Sicherstellen, dass die Parameter wie Überkauf-Überverkaufsposition, EMA-Zyklus usw. vernünftig eingestellt sind
  2. Z liegt hinter den Indizes und könnte einen wichtigen Kauf- und Verkaufspunkt verpassen
  3. Die Gefahr von Verlusten wird durch die Zulassung von Gewinne erhöht.
  4. Die Stop-Loss-Position muss vernünftig eingestellt werden.

Die Lösung:

  1. Optimierung der Parameter durch Rückmessung
  2. Zusätzliche Indikatoren in Kombination mit Filtersignalen
  3. Rationalisieren Sie die Aufschlagbedingungen
  4. Dynamische Anpassung der Stop-Loss-Position

Optimierungsrichtung

  1. Optimierung der EMA-Zyklusparameter
  2. Verschiedene Überkauf- und Überverkaufskriterien
  3. Hinzufügen von anderen Indikatoren zum Filtern von Signal-Rauschen
  4. Verschiedene Arten der Verlustbewältigung
  5. Optimierung der Einstiegs-, Aufnahme- und Stop-Loss-Logik

Zusammenfassen

Die Strategie nutzt die Z-Distanz, um die Beziehung zwischen dem Preis und dem VWAP zu bestimmen, und kombiniert EMA-Filter-Geräuschsignale, um Trendchancen zu erfassen. Die Strategie erlaubt es, Trends zu verfolgen, während das Stop-Loss-Risiko eingestellt wird. Durch die Optimierung von Parametern und die Aufnahme anderer Indikatoren kann die Strategie-Stabilität verbessert werden.

Strategiequellcode
/*backtest
start: 2022-11-03 00:00:00
end: 2023-11-09 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/
// © mohanee

//@version=4
//This is based on Z distance from VWAP by Lazybear
strategy(title="ZVWAP[LB] strategy", overlay=false,pyramiding=2, default_qty_type=strategy.fixed, default_qty_value=3,    initial_capital=10000, currency=currency.USD)
length=input(13,"length")

calc_zvwap(pds, source1) =>
	mean = sum(volume*source1,pds)/sum(volume,pds)
	vwapsd = sqrt(sma(pow(source1-mean, 2), pds) )
	(close-mean)/vwapsd


upperTop=2.5  //input(2.5)
upperBottom=2.0  //input(2.0)
lowerTop=-0.5  //input(-0.5)
lowerBottom=-2.0 //input(-2.0)

buyLine=input(-0.5, title="OverSold Line",minval=-2, maxval=3)
sellLine=input(2.0, title="OverBought Line",minval=-2, maxval=3)

fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)

stopLoss =input(5, title="Stop Loss",minval=1) 

hline(0, title="Middle Line", linestyle=hline.style_dotted, color=color.green)

ul1=plot(upperTop, "OB High")
ul2=plot(upperBottom, "OB Low")
fill(ul1,ul2, color=color.red)
ll1=plot(lowerTop, "OS High")
ll2=plot(lowerBottom, "OS Low")
fill(ll1,ll2, color=color.green)
zvwapVal=calc_zvwap(length,close)
plot(zvwapVal,title="ZVWAP",color=color.purple, linewidth=2)


longEmaVal=ema(close,slowEma)
shortEmaVal=ema(close,fastEma)  

vwapVal=vwap(hlc3)


zvwapDipped=false

for i = 1 to 10
    zvwapDipped := zvwapDipped or zvwapVal[i]<=buyLine

longCondition=  shortEmaVal > longEmaVal  and zvwapDipped and  crossover(zvwapVal,0)

barcolor(longCondition ? color.yellow: na)

strategy.entry(id="ZVWAPLE", long=true,  when= longCondition  and strategy.position_size<1) 


//Add
strategy.entry(id="ZVWAPLE", comment="Add", long=true,  when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(zvwapVal,0)) 


//calculate stop Loss
stopLossVal =  strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01)

strategy.close(id="ZVWAPLE",comment="SL Exit",    when=close<stopLossVal)   //close all on stop loss

strategy.close(id="ZVWAPLE",comment="TPExitAll",    qty=strategy.position_size ,   when= crossunder(zvwapVal,sellLine))   //close all      zvwapVal>sellLine