I need a open source python app, preferably DJANGO framework with a MongoDB data repository for historical storage to replace a tool I've been using for a very long time, but will no longer serve my purpose. The tools is the CATZ program.
This tool creates a spectral analysis output file for data that is imported into it. I want a simpler application that only executes spectral analyses for two types of data: day and minute. The source data sets will be market data at either a day granularity or minute (intraday) granularity.
The deliverables of this project will be tested against my CATZ program outputs to ensure the application is creating the exact same results.
Here is a set of definitions from an analytical perspective to which this app must perform (note for this app, Frequency should be defaulted to 1 always):
Spectral Analysis determines the amplitude of cycles present at regular frequency intervals from a single time series. If the interval is 1 then the result is similar to a Fourier Analysis. If the frequency is more than 1 then it has finer measurements than Fourier Analysis. (Note for this app, frequency will be defaulted to 1)
This output has six columns of data. Firstly the number of cycles fitting into the full period being analysed. It goes up in steps of the value of the inverse of the & Frequency parameter (which might be set by default of 1) and usually. Column 2, the cycle period in units of the step of the selected folder. The next three columns are the sine, cosine and combined amplitudes found for that cycle period. The last column contains the Bartels test value which is the chance that such a cycle arose by chance. In general if this is less than 0.05 the cycleis probably real, and if it is less than 0.001 then it is very likely so. For moreinformation on Bartel's test seehttp://www.cyclesresearchinstitute.org/dewey/case_for_cycles.pdf
Here is the workflow the application must support:
1. select CSV (file will dictate whether min or day is in play - note all data is trading data; therefore, min = 0930-1600 then gap to next day + non-weekends & non-holiday. Day is non-weekend, non-holiday)
2. Take logs of each value to the base 10. Values must initially be positive
3. Execute spectral analysis as defined above
4. Create .csv flat file saved to desktop having the six columns described in speclog.csv, and also store to historical data repository for future reference
The application should store all previous studies, and make them available for recall via a simple webpage with hyperlinks to open and download to CSV. Naming convention for storing historical cycles: TickerSymbol_DateOfStudy_TimeOfStudy_Type(i.e. Day or Min).
Mock up UIs will be provided once a resource has been selected.
The final deliverable of the project is to load the application, all code, & database onto my private AWS environment and facilitate my testing of the app to satisfaction.
ALL code must be documented with psuedo code for each stance of code using English language. A data model diagram must be provided that matches the data repository. All data elements of that model must have a definition and laymen name associated in a separate dictionary document. The model & dictionary can be basic (i.e. excel, powerpoint, word -- not visio).
ALL SERIOUS Resources must type Mickey Mouse in the subject line of response in order to be considered - those that don't will be automatically tossed out.