A Hybrid Machine Learning System for Stock Market Forecasting

INTRODUCTION Stock market prediction is regarded as a challenging task in financial time-series forecasting. This is primarily because of the uncertainties involved in the movement of the market. Many factors interact in the stock market including political events, general economic conditions, and traders 'expectations. Therefore, predicting market price movements is quite difficult. Increasingly, according to academic investigations, movements in market prices are not random. Rather, they behave in a highly non-linear, dynamic manner. Also, the ability to predict the direction and not the exact value of the future stock prices is the most important factor in making money using financial prediction. All the investor needs to know to make a buying or selling decision is the expected direction of the stock. Studies have also shown that predicting direction as compared to value can generate higher profit (Chen, Leung, & Daouk, 2003). TIME SERIES ANALYSIS Forecasting, or predicting, is an essential tool in any decision-making process. Its uses vary from determining inventory requirements for a local shoe store to estimating the annual sales of video games. The quality of the forecasts management can make is strongly related to the information that can be extracted and used from past data. Time-series analysis is one quantitative method we used to determine patterns in data collected over time. Time-series analysis is used to detect patterns of change in statistical information over regular intervals of time. We project these patterns to arrive at an estimate for the future. Thus Time-series analysis helps us cope with uncertainty about the future. GENETIC ALGORITHM Genetic algorithms are search algorithms based on the mechanics of natural selection and natural genetics. They combine survival of the fittest among string structures with a structured yet randomized information exchange to form a search algorithm with some of the innovative flair of human search. In every generation, a new set of artificial creatures (strings) is created using bits and pieces of the fittest of the old; an occasional new part is tried for good measure. While randomized, genetic algorithms are no simple random walk. They efficiently exploit historical information to speculate on new search points with expected improved performance. Generally, genetic operations include: " crossover" , "mutation" and " selection" . "Crossover" operator: Suppose S1={s11, s12, . , s1n}, S2={s21, s22, . , s2n}, are two chromosomes, select a random integer number 0 r n, S3, S4 are offspring of crossover(S1,S2), S3={si | if i r, si S1, else si S2}, S4={si | if i r, si S2, else si S1}. "Mutation" operator: Suppose a chromosome S1={s11, s12, . , s1n}, select a random integer number 0 r n, S3 is a mutation of S1, S3={ si | if i r, then si=s1 i, else si =random(s1 i)}. "Selection" operator: Suppose there are m individuals, If m is even: no change If m is odd: i. take mean of the dataset. ii. Now, mutate each individual value with this mean iii. Match each newly generated population to the mean value if the bit value (up to r-random value used for mutation), then reject this data set. i.e. Consider other one. In the proposed system, we use the single point crossover and flip bit(bit string) mutation. Single Point Crossover: A single crossover point on both parents' organism strings is selected. All data beyond that point in either organism string is swapped between the two parent organisms. The resulting organisms are the children: [FIGURE 1 OMITTED] Flip-Bit Mutation: The mutation of bit strings ensue through bit flips at random positions. Example: 1 0 10 0 10 [down arrow] 11 01 01 1 0 The probability of a mutation of bits is I, where 1/l is the length of the binary vector. …