-
Notifications
You must be signed in to change notification settings - Fork 2
/
version2Plan.txt
155 lines (121 loc) · 5.7 KB
/
version2Plan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
Abstract
This document outlines a list of tasks intended for Version 2. It contains
planned rewrites for interfaces which have expanded beyond the original use and
are thus difficult to maintain, deferred bugs and future features.
Introduction
The structure for version 1 was well designed because it facilitated the
easy addition of many useful features and is fairly maintainable. So the goal
would be to have a similarly flexible design for version 2.
One danger this approach is that we risk falling victim to "Second System
Effect", an anti-pattern where by successor systems tend to try and include all
the features missing from version 1.
I mention this now, so I can keep it in mind and hopefully avoid Second System
Effect.
I've also started this document with the assumption that version 2 would be an
entirely new work, but there's nothing to prevent version 1 from being
successively refactored until it has the features/structure we want.
Scope
This document isn't intended / doesn't prevent any of these tasks being
implemented in version 1. It is merely for developer guidance, allowing a
developer to avoid spending hours on minor bugs when it may be fixed as part of
a larger piece of work.
Legend (by fabiogodoy):
[DONE] Already done in the fork
[ToBeRemoved] I don´t agree/see necessary the feature/fix
Tasks
1. A more general interface for data storage, hiding the implementation
details from the objects, whilst still allowing for other data stores.
Currently the type of stores supported are : java preferences, sql databases,
internal database. Future databases could include nosql databases, XML, JSON
etc.
The interface would allow storage all types of Venice objects, including
price data, equations, alerts, macros, preferences, index definitions etc.
[DONE] 2. Be less ASX centric.
We may deprecate all ordinaries table entirely, or place it under a
indeces menu.
3. Better support for the keyboard.
Deferred Bugs/Features
[DONE] 1. Ordinary are not filtered correctly #1528817
This problem arises out of the interaction between the quote cache and the
table. The quote cache doesn't care about the "flavour" of a symbol, and the
table display can only filter based on an equation. The bug is not severe enough
to warrant reworking large sections of both the quote and table code at this
time.
[DONE] 2. add (sic) a criteria for selectin (sic) symbols #1528799
This feature involves adding a "type" to a symbol. One difficulty is that
imported quotes don't have this data, and backward compatability must be
maintained.
Future Features for either Version 1 or 2
- Database
- When the cache expiry is triggered, preload most used symbols.
- Use of primary and secundary currencies
- The primary currency should be used for the value of your portfolio.
- Calculation of currency exchange rates.
- Database for all known instruments
- New data model with timestamps and market deepness
- Use of resources
- Reduce the memory footprint of PointAndFigure charts.
- Language
- Allow String variables to be declared in the Gondola language.
- Use of Gondola for writing indicators instead of indicators being hardcoded
in Java.
[ToBeRemoved] - Support for coding in CTL and MT4, EasyLanguage etc.
- Trading
- Support for splits, ex/cum dividend trading.
- Support for interest payments in portfolio.
- Support for brokers (e. g. PATS/IB). See feature request #891276.
- Support for fundamental analysis
- Calculation for options pricing, Greeks and futures. See feature request
#1550970.
- Use of 'intelligent' indicators that show the strength of a signal (e. g.
use a scale from 0 - 100 for a signal. If the chart crosses the SMA upwards
the signal is 75 ('buy'), if the chart crosses downwards the signal is
returns 25 ('sell'). Allow the user to define the worth of a signal.
- Many many more indicators.
[ToBeRemoved] - Speedtrader.
[ToBeRemoved] - Trading from charts.
[ToBeRemoved] - One click trading.
- Routines for money management
- Calclate the 'free' money of a portfolio.
- Charts
- Make chart levels an object instead of just an integer in a list.
(Required so that lines drawn in a chart across levels flip and scale
correctly)
- Colour preferences -> backgrounds, charts, lines etc.
- Different backgrounds for each chart.
- Usage of a ColorSelection dialog.
- Change the background with a popup menu showing a ColorSelection dialog
instead of using the Preferences dialog.
- Logarithmic axis skales.
- Zooming out step by step.
- Charting of the portfolio development and portfolio structure.
- Export charts to SVG.
- New chart types: Histogram and Heikin-Ashi
- Code
- Support of IDEs (Borland JBuilder 2005, Netbeans).
- Beautify the code (e. g. as an special ant task).
- Add api documentation of all (public) methods, constants and variables.
- Add more unit tests.
- User Interface, usability and i18n
[ToBeRemoved] - Change of the Layout (Metal, Windows, CDE).
- Predefined and definable workspaces (with more than one monitor).
- No need to restart after changing the language.
- Import/Export of paper trade settings. See feature request #3519382
- StatusBar with detailed description of tool tips.
- Manuals in all other supported languages.
- Review of the translations.
- Support of plugins
- Data Storage and export
- Encrypted storage of private data.
- Support for clouds
- Export and Import data to csv, xml ... with configuration
- Improve importing data from csv (e. g. import of many quotes for one
stock in a csv).
- Reports
- Reports of backtesting, portfolio etc. in HTML
- Online-Update
- Support of updates not of the whole program but the changed classes
authors:
mhummel
bromc
fabiogodoy