Note that this is basically the same function as function #2 except
using different columns.
The extra credit might look like this:
dub_old_activity=:verb define
if. 2={:$y do.
1 5#"1 y
else.
y
end.
)
Untested code, though...
--
Raul
On Mon, Mar 30, 2020 at 10:39 PM HH PackRat <[email protected]> wrote:
>
> Continuing on to function #3.....
>
> Stock data normally consists of 6 pieces of data: date, open, high,
> low, close, volume. Occasionally, early data for some stocks has no
> data for the opening price of the day. One technique that some data
> vendors use (in order to guarantee non-zero prices, which screw up
> charting software) is to replace the zero open price with the price of
> the close on the previous day. That is the purpose of function #3.
> Starting with row 1 (NOT row 0!), if the open (column 1) is zero,
> replace it with the close (column 4) of the *previous* day; otherwise,
> go on to the next row. You must use *explicit* code (NOT tacit code).
> If you have another approach, that's fine, too, as long as it's
> explicit code. I presume this function is relatively easy (but it
> would save me time, which is valuable in my hyper-busy life these days
> preparing for a lengthy, little-by-little residential move).
>
> As an example, the opening 0.00 price on 1990-03-02 below would be
> replaced with the 0.29 closing price on 1990-03-01.
>
> DATA SET C:
>
> 1990-03-01,0.00,0.31,0.29,0.29,428800
> 1990-03-02,0.00,0.29,0.29,0.29,313600
> 1990-03-05,0.00,0.31,0.29,0.29,1395200
> 1990-03-06,0.00,0.31,0.29,0.29,1152000
> 1990-03-07,0.00,0.31,0.29,0.31,854400
> 1990-03-08,0.00,0.31,0.29,0.29,227200
> 1990-03-09,0.00,0.31,0.29,0.31,547200
> 1990-03-12,0.00,0.31,0.29,0.29,1196800
> 1990-03-13,0.00,0.29,0.29,0.29,3372800
> 1990-03-14,0.00,0.29,0.29,0.29,134400
> 1990-03-15,0.00,0.31,0.29,0.29,3017600
> 1990-03-16,0.00,0.29,0.29,0.29,195200
> 1990-03-19,0.00,0.29,0.29,0.29,409600
> 1990-03-20,0.00,0.29,0.28,0.28,2982400
> 1990-03-21,0.00,0.28,0.23,0.26,11424000
> 1990-03-22,0.00,0.26,0.23,0.25,3043200
> 1990-03-23,0.00,0.28,0.25,0.27,3340800
> 1990-03-26,0.27,0.28,0.27,0.27,2348800
> 1990-03-27,0.27,0.27,0.26,0.26,1667200
> 1990-03-28,0.26,0.27,0.26,0.27,1104000
> 1990-03-29,0.27,0.27,0.26,0.26,275200
> 1990-03-30,0.26,0.26,0.25,0.25,787200
>
> If this were like high school math class, "extra credit" would be to
> incorporate code to replace a zero value in column 1 (open) of row 0
> with the value in column 4 (close) of the same row. (I'm sure I can
> do that, but if you want to throw it in to fill out the function, feel
> free!)
>
> A variation "super extra credit"(!) is the fact that, with really old
> data, sometimes only one piece of data exists for a given date (this
> is always assumed to be the close). "Your mission, should you wish to
> accept it", is to write code that will expand a data set in a
> "date,close" format to a "date,open,high,low,close" format by
> duplicating the close data. (Some charting software wants data to be
> in the latter format.) The latter format is also useful for merging
> old data with newer data already in that format.
>
> Yet again, thanks in advance for any and all help with this!
>
> Harvey
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm