Keywords

1 Introduction

During the last decade, the world stock market cap has soared by 133% (from 28 trillion to 65 trillion), especially in emerging markets, e.g., the market cap of China and India has exploded by 1479% and 639%, respectively [12]. Thus, driven by the market power, stock market prediction plays an increasingly important and even crucial role in economic decisions [10]. However, since the financial markets are complex and nonlinear systems which can be influenced by various factors, such as economic cycle and government policies, it is extremely challenging to do an accurate stock forecasting, and thus has attracted considerable worldwide attention, in both the research and financial community. Subsequently, a variety of forecasting approaches have been developed [4, 11, 13, 15, 21, 23, 25, 30, 31]. Among these approaches, researchers have recently shown a renewed interest in using Fuzzy Time Series (FTS) models for stock forecasting [4, 7, 17, 29], as FTS possesses the universal approximation property in nature and has thus been successfully used in many financial applications in the real world [1, 9, 14, 16]. The concept of FTS was first proposed by Song and Chissom to forecast university enrollment. In a financial context, Teoh et al. [22] presented a model that incorporated trend-weighting into the FTS models, and applied their model to the forecasting of empirical stock markets. Chen and Chen [7] proposed a method for forecasting the Taiwan Stock Index (TAIEX) based on FTS and fuzzy variation groups. By using high-order fuzzy logical relationships, Chen et al. [6] also presented an approach to forecast the TAIEX and inventory demand based on FTS. Zhou et al. [33] developed a portfolio optimization model combining information entropy and FTS to forecast stock exchange in the Chinese financial market. Uslu et al. [24] considered the recurrence number of the fuzzy relations in the defuzzification stage of FTS, and applied their method to spot gold forecast. Rubio et al. [17] proposed weighted FTS model based on the weights of chronological-order and trend-order to forecast the future performance of stock market indices.

Although these approaches show reasonable success for stock data forecasting, they have several drawbacks. On one hand, it is known that the length of intervals, as well as weighting factor, influence forecast accuracy in FTS, which leads to many models that are very sensitive of parameters settings in real world applications [17]. On the other hand, most models only depend on the trend indicated by the fuzzy logic group, but ignore the large influence of the short-term trend developed by neighbor series. In addition, few methods consider the stock volume, one of the most important metrics in stock analysis, which may also weaken the forecast accuracy, since stock volume is closely related with the trend.

In this research, the initial goal is to address the above weaknesses of existing FTS models. To this end, we first develop and deploy a novel evolutionary algorithm, Sine-Cosine adaptive Human Learning Optimization (SCHLO), to optimize the FTS and required parameters automatically and globally. Human Learning Optimization (HLO), which was presented recently by [26], is an evolutionary computation method, and has been successfully used to resolve optimization problems in different applications [3, 27, 28]. Thanks to the simple but effective structure of HLO, it does not need the gradient information in its optimization procedure, which is very suitable for the FTS optimization. Second, new weighted operators that consider the frequency based chronological order and stock volume are analyzed and integrated with SCHLO for optimization. Finally, a novel short-term trend repair operation is developed to complement the final forecasting process.

The rest of this paper is organized as follows. In Sect. 2, we briefly review the basic concepts of a fuzzy time series forecasting model [5]. In Sect. 3, we introduce the concepts of standard HLO techniques proposed by Wang et al. [26] and present the proposed SCHLO. In Sect. 4, we propose a new FTS forecasting approach based on optimal partitions of intervals and hybrid weighting factors, obtained concurrently by SCHLO. In Sect. 5, we analyze the experimental results of the proposed FTS forecasting method and several state-of-the-art weighted fuzzy time series methods, when applied to forecasting several stock indices (Dow Jones Index (DJI), German Stock Index (DAX), Japanese Stock Index (NIKKEI) and Taiwan Stock Index (TAIEX)). Finally, the conclusions are discussed in Sect. 6.

2 Fuzzy Time Series Forecasting Model

