For MACDForCharting feature, I would say it is rather a huge project. Instead of aiming of such huge target in a single shoot
Coding -> Testing -> Submit for Code Reviewing -> Go back to Coding Step after Reviewing -> MACDForCharting Launched
This might have a huge risk of failing. Also, it takes long time to enjoy the fruit, morale may went low during the development process.
Instead, I would like to see the following development iteration. Define a small tasks to achieve for every development iteration Those tasks should be small enough to achievable within 1-2 weeks. Examples are :
Coding-> Testing-> Submit for Code Reviewing-> Go back to Coding Step after Reviewing-> Options dialog box for MACD
Coding-> Testing-> Submit for Code Reviewing-> Go back to Coding Step after Reviewing-> Data structure to hold MACD result
Coding-> Testing-> Submit for Code Reviewing-> Go back to Coding Step after Reviewing-> Yellow rectangle box to display MACD
Coding-> Testing-> Submit for Code Reviewing-> Go back to Coding Step after Reviewing-> Handling mouse movement to move around yellow box
This will be much better, as we may see small improvement every one or two weeks.
To avoid this feature to break anything in stable line, I suggest that we perform the development in Named Branch. http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branching-with-named-branches (Bookmark feature is not supported in sourceforge yet http://sourceforge.net/apps/trac/sourceforge/ticket/15951)
Once we fully tested the particular branch and happy with it, we will integrate it back to trunk.
Every-time after your several times check in, and you are happy with the small improvement, you may submit the code patch to me. I will be very happy to review it, and sync it with mercurial in sourceforge.
To know more about mercurial used in sourceforge, please refer to http://sourceforge.net/apps/mediawiki/jstock/index.php?title=Hacking
Take note that, all the changeset applied for MACD, will be done on branch "MACD"
I am referring to the changeset of
1) Please apply a proper alignment and space, and follow the coding convenient of JStock. For example, there should be a space after "if".
2) For a menu item which pop up a dialog box, the name should be ended with "…"
3) Can we have comment, why we need to have MACD in a special "if" block?
1) Can we have a dialog box similar to
At current moment, I feel there isn't a need to include a full length of explanation of MACD to users.
2) Take note that, the behavior of MACD is different from RSI. In Yahoo, if we plot 14 days RSI, followed by 24 days RSI, 2 graphs will be shown.
However, if we plot 14 fast period + 7 slow period MACD, followed by 24 fast period + 14 slow period MACD, only 1 graphs will be shown. The previous "14 fast period + 7 slow period" will be removed, before "24 fast period + 14 slow period MACD" is drawn.
Another regarding the license of source code. For every new created source code, please include GPL 2 license at the beginning of the source code, including your copyright notice.
Opps. Another typo. For the 2nd link, I am referring to
I don't understand what do you mean in saying this:
"However, if we plot 14 fast period + 7 slow period MACD, followed by 24 fast period + 14 slow period MACD, only 1 graphs will be shown. The previous "14 fast period + 7 slow period" will be removed, before "24 fast period + 14 slow period MACD" is drawn." should I implement like in the yahoo way?
Here is what I mean, after you plot 14 fast period + 7 slow period MACD, here is what you will be getting.
After that, you continue to plot 24 fast period + 14 slow period, without removing previous 14 + 7 explicitly. However, you will not see both graph on the screen. JStock will automatically erase the previous graph, to ensure there is always one graph being shown for MACD. Here is the screen.
I had committed your code to MACD branch, without any modification.
However, please take note on the few things.
(1) In JStock, we view coding convention and style as a very important stuff, as it will affect the maintainability of our code code. Here is the basic coding style guideline.
By looking at your committed code, we found out that there are still room for improvement.
(2) We realize the yellow information box doesn't re-size itself, after we clear the MACD indicator. See :
Before clearing MACD.
After clearing MACD. The yellow box should re-size itself to fit to the content. Currently, it is not.
(3) We realize that when performing zooming, the y-axis scale should scale accordingly, according to current maximum and minimum displayed value.
Before zooming. Scale looks OK.
After zooming. Y axis scale should adjust accordingly.
For "After clearing MACD. The yellow box should re-size itself to fit to the content. Currently, it is not. " -> I mean width of the yellow box is not adjusted accordingly. Height is OK.