SOM: cooking methods - page 8

 
Sych:

Can I see the full report (header)? The bottom part has been cut down.

I updated it.

alexeymosc:

It's cool. What is the strategy? Is the deal closed by the number of bars (by time) or otherwise?

Now each signal is processed separately. I.e. opened when a skewed neuron falls out, closed after a certain amount of time.
 

Got it. Skewed probably means with a probability deviation of 50%? And the closing condition is tied to each neuron? What's skewed? 55%? 60%?

 
alexeymosc:

Got it. Skewed must mean with a probability deviation of 50%? And the closing condition is tied to each neuron? What's skewed? 55%? 60%?

Yeah. About a factor of 1.5, which is about 60\40 -- here's a piece of code:

{
   if (positive/(negative + 1.0) > 1.5 && count > 3)
   {
      OpenBuy(Magic, TP, SL, TradeLot);
   }
   
   if (negative/(positive + 1.0) > 1.5 && count > 3)
   {
      OpenSell(Magic, TP, SL, TradeLot);
   }
}

Found a little bug... It'll be back to normal soon.

 
Great!
 
TheXpert:

Updated.

There is optimism but not much.

You can improve these figures:

Averageprofitable transaction121.33losing trade-130.51
Maximum numbercontinuous wins (profit)17 (1227.10)Continuous losses (loss)11 (-2390.10)

?

I.e. - either reduce the average losing trade relative to the profitable one, or reduce the number of continuous losses.

I understand that this is OOS, but what you teach is how it will behave.

Perhaps correcting the error discovered will improve the result, it will be interesting to see.

 

Folks, expert advice on SOM is needed.

Specifically interested in how to control the distribution of the number of patterns across clusters.

 

Good afternoon!

I haven't had proper internet access for a week. I am writing late.

I read it here: http://www.eicstes.org/EICSTES_PDF/PAPERS/The%20Self-Organizing%20Map%20(Kohonen).pdf

The problem of optimal distribution of input vectors over the cells of a CCS, first of all, depends on adequate training of the CCS. Kohonen writes that the number of training iterations must be at least 500 times the number of neurons in the network! I.e. if we train a network of 100 neurons (10 by 10), the number of iterations must be at least 50 000. Frankly speaking, training such a network on a usual PC, provided the input vector is very big (say, 40), will take several days. The heuristic suggested by Kohonen is that there should be at least 10,000 iterations of training. That's too many, IMHO, but as an option we can reduce the size of the input vector and see what happens.

The second point, related to SCS learning, from the same article, is that the size of input vector doesn't affect the number of learning iterations, i.e. everything depends on PC power.

Thirdly, the radius of neuron training, as suggested in the article, should initially be very large (you can do it more than half of the ACS diameter) to set the basic "topological order" on ACS; then the radius is reduced inversely proportional to the number of iterations up to 0, that is when correction of weights of just one neuron takes place. At the same time the original topological order established at the beginning of training is not broken, but in local areas of the map it is refined. See there.

One more thing related to the learning is a step of learning that should also be big at the beginning (about 1) and then decrease inversely proportional to the number of iterations, and the function of the step dependence on the number of iterations passed may be both linear and nonlinear. At the end of training the step remains very small for a long time, less than 0.01, to fine tune the LCS.

The article also talks about preprocessing data for training, but in the application to speech and image recognition. In our case it's a time series, so we have to dig elsewhere. I know there has been a lot of discussion about applying SOM to time series.

 

On what basis do you believe that SOM is even possible in autotrading?

In order to focus your vision on something, you need to know what it is.

On historical data (which is what you want the network to learn from) there are an almost infinite number of possible price movements. How should the network figure out for itself what to do and what to pay attention to?

Imagine a child with countless toys around it. Despite the countless toys, (or rather, that's why) the child will never know that this toy is a car and that one is a teddy bear. You, as a parent, should first tell/tell your child that this toy is called a car and several times let your child try to find this particular toy amongst the others. The child will then be able to identify the car and never confuse it with the teddy bear.

The SOM can only be triggered if the net knows what it is targeting, only then can it focus its vision. This could be by identifying a vehicle licence plate number or by the automatic translator searching for the right word/phrase. However, you will first have to teach the network to recognise numbers or words, and only then let it be free to swim.

What do you want/can you offer the network on the stream of historical data? And what are you counting on?

Reason: