1
$\begingroup$

I am applying Neural network and SVM to predict buy-hold - sell signals. I have trained nn and SVM in R. I used nnet function to train NN and svm to train SVM. I provided 20,000 data points to train and 2000 data points to test. training data set contain list of 10-15 technical indciators and buy-sell-hold signals. The problem I am having is it is not predicting the buy -sell - hold signals with good accuracy on the testing data. I have used sigmoid function in nnet and radial function in SVM. Any suggestion, how to improve the accuracy of the prediction?

$\endgroup$
17
  • $\begingroup$ Use cross-validation or basically u need to find the best value of C and gamma to improve the accuracy of prediction. hope this helps... $\endgroup$ – lakesh Feb 21 '12 at 14:39
  • $\begingroup$ I tried various values of C and gamma varying between (1-100) for C and (0.001 - 1) for gamma. Still no sucess. $\endgroup$ – user395882 Feb 22 '12 at 5:05
  • $\begingroup$ sometimes the gamma values can go higher as well.. like 8... $\endgroup$ – lakesh Feb 22 '12 at 9:05
  • $\begingroup$ look at this qn..stackoverflow.com/questions/9047459/… it was posted by me... look at amro's ans... $\endgroup$ – lakesh Feb 22 '12 at 9:06
  • $\begingroup$ or you could use the grid.py for grid search.. $\endgroup$ – lakesh Feb 22 '12 at 9:29
3
$\begingroup$

I recommend reading "A Practical Guide to Support Vector Classification" by Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin

In the work I've done much lower values of C work better - in the range of $10^{-4}$ to $10^{-2}$. 1-100 is a pretty high value of C, at least for the data I've worked with, which means you are not allowing much 'slack' and so its not surprising that you are finding your model over-fits the data. I would recommend trying with much smaller values of C and in orders of magnitude increments. Another alternative is to try nu-SVM rather than C-SVM. The parameter nu ranges from 0 to 1 (.1 to .8 in practice) and is much more intuitive: .1 means a small proportion of your data points are support vectors (and therefore you have a narrow margin and little slack), .8 means a very large percent are support vectors (and therefore a wide margin and a good deal of slack).

$\endgroup$
3
$\begingroup$

Although not a direct answer to your question, are you sure that the 10-15 technical indicators you have chosen are the right ones or have the right look back periods etc? There are literally hundreds of indicators to chose from, and this combined with the choice of parameters gives you a "universe" of millions of different combinations of 10-15 indicators. Your problem might not be with the NN or SVM per se, but rather that your inputs are basically just random noise. Have you tested each of your chosen indicators separately and confirmed that they are statistically significant in any way? In my experience very few of the "standard" technical indicators pass any basic statistical or Monte Carlo test for significance, predictive ability etc.

$\endgroup$
2
  • $\begingroup$ Could you help me in identifying the right set of technical inicators. Even I was thinking there is some problem with the input indicators. Could you help me what criterion input technical indicator should follow? $\endgroup$ – param Feb 27 '12 at 16:09
  • $\begingroup$ My guess is that the "right" technical indicators are a well-guarded secret. Perhaps you could select 10 different types of indicators, and give each one 10 different combinations of parameters, which will give you 100 total inputs. $\endgroup$ – Zach Feb 27 '12 at 16:21
1
$\begingroup$

I have trained neural netowrk with 40-45 technical indicators but the problem comes as misclassification. My actual buy signals are predicted as sell signals and vice versa or hold signals are predicted as buy or sell signals and vice versa which does not help to devise a profitable strategy. I have tested across range of parameter buy no success. I am using combination of movig averages, RSI,MACD,BB,SMI,ADX,ret,sd,mean,return, cimullative return, CCI,CHV,Chaikain volatility, SAR and so on as input to the NN. Noise in the input indicatos causes hevoc.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.