Value Weighted Average
Show the volume weighted average
close
prices for the last week of March 2013:SELECT symbol, seq_search(day, seq_last_int(day)-5, seq_last_int(day)) as last_week, seq_sum(close@last_week*volume@last_week)/seq_sum(volume@last_week) as "vwap" FROM Quote WHERE symbol='IBM'; symbol last_week{} close{} volume{} vwap ------------------------------------------------------------------ IBM {20130325, 20130326, 20130327, 20130328} {210.740005, 212.360001, 210.889999, 213.300003} {3242463, 2300240, 3223381, 3752999} 211.843723
The volume weighted average is calculated by the formula
vwap = sum(close*volume) / sum(volume)
The table below sums the
close*volume
values (=2,652,089,151
) then divides by the sum ofvolume (=12,519,083)
:
Trade Date Close Volume Close*Volume 20130325 210.740005 3242463 683316668.8 20130326 212.360001 2300240 488478968.7 20130327 210.889999 3223381 679778815.9 20130328 213.300003 3752999 800514698 Sum 12519083 2652089151 vwap 211.843723 To verify:
2,652,089,151 / 12,519,083 = 211.843723
.To run this example
A sample script to demonstrate this
select
statement using xSQL can be run from thesamples/xsql/scripts/financial
directory with the following command:x 14