I am creating Composites from NYSE market list. Reading back and plotting the composite values show a strange anomaly as shown in image below.
This happens with some lists and not others. The anomaly happens at differing times for various lists.
Lists that are OK: SP500, SP1500, Russell 1000.
List with problem: NYSE, Russell 2000, Russell 3000.
I have tried to insure data integrity going into ATC by doing 3 things (none helps):
- Insure symbol name is made up of alpha characteers only
- Zero blank values (Use Nz(Close) values as input to ATC
- Checked Pad and Align feature.
I tried limiting the number of issues put into ATC and this seems to help.
For example NYSE list contains about 3100 symbols. It works well if I use the first 2000 or last 2000 symbols. .... Because of the shape and timing of the anomaly, this makes no sense to me.
The code for writing ATC and read and plot are shown below. Black line id NYSE composite (symbol $NYA) and yellow line is data from ATC.
Read ATC and plot code
//File: DEV-ATC Test //August 18,2020 // // //This program compares the prices of various lists to look at problem areas // - The prices are not comparable on the actual basis, so the scales are different // * Actual prices are shown in Title // // The two plots are: // - Composite price symbol: $NYA // - Composite unweighted symbol from ATC: "~DEV-ATC Test", field "C" // // NYSE = Foreign("$NYA","C"); NYSE_Comp = Foreign("~DEV-ATC Test","C"); // // Plot(NYSE,"",colorblack,styleThick); Plot(NYSE_Comp,"",coloryellow,styleThick|styleOwnScale); // // Title = "NYSE ($NYA) " + WriteVal(NYSE,1.0) + EncodeColor(coloryellow) + " DEV-ATC Test " + WriteVal(NYSE_Comp,1.0);
Code to write ATC below
type or paste code here/ File: DEV - ATC code test // version 1.0 // August 18, 2020 // // //Version 1.0 - August 2020 // Purpose of this code is to create ATC issues for various symbol lists. // Some lists create extremely large values, seemingly at random // // AddToComposite( Nz(Close), "~DEV-ATC Test", "C", atcFlagDefaults ); // Buy = 0; Sell = 0;