Commit Graph

113 Commits

Author SHA1 Message Date
Michael Handschuh 6532d4b253 Remove SignalAnalysisResults
We're not putting signal scores directly on the signal object so this result
type is no longer needed.
2017-12-12 15:26:20 -05:00
Michael Handschuh 13b6d6eae3 Initial implementation of signal analysis
This commit provides the required infrastructure for analyzing algorithm generated
signals. The analysis of signals is mainly performed via ISignalScoreFunction which
computes scores for a signal. The SignalAnalysisContext provides contextual information
regarding the analysis of a particular signal object and also allows for the storing
of arbitrary state by consumers -- scoring functions can benefit greatly from having
this state tracked (consider any iterative function, or maybe just some heavy calcs to
be persisted between function invocations).
2017-12-12 14:01:44 -05:00
Michael Handschuh f0e86572e4 Add SignalScore.UpdatedTimeUtc
This saves off the last time the signal scores were updated so we know how
recent the scores actually are.
2017-12-12 12:33:47 -05:00
Michael Handschuh 36311be93f Remove ISignal, add Signal.GeneratedTimeUtc
This abstraction point is completely unwarranted. The signal object is really
just a DTO and it's extensible as it is currently defined. This also allows us
to enforce certain behaviors, such as internal set of GeneratedTimeUtc.

Removes GeneratedTimeUtc from the result object as it's now directly on the signal.
2017-12-12 11:57:03 -05:00
Michael Handschuh ae18fdaf77 Handle closing signals in default signal handler
Indented formatting for 'signal-results.json'.
Add GeneratedTimeUtc to SignalAnalysisResult (this will soon be moved to ISignal where it belongs).
2017-12-12 11:08:30 -05:00
Michael Handschuh 60ddbca0e4 Update signal handler to persist signals
Revert changes to result handlers from previously persisting signals in there.
Minor changes to the signal analysis result class.
2017-12-12 09:18:32 -05:00
Michael Handschuh cd13f77db7 Add signal scoring objects
These objects define and hold results from signal analysis
2017-12-12 08:56:20 -05:00
Michael Handschuh d4674e6f73 Signal.PercentChange doc update, ToString to include Id 2017-12-12 08:56:20 -05:00
Michael Handschuh d0b7c9b31e Make ISignal.Period a required field
Requiring a period here forces signal models to place a time frame on
when their signal is valid. This also allows consumers of signals to
have some expectation of when a prediction should come to fruition.
2017-12-10 08:41:29 -05:00
Michael Handschuh ca9d5182a0 Add ISymbol.Id unique identifier
This guid uniquely identifies a signal instance
2017-12-10 08:41:29 -05:00
Michael Handschuh c264132447 Move json serialization attributes to inteface
It's not unreasonable to think users will provide their own ISignal implementation
and we'll want them all behaving by the same serialization rules to make consumption
much easier.
2017-12-08 10:07:54 -05:00
Michael Handschuh 7e63f2ae42 Add SignalCollection and ISignal.Clone
SignalCollection groups signals by the time they were generated.
This will be used as a transport medium out of the algorithm.
2017-12-08 10:07:54 -05:00
Michael Handschuh 24cebd2aa1 Move signal/target data structures to common
Since these are really just data structures they belon in the common library. Also,
it stands to reason that we'll want to reuse them in other components, such as the
result handler.
2017-12-08 10:07:54 -05:00