Montag, 15. Oktober 2018, 18:11 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Yoggi

unregistriert

1

Dienstag, 31. März 2009, 17:07

VWAP (Volume Weighted Average Price)

Hallo,

kann jemand die Programmierung für den Volume Weighted Average Price (VWAP) zur Verfügung stellen? Ich hab in der Onlinehilfe gelesen, dass man sich den VWAP mit MarktPlus anzeigen lassen kann, das habe ich bislang aber nicht.
Erläuterung:
Der VWAP errechnet sich aus dem addierten Volumen aller Trades eines bestimmten Zeitraumes (jeweils pro Tag neu gerechnet ab Markteröffnung) geteilt durch die in diesem Zeitraum gesamt gehandelte Stückzahl. VWAP = Geldumsatz / Stückumsatz

Ich würde damit gerne mal was ausprobieren.
Ich würde mich freuen, wenn jemand den schonmal geschrieben hat
Alles Gute
Yoggi

Hier noch ein link mit der Formel und Erklärung: http://en.wikipedia.org/wiki/VWAP

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

2

Donnerstag, 2. April 2009, 22:26

guckst Du hia was IB alles kann:
http://www.interactivebrokers.de/de/trad…hp?ib_entity=de

wenn Du selber rechnen willst, must Du Tickdaten benutzen, sonst wird das nix.
close*volume
und davon die Summe seit Tageswechsel geteilt dur die Summe Volume seit Tageswechsel.

Denke so sollte es gehen, könnte aber seeeehr langsam werden, ja nach Tickanzahl.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

3

Donnerstag, 21. Mai 2009, 13:08

Hallo Christian,

näherungsweise wirst Du es auf kleiner Bargröße (1-5 Minuten) auch so noch halbwegs genau hinbekommen:

Quellcode

1
2
calc bars:BarsSince(Tageswechsel(),1);
SumVar((high+low)/2*Volume(),bars)/SumVar(volume,bars)


Soweit ich das in Markt+ übrigens richtig verstanden habe, kannst Du Dir den VWAP im Markttiefefenster des Level-II Orderbuches anzeigen lassen und nicht den Verlauf über den Tag.
Zumindestens habe ich nichts diesbezügliches im Handbuch gefunden.

PS. Meiner Meinung nach sagt der Indikator aber in den Eurexfuturs so ab 18 Uhr nicht mehr sehr viel aus, da das Volumen im Handel danach drastisch austrocknet.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Yoggi

unregistriert

4

Freitag, 22. Mai 2009, 09:32

Hallo Lenzelott,
dank Dir!
Alles Gute
Yoggi

Andi

unregistriert

5

Mittwoch, 20. November 2013, 22:10

Division durch Null

Hi,

nun habe ich die Berechnung mal ausprobiert. Ich verwende die Daten von TP, trotzdem habe ich anscheinend im Volumen ab und zu ein 0. Um die Division durch 0 abzufangen habe ich folgendes geändert. Fällt euch noch eine bessere Lösung ein (mal abgesehen davon, dass ich meine historischen Daten mal durch schauen muss)?


calc TagesBeginn: MIN(Abschnitt(y, 1, k, m), 1);
calc bars:BarsSince(TagesBeginn,1);
SumVar((high+low)/2*If(Volume()>0,Volume(),0.0000000000000000000000001),bars)/(If(SumVar(volume,bars)>0,SumVar(volume,bars),0.0000000000000000000000001))

Vielen Dank

Andi

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

6

Mittwoch, 20. November 2013, 22:21

trotzdem habe ich anscheinend im Volumen ab und zu ein 0.


Kann es sein, dass das Problem immer direkt am Tageswechsel auftritt?
Da sollte bars eigentlich 0 sein und daher evtl. das Problem.

Oder hast Du 0 Volums in den Taipan Daten?
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

7

Mittwoch, 20. November 2013, 22:25

Sinnvoller wäre dafür dann wohl so was:

Quellcode

1
CumSince(Volume(), tageswechsel(), volume())


mein aktueller VWAP Indikator schaut dazu wie folgt aus:

Quellcode

1
2
3
4
calc vol_:CumSince(volume, Tageswechsel(), volume);
calc averagevolclose_:CumSince(volume*(high+low+close)/3, Tageswechsel(), volume*(high+low+close)/3);

averagevolclose_/If(vol_=0,1,vol_)
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lenzelott« (20. November 2013, 22:30)


Andi

unregistriert

8

Donnerstag, 21. November 2013, 00:45

Hallo Lenzelott,

Danke für Deine Antwort. Das Problem mit der 0 habe ich noch nicht weiter betrachtet.

Eigentlich müsste ja Dein VWAP und meinem praktisch Deckungsgleich sein (wenn man das Close weg lässt). Ist er aber nicht!

Durch den Sartwert CumSince geht das aktuelle Volumen zweimal mit ein! Ist das wirklich gewollt - oder habe ich was falsch verstanden?

Gruß

Andi


calc TagesBeginn: MIN(Abschnitt(y, 1, k, m), 1);
calc vol_:CumSince(volume, TagesBeginn, volume);
calc averagevolclose_:CumSince(volume*(high+low)/2, TagesBeginn, volume*(high+low)/2);
averagevolclose_/If(vol_=0,1,vol_)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Andi« (21. November 2013, 00:51)


Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

9

Donnerstag, 21. November 2013, 01:07

Durch den Sartwert CumSince geht das aktuelle Volumen zweimal mit ein!


Ich behaupte das ist nicht so, nur wegen des Startwertes funktioniert es...

Einfach mal die unterschiedlichen Formeln Charten und vergleichen
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Lenzelott« (21. November 2013, 01:31)


Andi

unregistriert

10

Donnerstag, 21. November 2013, 12:15

Hallo Lenzelott,

Du hast recht das Volumen geht nicht zweimal mit ein. Ich verstehe trotzdem nicht wieso die beiden Berechnungen unterschiedliche Werte raus geben.

Gruß

Andi






Berechnungsformel Rot:
calc TagesBeginn: MIN(Abschnitt(y, 1, k, m), 1);
calc bars:BarsSince(TagesBeginn,1);
SumVar((high+low)/2*Volume(),bars)/SumVar(volume,bars)


Berechnungsformel Grün:
calc TagesBeginn: MIN(Abschnitt(y, 1, k, m), 1);
calc vol_:CumSince(volume, TagesBeginn, volume);
calc averagevolclose_:CumSince(volume*(high+low)/2, TagesBeginn, volume*(high+low)/2);
averagevolclose_/If(vol_=0,1,vol_)

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

11

Donnerstag, 21. November 2013, 12:38

calc bars:BarsSince(TagesBeginn,1);


bars ist 0 am Tageswechsel und der 1. Bar des Tages wird daher nicht berücksichtigt.
Deswegen ist ja auch der von Dir irrtümlich monierte Resetwert notwendig in cumsince().
If you think it´s expensive to hire a professional, wait until you hire an amateur.

Andi

unregistriert

12

Donnerstag, 21. November 2013, 12:56

Danke jetzt habe ich es verstanden

Lenzelott Männlich

Erleuchteter

Registrierungsdatum: 30. Dezember 2002

Beiträge: 2 901

Wohnort: Giessen

13

Donnerstag, 21. November 2013, 13:31

Ich habe das ganze auch mals als Indikator im Download Bereich abgelegt.
If you think it´s expensive to hire a professional, wait until you hire an amateur.