SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : TA-Quotes Plus -- Ignore unavailable to you. Want to Upgrade?


To: Johan Van Houtven who wrote (5364)7/12/1998 10:01:00 AM
From: Johan Van Houtven  Read Replies (1) | Respond to of 11149
 
Bob, problem fixed. Thank you for your help!

Looked at your parse-time error explanation again this morning after a good nights sleep and there it was: the perfect workaround!

I just have to enclose the max() function with an if...endif pair as follows:

if StartIndex <= 0 then
Println symbol, ",", StartIndex, ",", Max(-1, StartIndex, hi);
endif;

Take away the if...endif and the scan presents you with a syntax error "Day value must be less <= 0". Even while the StartIndex IS a negative number.

Sent the following bug report to Gary:

--- end of email to Gary ---

Please run the following scan:

// start of scan

input="test-stocks-in.lst";
output="test.lst";

integer i, Startindex;
DaysToLoad=2200;
StartIndex :=(DaysLoaded-1) * -1;

Println symbol, ",", StartIndex, ",", Max(0, StartIndex, hi);

// end of scan

on this "test-stocks-in.lst" containing the following symbols:

CATP
EMC
IM
AMCC
SCMM
BEST

You will note that you get an error message:

"Syntax error: Day value must be less <= 0"

The day value IS <= 0. You can easily check that in the following way:

Change the Println line to this:

Println symbol, ",", StartIndex;

Run the scan and you'll get this:

CATP ,-1326
EMC ,-1394
IM ,-424
AMCC ,-155
SCMM ,-190
BEST ,-195

All the StartIndex values are there, and they are all correctly negative numbers.

So the "Syntax error: Day value must be less <= 0" is INCORRECT.

Therefor the bug must be in the Max() parsing routine.

I used a workaround presented to me by Bob Jagow that makes the scan work. You have to enclose the Prinlln statement with and if endif as follows:

if StartIndex <= 0 then
Println symbol, ",", StartIndex, ",", Max(-1, StartIndex, hi);
endif;

Thank you.

--- end of email to Gary ---

Awesome program QPv2 and you guys in the thread, especially Bob, are just as awesome. Great thread guys. Thx.

Johan