Open pengzh313 opened 1 year ago
Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
Overall, great package! Very fun and interesting to use.
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
Estimated hours spent reviewing: 1.5
The package overall looks great! Concise and does what it says on the label. A few potential improvements:
docs=True
that when set to True
prints the explanation of the table/plot so people don't have to switch between the README.md and their implementation of your package when they're not familiar with it, or when they use your package in an educational setting.Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
Estimated hours spent reviewing: 1.5
As mentioned in the R package equivalent, very interesting package and great work overall! My comments are as follows:
get_data
to download the data of the stock sticker prior to running the other functions. Otherwise the user is left with a long error message to decipher. I noticed you have mentioned something like this in the details about the moving_average
function, but not for the other functions, alternatively you could build this into the function to have an error message that is more clear to the user. get_data
function, I noticed that running the get_data
function a second time, after already loaded the a csv for a given stock sticker, this function overwrites this file if I use it again to request data for a new stock sticker. What if a user wanted to review the stock information for more than one stock sticker at the same time? If this was the intent, perhaps a warning could be added into the documentation for this. moving_average
function, can more detailed description be provided for the argument size? Current it says: "size : int: The size of the period that we're interested in", is this period size in days, months or years? Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
Estimated hours spent reviewing: 1.5
Some badges are missing, specially the test coverage and documentation ones would be nice (specially since your documentation is well rendered and complete in sphinx format and hosted on Read the Docs)
Interactivity would be incredible in this package, the plots could use it to explore the specific prices at specific times.
I agree with @LisaSeq a more specific size indication in calc_moving_avg.py would be great for specificity.
After installing and when I pasted your examples (in the Usage portion of the README) and running it threw an error with DATE, it cleared after I ran a second time and functioned correctly but wanted to mention it (For reference I am on a Mac M2, using VSCode and the 573 environment)
The vignette is missed, it would have helped understand how to use your function and how it can be used in the context of stock analysis (and even maybe show how a Bollinger band is useful!)
While doing several tests with different I noticed it was hard to visualize the differences between plots (maybe adding a grid behind the data would help visualize the actual x and y values for the datapoints)
I agree with @RenzoWijn the axis labels show the wrong date formats in the moving average plots
Well done! The package is well constructed and includes good documentation in each of the functions. It is easy to use (experimented with a few stocks and it performed nicely). The only suggestions I have are the ones mentioned in the comments (specially the interactivity).
Submitting Author: Ruslan Dimitrov (@RussDim), Robin Dhillon (@robindhillon1), Peng Zhang (@pengzh313), Chenyang Wang (@wakesyracuse7) All current maintainers: (@RussDim, @robindhillon1, @pengzh313, @wakesyracuse7) Package Name: stocksignals One-Line Description of Package: Calculate and plot buy/sell signal indicators for a stock, including 200-day price moving average, 10 vs 20-day price moving average, and 20-day Bollinger bands. Repository Link: https://github.com/UBC-MDS/StockSignals Version submitted: v0.0.7 Editor: TBD Reviewer 1: Renzo Wijngaarden (@Hawknum) Reviewer 2: Wilfred Hass (@WilfHass) Reviewer 3: Lisa Sequeira (@LisaSeq) Reviewer 4: Daniel Merigo Silos (@merigo) Archive: TBD
Version accepted: TBD Date accepted (month/day/year): TBD
Description
Scope
For all submissions, explain how the and why the package falls under the categories you indicated above. In your explanation, please address the following points (briefly, 1-2 sentences for each):
Who is the target audience and what are scientific applications of this package?
A stock market investor who are interested in identifying stock buy/sell signals with 200-day price moving average, 10 vs 20-day price moving average, and 20-day Bollinger bands can use this package to calculate and plot a selected stock for given signals.
Are there other Python packages that accomplish the same thing? If so, how does yours differ? There are multiple packages related to utilizing stock price data. For example, past projects in UBC MDS DSCI524 have explored various transformations to help analyzing stocks like this one: https://github.com/UBC-MDS/stockAnalyzer. Other packages like this one https://github.com/UBC-MDS/Stock-Price-Trend-Volatility-Analysis have explored volatility analysis. The aim of this package is to explore specific technical analysis indicators and streamline the process by providing a hands-on package which can be used in daily stock analysis. Furthermore, this package will help streamline the process in order to help automation of the basics of stock screening.
If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tag
the editor you contacted:Technical checks
For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:
Publication options
JOSS Checks
- [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: Do not submit your package separately to JOSS*Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?
This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.
Code of conduct
Please fill out our survey
P.S. *Have feedback/comments about our review process? Leave a comment here
Editor and Review Templates
The [editor template can be found here][Editor Template].
The [review template can be found here][Review Template].