Well darn it.

Had a detailed response ready to go and found that GG does not save drafts. 
POS. Movin on.

The upshot was I tried predicting tick data (see attachment) with a model 
pretty much identical to the one given here with little real success.
It would only resolve if I removed all of the discontinuities in the data - 
that came to over 20% of the data)
The resulting "fantasy" set failed to predict trends that were not in the 
set with (15% success rate maximum)

The conclusion I came to is that actual tick data (which is aggregate of 
all trading) is not predictable with the given model.
NNs (certainly backprop) just try to spline a curve through a training set 
of input/ouput exemplars.
Tick data simply does not seem to provide such a curve. Equivalent to 
stating what is obvious - stock markets are unpredictable from moment to 
moment).

However one approach that occurred to me was rather than using aggregate 
tick data, rather use historical data from a given single brokerage that is 
known to use automated trading.

Rather than trying to learn a dog-breakfast of influences given by 
aggregate data, non-aggregated direct data coming direct from a automated 
trading algo should prove to be a likely subject for machine-learning.

However, if John Nash was correct then these systems would deliberately 
make bad trades in order to be less predictable. Can't do too much of that 
though :)

There are plenty of examples in Java of backprop. It is well known, and 
since you are using a known library I doubt there are errors in it, other 
than sub-optimal coding.

Historical FIX data (non-aggregated direct trading transactions) is 
generally not published anywhere. The model being explored here would be 
very useful if it were.

Cheers!

Dominic Cerisano









On Sunday, August 5, 2012 2:27:35 PM UTC-4, frye wrote:
>
> Hey all, 
>
> This post is a fork of a thread in the post "community interest in 
> machine 
> learning<https://groups.google.com/forum/?fromgroups#!topic/clojure/heBrnBuUGqs>".
>  
> Some of us were starting to take a deep dive into 
> clojure-encog<https://github.com/jimpil/clojure-encog> and 
> I thought it would be a good idea to have a new thread for that. 
>
> So I took a look at the way 
> encog-java<https://github.com/encog/encog-java-core>
>  (what clojure-encog <https://github.com/jimpil/clojure-encog> wraps) 
> loads tick data into it's system. There is a 
> YahooFinanceLoader<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/loader/YahooFinanceLoader.java>that
>  pulls csv data from a URL. But it assumes that prices only have a 
> daily granularity. Now, the encog-java system seems to have the concept of 
> granularity going down to the second (see 
> here<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/util/time/TimeUnit.java>).
>  But 
> all of it's market loaders and list of ticks, seem to stop at a time 
> granularity of daily. See the LoadedMarketData 
> source<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/loader/LoadedMarketData.java>,
>  
> which uses a daily-biased 
> MarketDataType<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/ml/data/market/MarketDataType.java>.
>  Obviously, 
> that's not enough if we want to calculate on a second or sub-second 
> interval. Ultimately the YahooFinanceLoader will give us a list of 
> LoadedMarketData, which assumes daily price ticks. 
>
> What I need to know is can I give the encog neural net a list of tick data 
> that has second or sub-second intervals? Back over the clojure-encog, the 
> thing that normalizes input data, the 
> make-data<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L41>function
>  only deals with doubles (not a list of tick data entries). The make-trainer 
> and 
> train<https://github.com/jimpil/clojure-encog/blob/master/src/clojure_encog/training.clj#L137>functions
>  seem to iterate for the number of strategies that you've 
> specified. But I can't see in 
> BackPropogation<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/back/Backpropagation.java>or
>  it's 
> superclass<https://github.com/encog/encog-java-core/blob/master/src/main/java/org/encog/neural/networks/training/propagation/Propagation.java>,
>  
> where that tick data is actually processed (init and iteration methods seem 
> to just setup a background process). So I'm left wondering how I can give 
> the core encog neural-net a list of tick data that has a second or 
> sub-second granularity? 
>
>
> Hmmm 
>
> Tim Washington 
> Interruptsoftware.ca 
> 416.843.9060 
>
>  

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to