Back in November last year I posted about Random Vector Functional Link (RVFL) networks
here and
here. Since then, along with my recent work on
Oanda's API Octave functions and
Market/Volume Profile visualisation, I have continued looking at RVFL networks and this post is an update on this work.
The “random” in RVFL means random initialisation of weights that are then fixed. It seems to me that it might be possible to do better than random by having some principled way of weight initialisation. To this end I have used the
Penalised MATLAB Toolbox on features derived from my
ideal cyclic tau embedding function to at first train a
Generalized Linear Model with the
Lasso penalty and then the
Ridge penalty over thousands of sets of
Monte Carlo generated, ideal cyclic prices and such prices with trends. The best weights for each set of prices were recorded in an array and then the mean weight (and standard deviation) taken. This set of mean weights is intended to replace the random weights in a RVFL network designed to predict the probability of “price” being at a cyclic turning point using the above cyclic tau embedding features.
Of course these weights could be considered a trained model in and of themselves, and the following screenshots show “out of sample” performance on Monte Carlo generated ideal prices that were not used in the training of the mean weights.
The black line is the underlying cyclic price and the red, blue and green lines are the mean weight model probabilities for cyclic peaks, troughs or neither respectively. Points where the peak/trough probabilities exceed the neither probabilities are marked by the red and blue vertical lines. Similarly, we have prices trending up in a cyclic fashion
and also trending down
In the cases of the last two trending markets only the swing highs and lows are indicated. The reason for this is that during training, based on my “expert knowledge” of the cyclic tau features used, it is unreasonable to expect these features to accurately capture the end of an up leg in a bull trend or the end of a down leg in a bear trend – hence these were not presented as a positive class during training.
As I said above the motivation for this is to get a more meaningful hidden layer in a RVFL network. This hidden layer will consist of seven
Sigmoid functions which each give a probability of price being at or not being at a cyclic turn, conditional upon the type of market the input weights were trained on.
More in due course.