Over the past decade, many fuzzy time-series models have been proposed by following Song and Chissom’s definitions [18,19,20]. Among these models, Chen [5] proposed a model by applying simplified arithmetic operations in forecasting algorithms, replacing the complicated max-min composition operation introduced by Song and Chissom, and thus is more effective. Since we will modify Chen’s model to a new weighted FTS, we first illustrate its procedure, as follows:

  1. Step 1

    Partition the universe of discourse. First, according to the min and max values in the dataset, define the \({D_{min}}\) and \({D_{max}}\) variables and choose two arbitrary positive numbers, \({D_1}\) and \({D_2}\), to partition the universe of discourse, i.e., \(U = \{ {D_{\min }} - {D_1},{D_{\max }} + {D_2}\} \). Then divide this universe into equal length intervals, i.e., \({u_1},{u_2},...,{u_m}\).

  2. Step 2

    Define the fuzzy sets and fuzzify the historical data. Using the defined sub intervals in former step, the fuzzy sets are defined as Eq. (1) and each historical datum in time series is fuzzified its corresponding fuzzy set accordingly.

    $$\begin{aligned} {A_i} = \frac{0}{{{u_1}}} + \frac{0}{{{u_2}}} + ... + \frac{{0.5}}{{{u_{i - 1}}}} + \frac{1}{{{u_i}}} + \frac{{0.5}}{{{u_{i + 1}}}} + ... + \frac{0}{{{u_m}}},i=1,2,3,...m. \end{aligned}$$
    (1)
  3. Step 3

    Establish fuzzy logic relationships (FLRs) and fuzzy logic relationship groups (FLRGs). FLRs are grouped based on the current states of the data according to [5].

  4. Step 4

    Calculate the forecast values. Let \(F(t)=A_i\). If there is only one fuzzy logical relationship in the sequence, and \({A_i} \rightarrow {A_j}\), then \(F(t+1)\), the forecast output, equals \({A_j}\). If \({A_i} \rightarrow {A_1},{A_2},...,{A_k}\), then \(F(t+1)\) equals \({A_1},{A_2},...,{A_k}\). If there are no fuzzy relationship groups, then the forecast output equals \({A_i}\).

  5. Step 5

    Defuzzify. If the forecast \(F(t + 1) = {A_{i1}},{A_{i2}},...,{A_{ik}}\), the forecast values at time t+1 are calculated as

    $$\begin{aligned} Final(t + 1) = \frac{\sum _{j=1}^kM_{ij}}{k} \end{aligned}$$
    (2)

    where \({{M_{i1}}, {M_{i2}},...,{M_{ij}}}\) are the defuzzified values of \({A_{i1}},{A_{i2}},...,{A_{ik}}\), respectively, and \(Final(t+1)\) is the final forecast.

3 Sine-Cosine Adaptive Human Learning Optimization Algorithm

Recently, the human learning optimization algorithm [26], inspired by human learning mechanisms, has been successfully applied to real world applications, in large part due to its excellent global search ability and robustness to various problems [3, 27, 28]. In this section, we first introduce the basic techniques of HLO, and then propose a sine-cosine adaptive mechanism to further improve the performance of HLO. In HLO, three learning operators, i.e., the random learning operator, individual learning operator, and social learning operation, are used to yield new candidates to search for the optima, which simulates the human learning process. The detailed processes can be found in [26].

In summary, HLO emulates three human learning operators (random, individual, and social) to yield new solutions and search for the optima. These learning operators are based on the knowledge stored in the individual knowledge data (IKD) and individual knowledge data (SKD), and can be further integrated and operated to improve learning as shown in Eq. (3).

