StockFetcher Forums · General Discussion · Volume * Price Momentum Oscillator (V*PMO)<< 1 2 >>Post Follow-up
mystiq
650 posts
msg #71016
Ignore mystiq
1/28/2009 2:09:46 AM

Brief Description:
The Volume * Price Momentum Oscillator is a combination of price and volume indicators.
Definitions, Formulas:
As its name states, Volume * Price Momentum Oscillator (V*PMO) is both a price and volume momentum oscillator. To compute it we

First, calculate today’s V*PMO input value:

VTODAY * (CPTODAY – CPTODAY-1)

where

VTODAY = today’s volume
CPTODAY = today’s closing price
CPTODAY-1 = yesterday’s closing price

Then smooth the values using a 3-day exponential moving average (EMA):

V*PMO = EMA(3)(VTODAY,VTODAY-1,VTODAY-2)

Positive Development Calculation:
For this TAI, a new positive development (NPD) occurs when V*PMO crosses over zero. That is, when V*PMO x+ 0.

This TAI is no longer positive when V*PMO crosses under zero. In other words, when V*PMO x- 0.

If this TAI is still positive tomorrow it will no longer be new, but will be a Cumulative Positive Development (CPD)

“As with simple momentum indicators generally, when the n-period exponential moving average of V*PMO is positive, momentum is bullish, so we buy, entering or initiating a long position.”

========>any coding suggestions?


chetron
2,817 posts
msg #71019
Ignore chetron
modified
1/28/2009 8:45:59 AM

MAYBE...

updated with mri charting.... = )
needs to go to hundredths to work right???????????????
nope, something's not right, var6 can't be zero if var4 is below 0.....
the old, " must have 1 filtering line" requirement thing.......
still not right....
divide by a 1000???????????

Fetcher[



SET{VAR1,CLOSE 1 DAY AGO}
SET{VAR2,CLOSE - VAR1}
SET{VAR3,VOLUME * VAR2}
SET{VAR4a,CEMA(VAR3,3)}
set{var4,var4a / 1000}

set{var5,count(var4 above 0,1)}
set{var6,count(var4 below 0,1)}

draw var6 on plot var5
DRAW VAR4 ON PLOT VAR3

add column var4
add column var6


]



wcurtis
54 posts
msg #71026
Ignore wcurtis
1/28/2009 4:22:01 PM

Many thanks to you two guys! S F has a lot of unselfish talent. This is a NICE FILTER !


springhill
74 posts
msg #71030
Ignore springhill
modified
1/28/2009 5:42:11 PM

Neat indicator!

How about adding a calculation to this so that when VAR 4 goes negative it charts to the bottom of the plot and when it goes positive it charts to the top of the plot? Maybe even color red for bottom and color green for top? :) A True / False plot

This instead of plotting VAR3 and VAR4.

Or, if the to zero line were plotted one could more easily see the switch?

Possible?

The guys that provide the coding on this forum are exceptional!!!

springhill
74 posts
msg #71038
Ignore springhill
modified
1/28/2009 9:42:04 PM

Gave it try on doing what I suggested. Can be improved I'm sure.

Fetcher[

SET{VAR1,close 1 day ago}
SET{VAR2,CLOSE - VAR1}
SET{VAR3,VOLUME * VAR2}
SET{VAR4,CEMA(VAR3,3)}

set {true, count(VAR4 > 0, 1) }
set {false, count(VAR4 <= 0, 1) }

draw true on plot false

]



mystiq
650 posts
msg #71045
Ignore mystiq
1/29/2009 1:36:07 AM

CHETRON----->thanks for coding this filter--->great job-->great filter

chetron
2,817 posts
msg #71049
Ignore chetron
1/29/2009 6:37:12 AM

you all are very welcome. i see that springhill has the same problem as i did. i ended up having to do a "divide by 1000" to get a better response. i have updated the filter to plot your idea.

hth
enjoy



springhill
74 posts
msg #71051
Ignore springhill
1/29/2009 10:24:13 AM

I find that if I draw only one side of the True/False that it eliminates a lot of the "noise" to look at.

change from

DRAW VAR6 ON PLOT VAR5

to

DRAW VAR5



chetron
2,817 posts
msg #71058
Ignore chetron
1/29/2009 6:34:11 PM

IT IS STILL A TAD OFF. I THINK STOCKFETCHER HAS ISSUES WITH VERY BIG NUMBERS, THAT'S WHY MY DIVIDE BY A THOUSAND WORKS.

HTH



mystiq
650 posts
msg #71101
Ignore mystiq
1/31/2009 3:48:21 AM

CHETRON---> made a few adjustments:

SET{VAR1,CLOSE 1 DAY AGO}
SET{VAR2,CLOSE - VAR1}
SET{VAR3,VOLUME * VAR2}
SET{VAR4a,CEMA(VAR3,3)}
set{car4,var4a / 1000}

set{NPD,count(car4 crossed over 0 from below,1)}
set{NND,count(car4 touch 0 from below and reverse,1)}

draw car4 on plot car3

add column car4
add column NPD
add column NND

---->BUT...cannot get "set{NND,count(car4 touch 0 from below and reverse,1)}" to work...looking for "car4" to touch 0(zero) and THEN reverse without crossing 0(zero)....can you code this?

StockFetcher Forums · General Discussion · Volume * Price Momentum Oscillator (V*PMO)<< 1 2 >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


Copyright 2022 - Vestyl Software L.L.C.Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.