$$\begin{aligned} {x_{ij}} = \left\{ \begin{array}{l} Rand(0,1),\mathrm{{ }}0 \le rand() \le pr\\ i{k_{ipj}},\mathrm{{ }}pr < rand() \le pi\\ s{k_{qj}},\mathrm{{ }}else \end{array} \right. \end{aligned}$$
(3)

where pr is the probability of random learning, and the values of (\(pi-pr\)) and (\(1-pi\)) represents the probabilities of performing individual learning and social learning, respectively.

Sine-Cosine Adaptive Mechanism. In this paper, we observe that the individual and social learning parameter pi as well as random learning parameter pr are extraordinarily important, since they directly determine the balance between exploration and exploitation, and consequently influence the performance of the algorithm. However, it is not easy to set the optimal parameters of meta-heuristics, as they usually depend on the problems. Moreover, it is very hard to get rid of local optima in some types of complex optimization problems. Thus, it is very critical to determine when to increase (decrease) pi and pr for the purpose of increasing (decreasing) the exploration/exploitation ability. As a result, the monotonous linear adaptive mechanisms are not that effective. Therefore, we propose a new adaptive mechanism based on sine-cosine to dynamically strengthen the search efficiency and relieve the effort of the parameter setting, as follows

$$\begin{aligned} pr = p{r_{\mathrm{{mid}}}}\mathrm{{ + }}p{r_{\mathrm{{mid}}}} \times \cos \;\mathrm{{(}}Ite + r)\ \end{aligned}$$
(4)
$$\begin{aligned} pi = p{i_{\mathrm{{mid}}}} + p{r_{\mathrm{{mid}}}} \times \sin \;(Ite + r) \end{aligned}$$
(5)
$$\begin{aligned} r = \left\{ \begin{array}{l} 0,\mathrm{{ 0}} \le rand() \le 0.5\\ 1,\mathrm{{ }}else \end{array} \right. \end{aligned}$$
(6)

where \(pr_{mid}\) and \(pi_{mid}\) are the middle point of fluctuation of pr and pi, respectively, and Ite is the current iteration number. Figure 1 shows the change of the parameters. In this way, various combinations of pr and pi are generated, so that the SCHLO is able to intelligently handle the complex optimization cases.

Fig. 1.
figure 1

Adaptive mechanism for pi and pr.

4 A Novel Weighted Fuzzy Time Series Method Based on SCHLO

In this section we propose a novel weighted FTS forecasting method based on SCHLO (WFTS-SCHLO). Specifically, we first propose several modifications for the basic FTS method, by introducing three types of weights. These weights not only consider the frequency based chronological order, but also take the stock volume into consideration. In addition, based on our observation that there is a big influence of the short-term trend developed by neighbor series, we further propose a novel short-term trend repair operation to complement the forecasting process. Then, SCHLO is utilized to find the optimal partitions of intervals in the universe of discourse and the optimal weight factors simultaneously, based on the historical training data. Next, using the optimal settings obtained by SCHLO, the proposed model fuzzifies the historical data on each trading day into fuzzy sets, and establishes fuzzy logic relationship groups. Finally, based on the fuzzified historical testing data, the model performs defuzzification and uses the obtained optimal weight factors to calculate the forecast outputs.

4.1 The Proposed Weighted FTS Model

In our model, the trapezoidal fuzzy numbers [32] with midpoints of intervals [5] are used to analyze and derive the forecast values.

Definition 1

A fuzzy number A is said to be a trapezoidal fuzzy number, \(A = (a,b,c,d)\), if its membership function has the following form:

$$\begin{aligned} {\mu _{\widetilde{A}}}(x) = \left\{ {\begin{array}{*{20}{c}} {0,\;\;x < a}\\ {\frac{{x - a}}{{b - a}},\;\;a \le x \le b}\\ {1,\;\;b \le x \le c}\\ \begin{array}{l} \frac{{d - x}}{{d - c}},\;\;c \le x \le d\\ 0,\;\;x > d \end{array} \end{array}} \right. \end{aligned}$$
(7)

Definition 2

Let \(A = ({a_1},{b_1},{c_1},{d_1})\) and \(B=({a_2},{b_2},{c_2},{d_2})\) be trapezoidal fuzzy numbers, and let \(\lambda \) be a real number. Then,

$$\begin{aligned} A \oplus B = ({a_1} + {a_2},{b_1} + {b_2},{c_1} + {c_2},{d_1} + {d_2}) \end{aligned}$$
(8)
$$\begin{aligned} \lambda A = \left\{ {\begin{array}{*{20}{c}} {(\lambda {a_1},\lambda {b_1},\lambda {c_1},\lambda {d_1})\;\;\lambda \ge 0}\\ {(\lambda {d_1},\lambda {c_1},\lambda {b_1},\lambda {a_1})\;\;\lambda \le 0} \end{array}} \right. \end{aligned}$$
(9)

Assume there are m intervals, which are \(u_1=[d_1,d_2]\), \(u_2=[d_2,d_3]\), ... , \(u_{m-1}=[d_{m-1},d_{m-2}]\),\(u_m=[d_m,d_{m+1}]\). The fuzzification process is as shown in Eq. (10) and the standard FLRs and FLRGs are determined according to [5].

$$\begin{aligned} \mathrm{{fuzzify}}(F(t)) = {A_i}\;if\;u({A_i}) = \max [\;u({A_z})]\;\;for\;all\;z \end{aligned}$$
(10)

where where \(z=F(1), F(2), ... , F(t)\) is the datum at time t; and \(u(A_z)\) is the degree of membership of F(t) under \(A_z\).

Following the above preparations of FTS, we next turn to the proposed weighting rules that consider the frequency based chronological order and the stock volume. Generally, in our model, the forecast of stock is based on the trend of FTS in two aspects. One is pattern trend (PT), and the other is long-term trend (LT). Specifically, for PT, suppose we have observed the stock data \(F(t)=s_t\) for \(t=1,2,...,N\), and they are all assigned to a fuzzified number \(A_i\) (e.g., \(fuzzify(F(N))=A_n)\) Our task is to predict \(F(N+1)\). After prediction, we will check if the same fuzzified number exists in the historical data, if it is equal to \(A_n\), and where the trend continues afterwards. As for LT, it means the model will not focus on F(N) but on the whole history data since as economy, the stock has its own cycle [2]. The long-term trend, LT, will now focus on F(N), but instead on the entirety of the historical data, as, similar to the economy, stocks have their own cycle. Thus, we scan all the FLRs and determine what the current cycle is, and what follows. Since the frequency, chronological order, and stock volume all have a large influence over the trend in stock time series data, we propose the following weight factors for getting an accurate PT and LT.

PT Weight Factor. Let \(F(t_0)\rightarrow A_p\) and \(F(t_0+1)\rightarrow A_q\), with \(V(t_0)\) and \(V(t_0+1)\), where V stands for stock volume, have three relationships, \(t_0 \rightarrow t_0+1\), \(V(t_0) \rightarrow V(t_0+1)\) and \(A_p \rightarrow A_q\). The weight associated with this FLR, based on the two data points, is defined as follows:

$$\begin{aligned} w_d= V(t_0) *V(t_0+1)*sqrt[t_0+(t_0+1)] \end{aligned}$$
(11)

Considering there may be lots of data in a logical relationship, \(A_p \rightarrow A_q\), the total weight associated with this FLR is calculated as

$$\begin{aligned} {w_r} = \sum \nolimits _j {{w_d}} \end{aligned}$$
(12)

where j is the number of data combinations that fall into the same FLR. On the other side, \(A_p\) can also constitute many FLRs, namely \(A_p \rightarrow A_{k1}\), \(A_p \rightarrow A_{k2}\),..., \(A_p \rightarrow A_{ko}\), which forms PT. Therefore, we have the PT weight as:

$$\begin{aligned} w_{PT}^k = \frac{{w_r^k}}{{\sum \nolimits _o {{w_r}} }} \end{aligned}$$
(13)

where o is the number of FLRs \(A_p\) constitutes.

LT Weight Factor. Inspired by the jump theory in [17], here we use a jump metric together with the proposed \(w_d\) to measure the LT. Let \(\delta =p-q\) be the jump between a FLR. Obviously, \(\delta \) can be positive, negative, and zero (representing a rise, fall, and square position in stock context). Similar to PT, the total weight associated with \(\delta \) is calculated as

$$\begin{aligned} {w_\varDelta } = \sum \nolimits _c {{w_d}} \end{aligned}$$
(14)

where c is the number of data combinations formed from the same jump. Accordingly, The LT weight is calculated as

$$\begin{aligned} w_{LT}^k = \frac{{w_\varDelta ^k}}{{\sum \nolimits _b {{w_\varDelta }} }} \end{aligned}$$
(15)

where b is the number of deltas.

Based on the proposed PT and LT weight factors, we have a rough picture of the current trend and are able to do the forecast. However, we find it is not enough to only take PT and LT into account, since these two metrics are not closely related to the short-term trend. In other words, although they have considered the chronological order, there is still the possibility that the movement of a stock is largely influenced by a short period, only within a few days (e.g., the stock may continue to drop after a nose dive caused by “black swan event”). Therefore, the short-term trend should be carefully addressed. To this end, we propose a short-term trend repair operation to further improve the forecast performance.

Short-Term Trend Repair Operation. Let \(s_l\) be the length of a short-term period we observed before the last observed data. Thus, we have the sequence \(F(t-s_l)\), \(F(t-s_l+1)\),..., \(F(t-1)\), F(t) and the corresponding fuzzified numbers A. Here, we use a differential strategy to recognize the short-term trend as follows.

$$\begin{aligned} \begin{array}{l} Diff\left( {{s_l}} \right) = \mathrm{{ }}{A_{\left( {t - {s_l} + 1} \right) }} - \mathrm{{ }}{A_{\left( {t - {s_l}} \right) }}\\ Diff\left( {{s_{l\mathrm{{ - }}1}}} \right) = \mathrm{{ }}{A_{\left( {t - {s_l} + 2} \right) }} - \mathrm{{ }}{A_{\left( {t - {s_l}\mathrm{{ + }}1} \right) }}\\ ......\\ Diff\left( 2 \right) = \mathrm{{ }}{A_{\left( {t - 1} \right) }} - \mathrm{{ }}{A_{\left( {t - 2} \right) }}\\ Diff\left( 1 \right) = \mathrm{{ }}{A_{\left( t \right) }} - \mathrm{{ }}{A_{\left( {t - 1} \right) }} \end{array} \end{aligned}$$
(16)

Then, we have a differential sequence \(DS= [Diff(s_l), Diff(s_l-1) ,..., Diff(2)\), Diff(1)] for this short-term period, and to simulate three closing quotations (rise, fall, and square position), DS is simplified to the following form:

$$\begin{aligned} DS_c = \mathrm{{ }}\left[ \begin{array}{l} cmp\left( {Diff\left( {{s_l}} \right) ,0} \right) ,\mathrm{{ }}cmp\left( {Diff\left( {{s_l} - 1} \right) ,0} \right) \mathrm{{ }}\\ , \ldots ,\mathrm{{ }}cmp\left( {Diff\left( 2 \right) ,0} \right) ,\mathrm{{ }}cmp\left( {Diff\left( 1 \right) ,0} \right) \end{array} \right] \end{aligned}$$
(17)

where cmp is the compare operation with 0, and it only returns −1, 0 and 1. The short-term trend is now represented by \(DS_c\), and the model will learn from historical data to output the result of this trend. Using a similar step, we have:

$$\begin{aligned} \begin{array}{l} D{S_{c1}} => \mathrm{{ }}cmp\left( {Diff{{\left( 0 \right) }_1},0} \right) \\ D{S_{c2}} => \mathrm{{ }}cmp\left( {Diff{{\left( 0 \right) }_2},0} \right) \\ ...\\ D{S_{cn}} = > \mathrm{{ }}cmp\left( {Diff{{\left( 0 \right) }_n},0} \right) \end{array} \end{aligned}$$
(18)

where Diff(0) is the differential result between the fuzzified numbers A of next days data and the last observed data in sequence. In other words, it is the output of the current differential sequence. Since some DSs in the historical data may be the same, the model groups all the same DSs by simply adding the corresponding output, and finally the model gets the comprehensive trend results.

4.2 Fuzzy Forecast Outputs

In the forecasting step, we propose to use a linear combination of the above weight strategies and repair operation, as shown in Eq. (19).

$$\begin{aligned} \widetilde{A}_{t + 1} = \alpha \widetilde{A}_{PT} + \beta \widetilde{A}_{LT} + \gamma \widetilde{A}_{RO} \;\;(\alpha + \beta + \gamma = 1) \end{aligned}$$
(19)

where

$$\begin{aligned} \widetilde{A}_{PT} = w_{PT}^1{A_{k1}} \oplus w_{PT}^2{A_{k2}}\;...\; \oplus w_{PT}^o{A_{ko}} \end{aligned}$$
(20)
$$\begin{aligned} \widetilde{A}_{LT} = w_{LT}^1{A_{t + \varDelta 1}} \oplus w_{LT}^2{A_{t + \varDelta 2}}\;...\; \oplus w_{LT}^b{A_{t + \varDelta b}} \end{aligned}$$
(21)
$$\begin{aligned} \widetilde{A}_{RO} = {A_{t + Diff}} \end{aligned}$$
(22)

Here, t means the time stamp of last observed data.

4.3 Algorithm of the Weighted Fuzzy-Trend Time Series Method Based on SCHLO

In this section, SCHLO is utilized to find the optimal partitions of intervals in the universe of discourse and the optimal weight factors simultaneously. The proposed weighted FTS forecasting method proceeds as follows:

  1. Step 1

    Let the universe of discourse U of the main factor be \([D_{min}-D_1, D_{max}+D_2]\), where \(D_{max}\) and \(D_{min}\) are the maximum value and the minimum value of the historical training data of the main factor, respectively; \(D_1\) and \(D_2\) are two proper positive real values to let the universe of discourse U cover the noise of the testing data of the main factor.

  2. Step 2

    Specify the control parameters of SCHLO, such as population size, \(pr_{mid}\), and \(pi_{mid}\). Randomly initialize the population, including interval length m and three weights \(\alpha \), \(\beta \), \(\gamma \) for optimization. The fitness values are calculated and initial IKDs and SKD are generated. Each individual does the following sub-steps to calculate the fitness value:

    1. (a)

      Based on the generated interval length, define the fuzzy sets on U and fuzzify the historical data as Eq. (10).

    2. (b)

      Establish FLRs from the fuzzy time series, and FLRs and FLRGs according to [5].

    3. (c)

      Defuzzify and calculate the forecast outputs. Specifically, the algorithm first calculates PT and LT weight factors and derives the \(\widetilde{A}_{PT}\) and \(\widetilde{A}_{LT}\) according to Eqs. (20) and (21), respectively. Then, short-term trend repair operation is performed to get \(\widetilde{A}_{RO}\). Based on the obtained \(\widetilde{A}_{PT}\), \(\widetilde{A}_{LT}\), and \(\widetilde{A}_{Ro}\) SCHLO generates \(\alpha \), \(\beta \), \(\gamma \). The model can calculate \(\widetilde{A}_{t+1}\) according to Eq. (19). Finally, the one-step forecast will be the middle point of the interval-valued mean of \(\widetilde{A}_{t+1}\).

    4. (d)

      Calculate the fitness value, i.e. the root mean square error (RMSE), as follows:

      $$\begin{aligned} RMSE = \sqrt{\frac{{\sum \nolimits _{t = 1}^{{t_{\max }}} {{{({F_t} - {R_t})}^2}} }}{{{t_{\max }}}}} \end{aligned}$$
      (23)

      where \(t_{max}\) denotes the number of trading days of the historical training data, \(F_t\), denotes the forecast value of the validation datum on trading day t, and \(R_t\) is the actual value of the historical validation datum on trading day t.

  3. Step 3

    Improvise new individuals. The new solutions are yielded by performing the adaptive pr and pi rule and the learning operators shown in Eqs. (36).

  4. Step 4

    Calculate the fitness of new candidates. The fitness value of new individuals is computed as steps 2.1–2.4.

  5. Step 5

    Update the IKDs and SKD according to the fitness of the new individuals.

  6. Step 6

    Check the termination criterion. If the termination criterion is not met, steps 3–5 will be repeated to keep searching for the optimal parameters, otherwise go to the next step.

  7. Step 7

    Based on the obtained optimal parameters, the model performs steps 2.1–2.4 to calculate the final forecast on the test datasets.

5 Real-World Experiments and Results

5.1 Stock Market Data and Experimental Settings

To evaluate the forecast accuracy of the proposed model, we analyze data sets from four major world trading markets (DJI, DAX, NIKKEI and TAIEX) obtained from Yahoo Finance (https://finance.yahoo.com/). For every stock market index, we work with daily values collected over three years, from January 2014 to December 2016. Data from 2014 and 2015 are used for training and validation, and data from 2016 is for testing. Similar to mainstream financial forecast methods, a daily rolling horizon strategy is applied. Specifically, this strategy preserves the size of each training set by eliminating the first observation and by including the last observed quotes. Thus, the FLRs and FLGs, as well as all weighting factors, are then re-evaluated. To compare the performance of the WFTS-SCHLO, four state-of-the-art fuzzy time series methods with various strategies [8, 17, 29, 31] as well as a standard HLO based WFTS (WFTS-HLO) are used for comparison. The performance is measured by RMSE, Eq. (23). All of the parameters for the baseline models are set to those reported in the initial publications. For our model, WFTS-SCHLO, the population size is 30, \(pi_{mid}\) is set to 0.1, and \(pr_{mid}\) is set to 0.9. The number of iterations is fixed at 300. All implementations are in Python, and programs were run on a PC with an Intel Core CPU i7-4790 @3.60 GHz and 16 GB RAM.

Fig. 2.
figure 2

Time series of the daily observations and the daily forecasts provided by WTFS-SCHLO for the different markets in year 2016.

Table 1. The Forecast performance (RMSE) of four stock markets
Table 2. Adjusted p-values of the pairwise comparison of the RMSE forecast errors between WTFS-SCHLO with different models

5.2 Results and Analysis

Figure 2 shows the time series of the daily observations and the daily forecasts provided by WTFS-SCHLO for the year 2016. Table 1 shows that WTFS-SCHLO consistently outperforms the baseline methods, having the lowest RMSE for its predictions in every market, which means our model has the best forecasting accuracy. In order to analyze the forecast error achieved by each method, a statistical analysis was carried out. Table 2 shows the adjusted p-values of the pairwise statistical comparisons of the RMSE forecast errors, performed through the paired t-test at Holm’s adjustment. The statistical analysis reveals that there are significant differences between our model and the other forecasting methods, in favor of the proposed model.

6 Conclusion

In this paper, an intelligent weighted fuzzy time series model is presented for financial market forecasting. The model utilizes a sine-cosine adaptive human learning optimization algorithm to search for the optimal parameters, improving forecasting performance. New weighted operators that consider frequency based chronological order and stock volume are analyzed and integrated with SCHLO to determine the effective universe discourse and intervals. Furthermore, a novel short-term trend repair operation is developed to complement the final forecasting process. Finally, the proposed model is applied to data from four major world trading markets, the Dow Jones Index, the German Stock Index, the Japanese Stock Index, and Taiwan Stock Index. The experimental results demonstrate that the proposed model consistently outperforms its counterparts, in terms of accuracy. The easy implementation and effective forecasting performance suggest our proposed model could be a favorable market application prospect.