├── 1.1 Financial-Prediction-CNN
├── README.md
├── code
│ ├── Financial-Prediction-2DCNN.ipynb
│ └── Financial-Prediction-CNN.py
├── data
│ └── stock.csv
└── images
│ ├── conv.gif
│ ├── model.png
│ └── pool.png
├── 1.2 Financial-Prediction-LSTM
├── README.md
├── code
│ └── Financila-Prediction-LSTM.py
├── data
│ └── stock.csv
└── images
│ ├── lstm_model2.png
│ ├── test.png
│ └── train.png
├── 1.3 Financial-Prediction-Random-Forest
├── README.md
├── code
│ └── Financial-Prediction-Random-Forest.py
├── data
│ └── stock.csv
├── doc
│ └── Predicting the direction of stock market prices using random forest .pdf
└── images
│ ├── model.png
│ ├── model_pic.jpg
│ ├── param.png
│ └── result.png
├── 1.4 Financilal-Prediction-ARMA
├── README.md
└── code
│ └── Financila-Prediction-ARIMA.ipynb
├── 1.5 Financial-Prediction-ARIMA
└── Financila_ARIMA_Prediction.ipynb
├── 1.6 Financial-Prediction-Muiti-Input-Conv1D
└── Multi_Input_Conv1D.ipynb
├── 1.7 Financial-Prediction-2DCNN
└── Financial_2DCNN_Prediction.ipynb
├── 1.8 Financial-Prediction-3DCNN
└── Financial_3DCNN_Prediction.ipynb
├── 2 Financial-Time-Similarity
├── README.md
├── code
│ ├── 2.1 pearson_correlation_coefficient.py
│ ├── 2.2 dynamic_time_wrapping.py
│ ├── 2.3 cosine_similarity.py
│ └── 2.4 similarity_time_series.py
├── data
│ ├── 000001.XSHE.csv
│ └── 000063.XSHE.csv
└── images
│ ├── dtw-alg.png
│ ├── dtw-draw.png
│ ├── dtw-draw2.png
│ ├── dtw-result1.png
│ ├── dtw-result2.png
│ ├── dtw1.png
│ ├── dtw2.png
│ ├── dtw3.png
│ ├── pcc-result1.png
│ ├── pcc-result2.png
│ ├── pcc1.png
│ ├── pcc2.png
│ └── pcc3.png
├── 3 Financial-Time-Others
├── README.md
├── code
│ ├── 3.1 calc_variance.py
│ ├── 3.10 kalmanfilter.py
│ ├── 3.11 calc_technical_indicators_formula.py
│ ├── 3.12 calc_technical_indicators_TA_LIB.py
│ ├── 3.2 confuse_matrix.py
│ ├── 3.3 corr.py
│ ├── 3.4 result_bar.py
│ ├── 3.5 result_plot.py
│ ├── 3.6 evaluation.py
│ ├── 3.7 normalization.py
│ ├── 3.8 roc.py
│ └── 3.9 confusion_matrix.py
├── data
│ ├── 000001.XSHE.csv
│ ├── 000063.XSHE.csv
│ └── 002253.csv
└── images
│ ├── bar.png
│ ├── candle.png
│ ├── cm.png
│ ├── corr.png
│ ├── kf.png
│ ├── matrix.png
│ ├── plot.png
│ ├── roc.png
│ └── sim.png
├── 4 Financial-Candle-Picture
├── README.md
├── data
│ └── 002253.csv
├── financial_candle_pic.py
└── train_pic
│ ├── 002253_0_01.png
│ ├── 002253_100_01.png
│ ├── 002253_101_10.png
│ ├── 002253_102_10.png
│ ├── 002253_103_01.png
│ ├── 002253_104_01.png
│ ├── 002253_105_10.png
│ ├── 002253_106_01.png
│ ├── 002253_107_10.png
│ ├── 002253_108_10.png
│ ├── 002253_109_01.png
│ ├── 002253_10_01.png
│ ├── 002253_110_01.png
│ ├── 002253_111_01.png
│ ├── 002253_112_01.png
│ ├── 002253_113_01.png
│ ├── 002253_114_10.png
│ ├── 002253_115_10.png
│ ├── 002253_116_01.png
│ ├── 002253_117_10.png
│ ├── 002253_118_10.png
│ ├── 002253_119_10.png
│ ├── 002253_11_10.png
│ ├── 002253_120_10.png
│ ├── 002253_121_10.png
│ ├── 002253_122_01.png
│ ├── 002253_123_10.png
│ ├── 002253_124_01.png
│ ├── 002253_125_01.png
│ ├── 002253_126_01.png
│ ├── 002253_127_10.png
│ ├── 002253_128_10.png
│ ├── 002253_129_01.png
│ ├── 002253_12_01.png
│ ├── 002253_130_10.png
│ ├── 002253_131_01.png
│ ├── 002253_132_01.png
│ ├── 002253_133_10.png
│ ├── 002253_134_01.png
│ ├── 002253_135_01.png
│ ├── 002253_136_01.png
│ ├── 002253_137_01.png
│ ├── 002253_138_01.png
│ ├── 002253_139_10.png
│ ├── 002253_13_10.png
│ ├── 002253_140_10.png
│ ├── 002253_141_10.png
│ ├── 002253_142_01.png
│ ├── 002253_143_01.png
│ ├── 002253_144_10.png
│ ├── 002253_145_01.png
│ ├── 002253_146_10.png
│ ├── 002253_147_10.png
│ ├── 002253_148_01.png
│ ├── 002253_149_10.png
│ ├── 002253_14_01.png
│ ├── 002253_150_01.png
│ ├── 002253_151_01.png
│ ├── 002253_152_10.png
│ ├── 002253_153_01.png
│ ├── 002253_154_10.png
│ ├── 002253_155_01.png
│ ├── 002253_156_10.png
│ ├── 002253_157_01.png
│ ├── 002253_158_01.png
│ ├── 002253_159_10.png
│ ├── 002253_15_01.png
│ ├── 002253_160_10.png
│ ├── 002253_161_10.png
│ ├── 002253_162_01.png
│ ├── 002253_163_10.png
│ ├── 002253_164_10.png
│ ├── 002253_165_10.png
│ ├── 002253_166_01.png
│ ├── 002253_167_10.png
│ ├── 002253_168_01.png
│ ├── 002253_169_01.png
│ ├── 002253_16_10.png
│ ├── 002253_170_01.png
│ ├── 002253_171_01.png
│ ├── 002253_172_10.png
│ ├── 002253_173_10.png
│ ├── 002253_174_10.png
│ ├── 002253_175_10.png
│ ├── 002253_176_10.png
│ ├── 002253_177_01.png
│ ├── 002253_178_10.png
│ ├── 002253_179_01.png
│ ├── 002253_17_01.png
│ ├── 002253_180_10.png
│ ├── 002253_181_01.png
│ ├── 002253_182_10.png
│ ├── 002253_183_10.png
│ ├── 002253_184_10.png
│ ├── 002253_185_01.png
│ ├── 002253_186_01.png
│ ├── 002253_187_01.png
│ ├── 002253_188_01.png
│ ├── 002253_189_10.png
│ ├── 002253_18_10.png
│ ├── 002253_190_01.png
│ ├── 002253_191_01.png
│ ├── 002253_192_10.png
│ ├── 002253_193_10.png
│ ├── 002253_194_10.png
│ ├── 002253_195_10.png
│ ├── 002253_196_01.png
│ ├── 002253_197_01.png
│ ├── 002253_198_10.png
│ ├── 002253_199_01.png
│ ├── 002253_19_10.png
│ ├── 002253_1_01.png
│ ├── 002253_200_01.png
│ ├── 002253_201_10.png
│ ├── 002253_202_01.png
│ ├── 002253_203_10.png
│ ├── 002253_204_01.png
│ ├── 002253_205_01.png
│ ├── 002253_206_01.png
│ ├── 002253_207_10.png
│ ├── 002253_208_01.png
│ ├── 002253_209_10.png
│ ├── 002253_20_01.png
│ ├── 002253_210_10.png
│ ├── 002253_211_01.png
│ ├── 002253_212_10.png
│ ├── 002253_213_10.png
│ ├── 002253_214_01.png
│ ├── 002253_215_01.png
│ ├── 002253_216_10.png
│ ├── 002253_217_01.png
│ ├── 002253_218_10.png
│ ├── 002253_219_10.png
│ ├── 002253_21_10.png
│ ├── 002253_220_10.png
│ ├── 002253_221_10.png
│ ├── 002253_222_01.png
│ ├── 002253_223_01.png
│ ├── 002253_224_10.png
│ ├── 002253_225_01.png
│ ├── 002253_226_10.png
│ ├── 002253_227_01.png
│ ├── 002253_228_10.png
│ ├── 002253_229_01.png
│ ├── 002253_22_10.png
│ ├── 002253_230_10.png
│ ├── 002253_231_10.png
│ ├── 002253_232_01.png
│ ├── 002253_233_10.png
│ ├── 002253_234_01.png
│ ├── 002253_235_01.png
│ ├── 002253_236_10.png
│ ├── 002253_23_01.png
│ ├── 002253_24_10.png
│ ├── 002253_25_01.png
│ ├── 002253_26_10.png
│ ├── 002253_27_01.png
│ ├── 002253_28_10.png
│ ├── 002253_29_01.png
│ ├── 002253_2_10.png
│ ├── 002253_30_10.png
│ ├── 002253_31_01.png
│ ├── 002253_32_10.png
│ ├── 002253_33_10.png
│ ├── 002253_34_01.png
│ ├── 002253_35_10.png
│ ├── 002253_36_10.png
│ ├── 002253_37_10.png
│ ├── 002253_38_01.png
│ ├── 002253_39_01.png
│ ├── 002253_3_01.png
│ ├── 002253_40_10.png
│ ├── 002253_41_01.png
│ ├── 002253_42_01.png
│ ├── 002253_43_01.png
│ ├── 002253_44_10.png
│ ├── 002253_45_10.png
│ ├── 002253_46_01.png
│ ├── 002253_47_01.png
│ ├── 002253_48_10.png
│ ├── 002253_49_10.png
│ ├── 002253_4_10.png
│ ├── 002253_50_01.png
│ ├── 002253_51_01.png
│ ├── 002253_52_10.png
│ ├── 002253_53_10.png
│ ├── 002253_54_01.png
│ ├── 002253_55_10.png
│ ├── 002253_56_01.png
│ ├── 002253_57_10.png
│ ├── 002253_58_01.png
│ ├── 002253_59_01.png
│ ├── 002253_5_10.png
│ ├── 002253_60_01.png
│ ├── 002253_61_10.png
│ ├── 002253_62_01.png
│ ├── 002253_63_10.png
│ ├── 002253_64_10.png
│ ├── 002253_65_10.png
│ ├── 002253_66_10.png
│ ├── 002253_67_01.png
│ ├── 002253_68_10.png
│ ├── 002253_69_01.png
│ ├── 002253_6_10.png
│ ├── 002253_70_10.png
│ ├── 002253_71_10.png
│ ├── 002253_72_10.png
│ ├── 002253_73_01.png
│ ├── 002253_74_10.png
│ ├── 002253_75_10.png
│ ├── 002253_76_10.png
│ ├── 002253_77_01.png
│ ├── 002253_78_10.png
│ ├── 002253_79_01.png
│ ├── 002253_7_10.png
│ ├── 002253_80_01.png
│ ├── 002253_81_01.png
│ ├── 002253_82_01.png
│ ├── 002253_83_10.png
│ ├── 002253_84_01.png
│ ├── 002253_85_01.png
│ ├── 002253_86_01.png
│ ├── 002253_87_01.png
│ ├── 002253_88_10.png
│ ├── 002253_89_01.png
│ ├── 002253_8_01.png
│ ├── 002253_90_10.png
│ ├── 002253_91_01.png
│ ├── 002253_92_01.png
│ ├── 002253_93_01.png
│ ├── 002253_94_01.png
│ ├── 002253_95_10.png
│ ├── 002253_96_10.png
│ ├── 002253_97_10.png
│ ├── 002253_98_01.png
│ ├── 002253_99_10.png
│ └── 002253_9_10.png
├── 5 Financial-Data-Download
├── README.md
└── code
│ ├── 5.1 get_stock_data_from_JQdata.py
│ ├── 5.2 get_stock_data_from_akshare.py
│ └── 5.3 get_stock_data_from_tushare.py
└── README.md
/1.1 Financial-Prediction-CNN/README.md:
--------------------------------------------------------------------------------
1 | **使用CNN模型预测未来一天的股价涨跌**
2 |
3 | **数据介绍**
4 |
5 | open 开盘价;close 收盘价;high 最高价
6 |
7 | low 最低价;volume 交易量;label 涨/跌
8 |
9 | **训练规模**
10 |
11 | 特征数量×5;天数×5 = 5 × 5
12 |
13 | **卷积过程**
14 |
15 |
16 |
17 | **最大池化过程**
18 |
19 |
20 |
21 | **代码流程**
22 |
23 | 1. 获取股票数据
24 | 2. 数据归一化
25 | 3. 数据预处理(划分成5×5)
26 | 4. 数据集分割(训练集和测试集)
27 | 5. 定义卷积神经网络
28 | 6. 评估预测模型
29 |
30 | **模型架构**
31 |
32 |
33 |
--------------------------------------------------------------------------------
/1.1 Financial-Prediction-CNN/code/Financial-Prediction-CNN.py:
--------------------------------------------------------------------------------
1 | from keras.models import Sequential
2 | from keras.layers import Dense, Dropout, Activation, Flatten
3 | from keras.layers import Convolution2D, MaxPooling2D
4 | import keras
5 | import numpy as np
6 | import pandas as pd
7 | from sklearn.preprocessing import MinMaxScaler
8 |
9 | # for reproducibility
10 | np.random.seed(1337)
11 |
12 | # load stock data
13 | df = pd.read_csv('../data/stock.csv')
14 |
15 | # normalization
16 | scaler = MinMaxScaler(feature_range=(0, 1))
17 | df['volume'] = scaler.fit_transform(np.reshape(np.array(df['volume']),(-1,1)))
18 | df['close'] = scaler.fit_transform(np.reshape(np.array(df['close']),(-1,1)))
19 | df['low'] = scaler.fit_transform(np.reshape(np.array(df['low']),(-1,1)))
20 | df['high'] = scaler.fit_transform(np.reshape(np.array(df['high']),(-1,1)))
21 | df['open'] = scaler.fit_transform(np.reshape(np.array(df['open']),(-1,1)))
22 |
23 | # generate the data format by cnn required
24 | X_data,Y_data = list(),list()
25 | for i in range(len(df['close'])-5):
26 | for j in range(5):
27 | X_data.append(df['close'][i+j])
28 | X_data.append(df['open'][i+j])
29 | X_data.append(df['high'][i+j])
30 | X_data.append(df['low'][i+j])
31 | X_data.append(df['volume'][i+j])
32 |
33 | # splite the data to train and test set
34 | X_train = np.array(X_data[:int(len(X_data)*0.5)]).reshape(-1,5,5,1)
35 | X_test = np.array(X_data[int(len(X_data)*0.5):]).reshape(-1,5,5,1)
36 | for i in range(len(df['close'])-5):
37 | Y_data.append(df['label'][i])
38 | Y_train = np.array(Y_data[:int(len(Y_data)*0.5)]).reshape(-1,1)
39 | Y_test = np.array(Y_data[int(len(Y_data)*0.5):]).reshape(-1,1)
40 | Y_train = keras.utils.to_categorical(Y_train,num_classes=2)
41 | Y_test = keras.utils.to_categorical(Y_test,num_classes=2)
42 |
43 | # global variable
44 | batch_size = 10
45 | nb_classes = 2
46 | epochs = 120
47 |
48 | # input image dimensions
49 | img_rows, img_cols = 5, 5
50 |
51 | # number of convolutional filters to use
52 | nb_filters1 = 32
53 | nb_filters2 = 16
54 |
55 | # size of pooling area for max pooling
56 | pool_size = (2, 2)
57 |
58 | # convolution kernel size
59 | kernel_size = (3, 3)
60 |
61 | # input shape
62 | input_shape = (img_rows, img_cols, 1)
63 |
64 | # transfer format
65 | X_train = X_train.astype('float32')
66 | X_test = X_test.astype('float32')
67 | Y_train = Y_train.astype('float32')
68 | Y_test = Y_test.astype('float32')
69 |
70 | # cnn model with Keras
71 | model = Sequential()
72 | model.add(Convolution2D(nb_filters1, (kernel_size[0], kernel_size[1]),
73 | padding='same',
74 | input_shape=input_shape,activation='relu')) # ConV layer 1
75 | model.add(MaxPooling2D(pool_size=pool_size)) # MaxPooling layer
76 | # model.add(Activation('relu')) # Active layer
77 | model.add(Convolution2D(nb_filters2, (kernel_size[0], kernel_size[1]),padding='same',activation='relu')) # ConV layer 2
78 | # model.add(Activation('relu')) # Active layer
79 | model.add(MaxPooling2D(pool_size=pool_size)) # MaxPooling layer
80 | # model.add(Dropout(0.25)) # Dropout
81 | model.add(Flatten()) # Flatten
82 | model.add(Dense(128,activation='relu')) # Fully connect layer
83 | # model.add(Activation('relu')) # Active layer
84 | model.add(Dropout(0.5)) # Dropout
85 | model.add(Dense(nb_classes)) # Fully connect layer
86 | model.add(Activation('softmax')) # Softmax to choose best result
87 |
88 | # compile the model
89 | model.compile(loss='categorical_crossentropy',optimizer='adadelta',metrics=['accuracy'])
90 |
91 | # fit / train the model
92 | model.fit(X_train, Y_train, batch_size=batch_size, epochs=epochs,
93 | verbose=1)
94 | #validation_data=(X_test, Y_test)
95 |
96 | # evaluate the model
97 | score = model.evaluate(X_test, Y_test, verbose=0)
98 | print(model.summary())
99 | prd = model.predict(X_test)
100 | # show the model performance
101 | print('Test score:', score[0])
102 | print('Test accuracy:', score[1])
--------------------------------------------------------------------------------
/1.1 Financial-Prediction-CNN/data/stock.csv:
--------------------------------------------------------------------------------
1 | open,close,high,low,volume,label
2 | 10.039,10.111,10.273,9.998,1046486.0,0
3 | 10.079,10.047,10.273,9.958,793704.0,1
4 | 10.031,10.111,10.12,9.974,471120.0,1
5 | 10.111,10.152,10.184,10.047,598036.0,0
6 | 10.152,10.071,10.192,10.014,607975.0,0
7 | 10.039,9.934,10.071,9.836,664214.0,1
8 | 9.877,9.966,10.006,9.845,513462.0,0
9 | 9.998,9.893,10.014,9.869,552210.0,0
10 | 9.853,9.489,9.869,9.327,728025.0,1
11 | 9.481,9.497,9.602,9.303,658493.0,1
12 | 9.464,9.505,9.594,9.311,680253.0,1
13 | 9.464,10.12,10.225,9.432,1615760.0,0
14 | 10.023,10.071,10.314,9.909,1425976.0,0
15 | 9.958,9.804,10.014,9.772,764532.0,1
16 | 9.853,9.828,9.909,9.739,402792.0,0
17 | 9.764,9.675,9.78,9.626,503101.0,1
18 | 9.642,9.699,9.804,9.626,429384.0,0
19 | 9.667,9.675,9.82,9.634,417603.0,0
20 | 9.634,9.57,9.642,9.489,379508.0,1
21 | 9.489,9.764,9.796,9.472,587236.0,0
22 | 9.731,9.642,9.78,9.594,364487.0,0
23 | 9.691,9.618,9.715,9.61,392762.0,1
24 | 9.683,9.764,9.82,9.675,648274.0,1
25 | 9.731,9.893,10.152,9.723,1022944.0,1
26 | 9.82,10.12,10.289,9.796,1281142.0,0
27 | 10.111,10.055,10.209,10.014,698091.0,1
28 | 10.087,10.095,10.338,10.031,1039018.0,0
29 | 10.079,9.982,10.16,9.901,640229.0,1
30 | 10.014,10.039,10.087,9.974,399845.0,0
31 | 10.055,9.691,10.079,9.691,822408.0,1
32 | 9.699,9.78,9.788,9.683,619802.0,1
33 | 9.78,9.788,9.796,9.667,532667.0,0
34 | 9.788,9.699,9.812,9.691,491258.0,0
35 | 9.707,9.141,9.731,9.084,563497.0,1
36 | 9.117,9.222,9.359,9.019,663269.0,1
37 | 9.238,9.327,9.351,9.214,515706.0,0
38 | 9.23,8.85,9.23,8.825,174761.0,1
39 | 9.068,8.995,9.133,8.817,747527.0,0
40 | 8.898,8.704,8.963,8.639,732013.0,1
41 | 8.761,8.744,8.825,8.607,561642.0,0
42 | 8.809,8.664,8.85,8.655,391709.0,1
43 | 8.566,8.712,8.736,8.477,666314.0,0
44 | 8.623,8.461,8.736,8.429,448202.0,0
45 | 8.364,8.421,8.542,8.332,421040.0,1
46 | 8.453,8.664,8.72,8.421,501109.0,0
47 | 8.655,8.526,8.736,8.445,603752.0,0
48 | 8.477,8.348,8.696,8.348,606145.0,1
49 | 8.413,8.413,8.453,8.267,466752.0,0
50 | 8.413,8.388,8.445,8.356,376431.0,0
51 | 8.348,7.984,8.348,7.976,647901.0,1
52 | 8.033,7.992,8.073,7.766,569037.0,0
53 | 7.944,7.838,8.0,7.806,302540.0,1
54 | 7.879,8.089,8.154,7.838,544435.0,0
55 | 8.073,7.927,8.097,7.879,417732.0,1
56 | 7.927,8.049,8.113,7.911,369104.0,0
57 | 7.968,7.968,8.0,7.903,274572.0,1
58 | 8.0,8.049,8.089,7.992,373099.0,0
59 | 8.057,8.024,8.065,8.016,270893.0,0
60 | 7.814,7.919,7.968,7.806,278499.0,1
61 | 7.96,8.097,8.113,7.952,428386.0,1
62 | 8.113,8.211,8.267,8.081,585167.0,0
63 | 8.235,8.162,8.267,8.162,406178.0,0
64 | 8.162,8.122,8.202,8.081,318898.0,1
65 | 8.194,8.324,8.34,8.138,617739.0,0
66 | 8.324,8.186,8.324,8.13,425874.0,1
67 | 8.138,8.211,8.211,8.097,300103.0,0
68 | 8.186,7.822,8.194,7.766,622072.0,1
69 | 7.903,7.919,7.952,7.814,392154.0,0
70 | 7.919,7.733,7.936,7.62,566896.0,1
71 | 7.782,7.847,7.903,7.749,377910.0,1
72 | 7.887,8.17,8.194,7.863,676613.0,1
73 | 8.162,8.178,8.235,8.122,553089.0,1
74 | 8.162,8.413,8.494,8.146,1381249.0,0
75 | 8.372,8.364,8.486,8.332,606352.0,0
76 | 8.38,8.316,8.38,8.041,643156.0,0
77 | 8.202,8.227,8.267,8.122,325900.0,0
78 | 8.283,8.211,8.372,8.194,474020.0,1
79 | 8.17,8.219,8.267,8.122,383736.0,1
80 | 8.259,8.3,8.461,8.259,655158.0,1
81 | 8.316,8.348,8.38,8.219,417920.0,1
82 | 8.308,8.372,8.453,8.291,664886.0,1
83 | 8.38,8.429,8.477,8.332,610996.0,1
84 | 8.429,8.526,8.55,8.413,797215.0,1
85 | 8.534,8.736,8.785,8.534,920432.0,0
86 | 8.712,8.672,8.85,8.647,625482.0,0
87 | 8.664,8.655,8.712,8.583,430278.0,0
88 | 8.583,8.51,8.599,8.494,372406.0,1
89 | 8.502,8.566,8.575,8.494,237070.0,0
90 | 8.591,8.477,8.615,8.453,358621.0,0
91 | 8.502,8.437,8.51,8.397,318317.0,1
92 | 8.477,8.655,8.655,8.469,539699.0,0
93 | 8.664,8.607,8.696,8.607,418387.0,1
94 | 8.591,8.623,8.647,8.494,369341.0,1
95 | 8.591,8.655,8.744,8.494,592308.0,1
96 | 8.639,8.672,8.696,8.583,435259.0,0
97 | 8.672,8.566,8.68,8.566,377719.0,0
98 | 8.534,8.55,8.631,8.494,376553.0,1
99 | 8.575,8.672,8.736,8.575,786386.0,0
100 | 8.655,8.631,8.664,8.591,298599.0,1
101 | 8.68,8.744,8.874,8.664,856760.0,1
102 | 8.801,8.769,8.817,8.728,323646.0,1
103 | 8.769,8.801,8.85,8.736,497224.0,0
104 | 8.753,8.68,8.777,8.68,350654.0,1
105 | 8.712,8.712,8.744,8.664,218239.0,0
106 | 8.712,8.51,8.72,8.38,606586.0,0
107 | 8.51,8.502,8.599,8.453,558799.0,1
108 | 8.461,8.534,8.591,8.421,359677.0,0
109 | 8.542,8.494,8.542,8.429,349257.0,1
110 | 8.477,8.566,8.575,8.461,291699.0,0
111 | 8.558,8.55,8.583,8.51,239553.0,1
112 | 8.558,8.623,8.704,8.526,457460.0,0
113 | 8.607,8.55,8.607,8.534,404977.0,1
114 | 8.558,8.639,8.672,8.51,489102.0,1
115 | 8.639,8.672,8.696,8.623,412435.0,0
116 | 8.647,8.672,8.672,8.615,239516.0,0
117 | 8.68,8.51,8.68,8.51,346545.0,0
118 | 8.494,8.372,8.518,8.348,411171.0,0
119 | 8.364,8.316,8.388,8.308,292599.0,1
120 | 8.332,8.388,8.445,8.332,327289.0,1
121 | 8.34,8.397,8.413,8.291,325885.0,0
122 | 8.372,8.372,8.413,8.356,184266.0,1
123 | 8.348,8.38,8.38,8.291,215224.0,0
124 | 8.38,8.332,8.388,8.283,250424.0,0
125 | 8.324,8.332,8.348,8.227,534150.0,0
126 | 8.308,8.291,8.348,8.291,170777.0,1
127 | 8.283,8.332,8.356,8.243,206703.0,0
128 | 8.356,8.316,8.364,8.291,323646.0,0
129 | 8.308,8.259,8.316,8.243,259294.0,1
130 | 8.291,8.275,8.316,8.243,204235.0,0
131 | 8.267,8.267,8.308,8.227,261396.0,1
132 | 8.267,8.308,8.324,8.243,222818.0,1
133 | 8.291,8.316,8.316,8.251,380946.0,1
134 | 8.3,8.534,8.55,8.3,946467.0,0
135 | 8.502,8.477,8.534,8.445,556750.0,0
136 | 8.469,8.461,8.477,8.429,293036.0,1
137 | 8.469,8.494,8.51,8.421,423389.0,1
138 | 8.502,8.502,8.518,8.453,338332.0,1
139 | 8.51,8.51,8.518,8.477,229282.0,0
140 | 8.526,8.494,8.526,8.461,268188.0,0
141 | 8.461,8.356,8.469,8.356,344816.0,1
142 | 8.364,8.413,8.421,8.348,273637.0,1
143 | 8.356,8.445,8.477,8.348,378172.0,0
144 | 8.445,8.445,8.474,8.406,386670.0,1
145 | 8.445,8.455,8.484,8.415,315173.0,1
146 | 8.465,8.474,8.474,8.435,270731.0,1
147 | 8.484,8.484,8.524,8.455,380749.0,1
148 | 8.474,8.603,8.603,8.455,478002.0,0
149 | 8.543,8.534,8.573,8.504,335614.0,0
150 | 8.514,8.445,8.573,8.396,427664.0,1
151 | 8.445,8.484,8.514,8.415,325214.0,1
152 | 8.455,8.504,8.514,8.435,336519.0,1
153 | 8.504,8.563,8.563,8.494,369611.0,1
154 | 8.563,8.573,8.612,8.534,362204.0,1
155 | 8.563,8.583,8.603,8.553,348930.0,1
156 | 8.563,8.681,8.731,8.543,608257.0,0
157 | 8.672,8.681,8.701,8.642,422037.0,0
158 | 8.672,8.662,8.691,8.632,322950.0,0
159 | 8.662,8.652,8.672,8.612,312853.0,0
160 | 8.662,8.612,8.662,8.603,261342.0,1
161 | 8.622,8.622,8.662,8.612,365372.0,1
162 | 8.622,8.75,8.76,8.612,711832.0,1
163 | 8.75,8.859,8.918,8.731,798288.0,0
164 | 8.839,8.81,8.869,8.78,359699.0,1
165 | 8.819,8.859,8.869,8.78,352033.0,1
166 | 8.859,8.908,8.947,8.839,506934.0,0
167 | 8.908,8.839,8.918,8.819,362787.0,0
168 | 8.829,8.829,8.859,8.819,310926.0,1
169 | 8.819,8.859,8.879,8.819,340261.0,0
170 | 8.859,8.81,8.859,8.79,295549.0,1
171 | 8.8,8.849,8.849,8.78,264682.0,1
172 | 8.839,8.977,8.987,8.839,546556.0,0
173 | 8.987,8.879,9.036,8.78,818678.0,1
174 | 8.849,8.947,8.977,8.839,479910.0,1
175 | 8.947,9.066,9.105,8.898,671425.0,1
176 | 9.046,9.145,9.204,9.036,759324.0,0
177 | 9.105,9.115,9.125,9.036,449165.0,0
178 | 9.076,9.046,9.085,9.016,424622.0,0
179 | 9.036,8.859,9.046,8.8,1344462.0,1
180 | 8.859,8.908,8.938,8.819,725948.0,1
181 | 8.908,8.977,8.977,8.879,398479.0,1
182 | 8.957,9.016,9.016,8.938,415676.0,0
183 | 9.016,9.007,9.046,8.987,436655.0,1
184 | 9.007,9.085,9.214,8.997,935576.0,1
185 | 9.066,9.361,9.391,9.046,1370021.0,1
186 | 9.411,9.539,9.657,9.371,1897552.0,0
187 | 9.539,9.381,9.539,9.322,1099558.0,1
188 | 9.381,9.411,9.46,9.342,560725.0,0
189 | 9.42,9.361,9.45,9.292,691504.0,1
190 | 9.351,9.371,9.381,9.292,505334.0,0
191 | 9.361,9.263,9.371,9.223,979432.0,0
192 | 9.243,9.263,9.312,9.233,890656.0,1
193 | 9.273,9.292,9.292,9.243,732281.0,1
194 | 9.283,9.302,9.312,9.204,617389.0,1
195 | 9.312,9.312,9.332,9.263,502233.0,0
196 | 9.273,9.283,9.312,9.243,565231.0,1
197 | 9.283,9.332,9.332,9.273,595081.0,1
198 | 9.322,9.351,9.361,9.292,489746.0,0
199 | 9.351,9.312,9.381,9.283,480131.0,0
200 | 9.292,9.312,9.322,9.283,368796.0,0
201 | 9.322,9.283,9.322,9.263,469936.0,0
202 | 9.283,9.273,9.292,9.223,574738.0,0
203 | 9.273,9.263,9.283,9.233,459373.0,0
204 | 9.253,9.263,9.283,9.243,295218.0,0
205 | 9.263,9.243,9.292,9.223,327431.0,0
206 | 9.154,9.026,9.184,8.997,756581.0,1
207 | 9.046,9.056,9.076,9.007,460931.0,0
208 | 9.036,8.928,9.046,8.918,421481.0,1
209 | 8.918,8.987,9.007,8.918,354348.0,0
210 | 8.987,8.947,8.987,8.908,436678.0,0
211 | 8.947,8.947,8.967,8.898,405665.0,1
212 | 8.967,9.026,9.046,8.957,494613.0,0
213 | 9.026,9.016,9.056,9.007,288798.0,0
214 | 8.997,8.908,8.997,8.908,439481.0,1
215 | 8.908,8.928,8.938,8.879,401323.0,0
216 | 8.928,8.918,8.928,8.898,271366.0,1
217 | 8.918,8.928,8.947,8.918,303664.0,1
218 | 8.928,8.938,8.967,8.918,308084.0,1
219 | 8.967,8.987,9.036,8.947,611381.0,1
220 | 8.997,9.016,9.016,8.977,363370.0,0
221 | 9.007,8.997,9.026,8.987,270316.0,0
222 | 8.947,8.938,8.977,8.918,632367.0,1
223 | 8.928,8.957,8.957,8.908,335411.0,0
224 | 8.947,8.918,8.957,8.898,359223.0,1
225 | 8.898,8.957,8.957,8.898,593737.0,0
226 | 8.957,8.947,8.977,8.918,482636.0,0
227 | 8.947,8.938,8.957,8.918,342844.0,1
228 | 8.947,8.997,8.997,8.928,683896.0,1
229 | 8.997,9.105,9.164,8.987,915677.0,0
230 | 9.115,9.076,9.125,9.046,500752.0,0
231 | 9.085,9.016,9.085,8.997,440452.0,1
232 | 9.026,9.026,9.036,8.987,324140.0,1
233 | 9.026,9.036,9.095,9.007,541997.0,0
234 | 9.016,9.016,9.026,8.957,493596.0,0
235 | 9.007,9.007,9.026,8.977,525415.0,0
236 | 9.007,8.938,9.007,8.918,633586.0,1
237 | 8.928,8.997,9.007,8.918,616871.0,0
238 | 8.977,8.977,9.036,8.967,508117.0,1
239 | 8.967,8.987,8.987,8.938,497240.0,1
240 | 8.987,9.016,9.016,8.967,806694.0,0
241 | 9.007,8.938,9.007,8.879,722616.0,1
242 | 8.967,9.007,9.026,8.967,631998.0,1
243 | 9.007,9.046,9.046,8.977,812269.0,1
244 | 9.026,9.085,9.115,9.026,975078.0,1
245 | 9.066,9.095,9.105,9.046,554342.0,0
246 | 9.095,9.095,9.105,9.066,415842.0,0
247 | 9.085,9.076,9.085,9.046,505324.0,0
248 | 9.076,9.046,9.076,9.026,517597.0,1
249 | 9.046,9.105,9.145,9.036,850243.0,1
250 | 9.105,9.223,9.223,9.095,1180256.0,1
251 | 9.204,9.312,9.42,9.204,1752869.0,1
252 | 9.302,9.332,9.381,9.283,779748.0,1
253 | 9.342,9.48,9.48,9.322,1013674.0,1
254 | 9.549,9.489,9.637,9.46,1279689.0,0
255 | 9.45,9.48,9.558,9.411,887779.0,0
256 | 9.509,9.411,9.578,9.361,1025963.0,1
257 | 9.43,9.46,9.489,9.411,646004.0,0
258 | 9.46,9.411,9.46,9.302,829686.0,0
259 | 9.361,9.322,9.401,9.273,764365.0,1
260 | 9.342,9.351,9.381,9.312,602902.0,0
261 | 9.342,9.342,9.351,9.273,493404.0,1
262 | 9.361,9.381,9.411,9.292,671452.0,1
263 | 9.361,9.509,9.608,9.342,1514199.0,0
264 | 9.509,9.361,9.627,9.302,1256874.0,0
265 | 9.342,9.283,9.361,9.194,645771.0,0
266 | 9.283,9.263,9.371,9.263,597705.0,0
267 | 9.233,9.115,9.273,9.076,827612.0,0
268 | 9.105,9.115,9.154,9.076,396813.0,0
269 | 9.085,9.066,9.095,9.036,494010.0,0
270 | 9.066,8.977,9.066,8.947,636638.0,1
271 | 8.987,9.026,9.026,8.977,369920.0,0
272 | 9.016,9.007,9.026,8.977,341341.0,0
273 | 9.007,8.947,9.007,8.938,382912.0,1
274 | 8.928,8.987,8.997,8.888,302058.0,0
275 | 8.987,8.947,8.997,8.938,268841.0,0
276 | 8.947,8.928,8.977,8.908,336055.0,1
277 | 8.938,8.947,8.957,8.918,338758.0,1
278 | 8.947,8.967,8.967,8.928,302607.0,1
279 | 8.977,9.026,9.046,8.957,459840.0,0
280 | 9.016,9.026,9.046,9.007,449329.0,1
281 | 9.036,9.036,9.046,9.016,344372.0,0
282 | 9.036,8.997,9.036,8.977,358154.0,1
283 | 8.997,9.016,9.036,8.977,361081.0,0
284 | 9.016,9.016,9.026,9.007,241053.0,0
285 | 9.007,9.007,9.036,8.997,303430.0,1
286 | 8.997,9.016,9.036,8.997,428006.0,1
287 | 9.007,9.026,9.056,8.987,434301.0,0
288 | 9.016,9.007,9.026,8.938,683165.0,1
289 | 8.987,9.016,9.026,8.967,545552.0,1
290 | 9.007,9.036,9.056,8.997,574269.0,1
291 | 9.016,9.046,9.105,9.016,437712.0,1
292 | 9.036,9.085,9.095,9.036,393328.0,0
293 | 9.085,9.085,9.125,9.066,420299.0,1
294 | 9.095,9.135,9.145,9.066,470244.0,0
295 | 9.135,9.125,9.145,9.115,304401.0,1
296 | 9.135,9.194,9.204,9.125,420712.0,0
297 | 9.204,9.125,9.223,9.095,315472.0,1
298 | 9.125,9.174,9.184,9.125,516786.0,0
299 | 9.174,9.164,9.184,9.135,396884.0,0
300 | 9.154,9.164,9.164,9.105,360272.0,1
301 | 9.164,9.174,9.194,9.145,342855.0,1
302 | 9.184,9.194,9.223,9.174,482743.0,1
303 | 9.204,9.273,9.302,9.194,638364.0,0
304 | 9.273,9.263,9.283,9.233,362404.0,1
305 | 9.263,9.312,9.401,9.253,756613.0,1
306 | 9.312,9.322,9.361,9.283,411161.0,0
307 | 9.322,9.253,9.351,9.233,423774.0,1
308 | 9.263,9.42,9.44,9.263,898755.0,1
309 | 9.411,9.43,9.48,9.401,646584.0,0
310 | 9.43,9.43,9.43,9.361,462966.0,0
311 | 9.411,9.371,9.43,9.342,335327.0,0
312 | 9.361,9.361,9.401,9.342,332500.0,0
313 | 9.361,9.292,9.361,9.283,407341.0,1
314 | 9.292,9.342,9.371,9.283,369719.0,1
315 | 9.351,9.351,9.411,9.332,346993.0,0
316 | 9.371,9.292,9.401,9.283,403628.0,0
317 | 9.273,9.263,9.292,9.223,342655.0,1
318 | 9.263,9.312,9.322,9.253,404511.0,0
319 | 9.302,9.312,9.322,9.263,294672.0,0
320 | 9.292,9.283,9.312,9.263,244438.0,0
321 | 9.273,9.243,9.292,9.223,378169.0,1
322 | 9.243,9.263,9.273,9.223,390182.0,1
323 | 9.253,9.302,9.312,9.233,545304.0,0
324 | 9.292,9.302,9.322,9.273,404484.0,1
325 | 9.283,9.342,9.342,9.283,546560.0,1
326 | 9.342,9.381,9.391,9.312,635953.0,0
327 | 9.312,9.174,9.322,9.164,1583647.0,0
328 | 9.154,9.115,9.174,9.085,715021.0,0
329 | 9.115,9.105,9.125,9.066,554648.0,0
330 | 9.066,9.026,9.085,9.007,566123.0,1
331 | 9.026,9.066,9.105,9.016,433588.0,0
332 | 9.066,9.056,9.105,9.026,710827.0,0
333 | 8.987,9.007,9.056,8.947,985012.0,0
334 | 9.026,8.987,9.036,8.967,481372.0,0
335 | 8.997,8.977,9.016,8.957,601140.0,0
336 | 8.987,8.947,8.987,8.928,687285.0,1
337 | 8.947,9.036,9.046,8.947,633121.0,1
338 | 9.026,9.076,9.085,9.016,499150.0,0
339 | 9.066,9.066,9.085,9.036,434391.0,0
340 | 9.056,9.066,9.085,9.036,514844.0,0
341 | 9.066,9.046,9.076,9.036,401343.0,0
342 | 9.036,9.016,9.056,8.957,612437.0,0
343 | 9.026,8.987,9.036,8.967,455336.0,0
344 | 8.977,8.987,9.007,8.967,357442.0,0
345 | 8.977,8.947,8.987,8.928,490500.0,1
346 | 8.947,8.967,8.977,8.918,531892.0,0
347 | 8.957,8.918,8.967,8.918,335376.0,0
348 | 8.898,8.78,8.908,8.77,799668.0,1
349 | 8.77,8.79,8.81,8.76,437629.0,1
350 | 8.79,8.839,8.859,8.77,325408.0,0
351 | 8.839,8.8,8.849,8.76,394995.0,1
352 | 8.8,8.869,8.879,8.8,377933.0,0
353 | 8.869,8.859,8.879,8.829,382147.0,0
354 | 8.839,8.839,8.849,8.78,387392.0,1
355 | 8.829,8.859,8.859,8.79,286446.0,0
356 | 8.829,8.81,8.829,8.77,311026.0,0
357 | 8.79,8.78,8.8,8.76,280310.0,0
358 | 8.76,8.612,8.76,8.593,696517.0,0
359 | 8.612,8.504,8.632,8.455,623700.0,0
360 | 8.474,8.445,8.494,8.415,460089.0,1
361 | 8.435,8.514,8.514,8.425,324194.0,1
362 | 8.504,8.543,8.672,8.494,573077.0,1
363 | 8.524,8.573,8.593,8.474,503643.0,1
364 | 8.553,8.77,8.77,8.514,917968.0,0
365 | 8.76,8.731,8.819,8.681,536578.0,0
366 | 8.711,8.711,8.721,8.603,524872.0,0
367 | 8.681,8.642,8.681,8.622,417338.0,0
368 | 8.593,8.603,8.642,8.583,227401.0,0
369 | 8.612,8.563,8.632,8.553,294270.0,0
370 | 8.553,8.553,8.603,8.484,679120.0,1
371 | 8.543,8.662,8.711,8.514,800040.0,1
372 | 8.652,8.681,8.701,8.553,532376.0,1
373 | 8.662,8.967,9.007,8.652,1621543.0,0
374 | 8.947,8.967,8.997,8.908,895365.0,1
375 | 8.967,9.066,9.095,8.928,1033210.0,0
376 | 9.066,9.056,9.095,8.987,566182.0,0
377 | 9.046,9.036,9.154,9.007,770757.0,0
378 | 8.997,8.898,9.036,8.859,634132.0,1
379 | 8.879,8.908,8.928,8.859,355341.0,1
380 | 8.888,8.997,9.016,8.879,645723.0,0
381 | 8.977,8.997,9.016,8.947,383004.0,1
382 | 9.016,9.016,9.085,8.987,685468.0,0
383 | 9.016,8.977,9.056,8.967,504578.0,1
384 | 8.977,8.987,9.007,8.918,448434.0,0
385 | 8.987,8.947,8.997,8.908,375444.0,0
386 | 8.947,8.908,8.947,8.898,337797.0,0
387 | 8.908,8.888,8.947,8.879,285991.0,1
388 | 8.898,8.997,9.016,8.888,489704.0,0
389 | 8.987,8.987,9.026,8.957,313615.0,1
390 | 9.036,9.016,9.046,8.977,496932.0,1
391 | 9.016,9.115,9.263,9.007,1426958.0,0
392 | 9.095,9.115,9.135,9.026,584004.0,1
393 | 9.125,9.164,9.263,9.125,710769.0,1
394 | 9.164,9.223,9.253,9.135,546016.0,1
395 | 9.214,9.292,9.351,9.194,1168796.0,0
396 | 9.292,9.292,9.312,9.233,488804.0,0
397 | 9.263,9.253,9.292,9.174,499633.0,1
398 | 9.263,9.263,9.292,9.204,388349.0,0
399 | 9.263,9.204,9.273,9.164,488362.0,1
400 | 9.154,9.233,9.243,9.135,567720.0,1
401 | 9.223,9.263,9.273,9.174,738911.0,1
402 | 9.233,9.332,9.342,9.204,760369.0,1
403 | 9.312,9.45,9.519,9.302,1360815.0,1
404 | 9.47,10.1,10.307,9.47,3812086.0,1
405 | 10.12,10.189,10.426,10.051,2998844.0,1
406 | 10.15,10.741,10.741,10.091,2994534.0,0
407 | 10.652,10.741,10.78,10.504,1722570.0,0
408 | 10.79,10.652,11.165,10.564,3273123.0,1
409 | 10.593,10.889,10.977,10.465,2349431.0,1
410 | 10.83,10.928,11.027,10.721,1933075.0,0
411 | 10.918,10.81,11.056,10.751,1537338.0,1
412 | 10.83,10.89,10.95,10.69,1501020.0,1
413 | 10.82,10.95,11.06,10.73,1692664.0,1
414 | 10.98,11.0,11.27,10.95,1954768.0,0
415 | 10.92,10.74,11.18,10.66,1697412.0,0
416 | 10.72,10.59,10.77,10.53,1194490.0,1
417 | 10.61,10.74,10.81,10.58,819195.0,0
418 | 10.8,10.67,10.82,10.45,1575864.0,1
419 | 10.64,11.04,11.08,10.6,2035709.0,1
420 | 11.05,11.15,11.34,10.96,2062069.0,0
421 | 11.14,11.01,11.22,10.97,984219.0,1
422 | 11.0,11.17,11.29,10.93,1353951.0,0
423 | 11.06,11.0,11.17,10.9,860644.0,1
424 | 11.0,11.05,11.11,10.91,689567.0,0
425 | 10.96,10.73,11.02,10.68,1042321.0,0
426 | 10.7,10.62,10.82,10.54,959879.0,0
427 | 10.48,10.02,10.54,9.99,2440643.0,1
428 | 10.13,10.22,10.25,10.04,1157664.0,1
429 | 10.24,10.31,10.51,10.21,1075162.0,1
430 | 10.29,10.34,10.37,10.15,756806.0,1
431 | 10.35,10.42,10.42,10.29,553642.0,1
432 | 10.36,10.44,10.6,10.29,616520.0,1
433 | 10.43,10.46,10.52,10.39,399154.0,1
434 | 10.48,10.65,10.66,10.37,875681.0,1
435 | 10.63,10.9,10.98,10.59,1319151.0,1
436 | 10.89,10.93,11.11,10.84,924248.0,1
437 | 10.94,11.11,11.17,10.9,963940.0,1
438 | 11.1,11.35,11.54,11.1,1603938.0,1
439 | 11.3,11.67,11.74,11.28,1357983.0,0
440 | 11.68,11.43,11.7,11.35,1096674.0,0
441 | 11.39,11.28,11.44,11.15,1151786.0,0
442 | 11.28,11.21,11.39,11.15,959976.0,1
443 | 11.18,11.72,11.72,11.17,1352325.0,0
444 | 11.68,11.64,11.94,11.6,1287518.0,1
445 | 11.59,11.7,11.88,11.48,791621.0,0
446 | 11.65,11.44,11.75,11.39,614187.0,1
447 | 11.46,11.49,11.64,11.38,481276.0,0
448 | 11.54,11.38,11.69,11.3,699472.0,1
449 | 11.38,11.54,11.54,11.27,846183.0,0
450 | 11.49,11.43,11.54,11.34,668237.0,0
451 | 11.43,11.32,11.59,11.24,883087.0,0
452 | 11.29,11.29,11.32,11.15,646094.0,0
453 | 11.25,11.25,11.32,11.2,607612.0,0
454 | 11.25,11.13,11.34,11.08,764212.0,1
455 | 11.14,11.29,11.37,11.05,787154.0,1
456 | 11.26,11.46,11.51,11.2,692407.0,0
457 | 11.43,11.44,11.52,11.31,593927.0,0
458 | 11.44,11.29,11.45,11.18,532391.0,0
459 | 11.26,11.05,11.3,10.96,967460.0,0
460 | 11.01,10.93,11.08,10.9,727188.0,0
461 | 10.98,10.88,10.98,10.82,517220.0,1
462 | 10.92,11.11,11.16,10.86,682280.0,1
463 | 11.57,11.3,11.64,11.26,1325227.0,1
464 | 11.33,11.47,11.5,11.33,747925.0,1
465 | 11.48,11.53,11.58,11.34,658077.0,1
466 | 11.54,11.55,11.58,11.47,578065.0,0
467 | 11.56,11.36,11.56,11.25,737375.0,1
468 | 11.36,11.59,11.6,11.29,1036250.0,0
469 | 11.62,11.51,11.65,11.48,506372.0,1
470 | 11.53,11.69,11.7,11.51,871365.0,0
471 | 11.64,11.63,11.72,11.57,722764.0,0
472 | 11.59,11.48,11.59,11.41,461808.0,0
473 | 11.39,11.19,11.4,11.15,1074465.0,1
474 | 11.2,11.39,11.42,11.18,618871.0,0
475 | 11.36,11.27,11.37,11.25,418573.0,0
476 | 11.25,11.18,11.32,11.12,928996.0,1
477 | 11.19,11.56,11.56,11.18,1360086.0,0
478 | 11.55,11.56,11.73,11.45,1278246.0,0
479 | 11.55,11.54,11.58,11.39,627491.0,0
480 | 11.56,11.4,11.59,11.32,692617.0,1
481 | 11.36,11.54,11.58,11.26,604308.0,0
482 | 11.49,11.39,11.68,11.35,743343.0,0
483 | 11.42,11.28,11.42,11.09,1029902.0,1
484 | 11.27,11.92,12.09,11.25,2477163.0,1
485 | 12.0,12.13,12.59,11.93,4262825.0,1
486 | 12.2,12.33,12.57,12.15,2295289.0,0
487 | 12.37,12.3,12.55,12.15,1757552.0,1
488 | 12.35,12.9,13.1,12.35,2566906.0,1
489 | 12.95,12.95,13.26,12.81,1780302.0,0
490 | 12.9,12.9,13.13,12.77,1263052.0,1
491 | 12.9,13.1,13.12,12.67,1200814.0,1
492 | 13.17,13.18,13.46,13.03,2064149.0,1
493 | 13.13,14.25,14.25,13.05,2843925.0,1
494 | 14.07,14.45,14.79,14.01,2495327.0,1
495 | 14.48,15.1,15.24,14.48,2570231.0,0
496 | 15.15,14.35,15.24,14.07,2429142.0,1
497 | 14.29,14.56,14.59,13.78,2630189.0,0
498 | 14.3,13.93,14.3,13.75,2064085.0,0
499 | 13.85,13.7,13.85,13.4,1766432.0,1
500 | 13.73,13.82,13.93,13.47,1564094.0,0
501 | 13.7,13.38,13.73,13.26,1379635.0,0
502 | 13.4,13.0,13.48,12.96,1784933.0,1
503 | 13.05,13.3,13.37,13.0,1454023.0,0
504 | 13.15,13.3,13.49,13.1,1723681.0,0
505 | 13.26,13.08,13.27,12.79,1619844.0,0
506 | 13.05,12.83,13.14,12.75,1181957.0,1
507 | 12.89,13.09,13.09,12.75,1351315.0,1
508 | 13.08,13.5,13.57,12.88,2261952.0,0
509 | 13.4,13.02,13.48,13.02,1743405.0,1
510 | 13.0,13.13,13.2,12.88,1289248.0,0
511 | 13.15,13.0,13.31,12.91,1001997.0,0
512 | 12.9,12.72,12.93,12.67,1099952.0,1
513 | 12.73,12.75,12.91,12.64,805464.0,1
514 | 12.79,13.28,13.32,12.74,2397942.0,0
515 | 13.2,13.26,13.31,13.13,1106245.0,1
516 | 13.18,13.54,13.68,13.16,1485203.0,0
517 | 13.5,13.52,13.63,13.45,742900.0,0
518 | 13.52,13.25,13.86,13.16,1585567.0,1
519 | 13.26,13.66,13.69,13.19,1123688.0,0
520 | 13.58,13.29,13.78,13.19,1366566.0,0
521 | 13.28,13.21,13.46,13.02,1553030.0,1
522 | 13.21,13.3,13.43,13.1,982915.0,1
523 | 13.35,13.7,13.93,13.32,2081592.0,0
524 | 13.73,13.33,13.86,13.2,2962498.0,0
525 | 13.32,13.25,13.37,13.13,1854509.0,1
526 | 13.21,13.3,13.35,13.15,1210312.0,0
527 | 13.25,12.96,13.29,12.86,2158620.0,1
528 | 12.96,13.08,13.2,12.92,1344345.0,1
529 | 13.04,13.47,13.49,12.92,2403277.0,0
530 | 13.41,13.4,13.59,13.27,1443877.0,1
531 | 13.45,13.55,13.68,13.41,1353991.0,1
532 | 13.51,14.2,14.33,13.5,3122394.0,0
533 | 14.17,14.2,14.38,14.02,2444549.0,1
534 | 14.33,14.23,14.8,14.2,2656294.0,1
535 | 14.4,14.72,14.72,14.28,2148026.0,1
536 | 14.8,14.8,15.13,14.68,2571146.0,0
537 | 14.6,14.44,14.94,14.43,2073867.0,1
538 | 14.36,14.65,14.9,14.33,2388791.0,0
539 | 14.66,14.64,15.08,14.5,2591292.0,0
540 | 14.45,14.2,14.47,14.0,2369984.0,0
541 | 14.18,14.05,14.34,14.02,2032988.0,0
542 | 14.05,13.74,14.25,13.6,2090546.0,0
543 | 13.7,13.65,13.84,13.55,1094739.0,1
544 | 13.6,14.05,14.05,13.53,1747729.0,0
545 | 13.95,14.03,14.3,13.84,2005614.0,1
546 | 13.91,14.05,14.1,13.63,1176512.0,1
547 | 13.8,14.55,14.57,13.73,2331997.0,0
548 | 14.23,14.0,14.33,13.93,2582872.0,0
549 | 14.22,12.92,14.3,12.76,3345716.0,0
550 | 12.83,12.54,12.92,12.53,2137815.0,0
551 | 12.08,11.69,12.08,11.38,2824949.0,1
552 | 11.78,11.72,11.84,11.56,1228782.0,1
553 | 11.87,11.94,12.21,11.84,1298178.0,1
554 | 11.96,12.0,12.03,11.76,864190.0,1
555 | 12.25,12.46,12.53,12.25,1268406.0,1
556 | 12.58,12.61,12.79,12.45,1013663.0,1
557 | 12.77,12.63,12.85,12.45,1045758.0,0
558 | 12.64,12.28,12.7,12.19,1285869.0,0
559 | 12.1,12.05,12.19,11.93,1214145.0,0
560 | 11.92,12.04,12.15,11.9,886957.0,0
561 | 11.92,11.95,12.04,11.85,663124.0,0
562 | 11.93,11.86,12.08,11.8,754183.0,1
563 | 11.95,12.1,12.11,11.77,1150162.0,0
564 | 12.15,12.05,12.34,12.04,1427570.0,1
565 | 12.05,12.11,12.15,11.95,689755.0,0
566 | 12.15,12.09,12.2,11.98,943876.0,0
567 | 12.15,12.03,12.17,11.95,1268701.0,0
568 | 12.04,12.02,12.22,12.0,1082267.0,0
569 | 11.98,11.92,12.0,11.83,635594.0,0
570 | 11.79,11.71,11.85,11.66,1155694.0,0
571 | 11.72,11.64,11.85,11.64,962983.0,1
572 | 11.66,11.83,11.84,11.61,808538.0,0
573 | 11.74,11.82,11.88,11.72,776150.0,1
574 | 11.95,11.9,12.12,11.85,1445109.0,0
575 | 11.9,11.66,11.97,11.62,984278.0,0
576 | 11.25,11.34,11.35,10.92,1825690.0,0
577 | 11.15,10.93,11.2,10.86,1383598.0,1
578 | 11.1,10.94,11.17,10.86,1103933.0,0
579 | 10.85,10.89,11.14,10.79,1099023.0,1
580 | 10.92,11.05,11.17,10.55,1330602.0,0
581 | 11.04,10.9,11.05,10.88,752173.0,0
582 | 10.87,10.71,10.99,10.7,1109316.0,0
583 | 10.6,10.56,10.67,10.51,890745.0,1
584 | 10.68,10.87,11.01,10.6,1602488.0,1
585 | 10.8,11.02,11.1,10.73,1074795.0,1
586 | 11.02,11.42,11.46,10.97,1390950.0,1
587 | 11.39,11.83,11.92,11.38,2095970.0,0
588 | 11.8,11.52,11.83,11.42,1173128.0,1
589 | 11.64,11.57,11.79,11.45,1300255.0,0
590 | 11.47,11.1,11.47,11.03,1427072.0,1
591 | 11.12,11.21,11.45,11.11,1301891.0,1
592 | 11.45,11.5,11.61,11.28,1475845.0,0
593 | 11.52,11.47,11.69,11.42,849131.0,0
594 | 11.51,11.35,11.58,11.2,958690.0,1
595 | 11.3,11.57,11.61,11.26,1070289.0,1
596 | 11.63,11.86,11.94,11.58,1461098.0,0
597 | 11.76,11.68,11.81,11.63,730286.0,0
598 | 11.66,11.42,11.69,11.31,874235.0,0
599 | 11.49,10.85,11.51,10.63,2709795.0,1
600 | 10.97,10.88,11.03,10.8,1190523.0,0
601 | 10.86,10.75,10.88,10.57,1281355.0,0
602 | 10.73,10.68,10.83,10.66,710509.0,1
603 | 10.7,10.81,10.83,10.64,974309.0,1
604 | 10.83,11.01,11.15,10.8,1373305.0,0
605 | 10.98,10.97,11.03,10.88,627656.0,1
606 | 11.03,11.01,11.09,10.91,552735.0,0
607 | 11.04,11.01,11.13,10.96,772369.0,1
608 | 11.09,11.18,11.23,11.03,1039297.0,0
609 | 11.18,11.12,11.19,11.02,669261.0,0
610 | 11.07,10.9,11.07,10.89,714362.0,0
611 | 10.91,10.82,10.94,10.78,586494.0,1
612 | 10.81,10.96,10.97,10.76,578384.0,0
613 | 11.07,10.95,11.11,10.93,763533.0,0
614 | 10.95,10.86,10.98,10.79,589871.0,0
615 | 10.82,10.65,10.82,10.62,991016.0,0
616 | 10.66,10.61,10.68,10.58,688152.0,0
617 | 10.61,10.59,10.67,10.55,593335.0,0
618 | 10.58,10.59,10.66,10.51,569400.0,0
619 | 10.58,10.38,10.63,10.35,889494.0,0
620 | 10.29,10.08,10.29,10.05,1124447.0,1
621 | 10.11,10.18,10.19,10.02,987360.0,1
622 | 10.15,10.19,10.29,10.07,597211.0,1
623 | 10.23,10.27,10.31,10.15,593038.0,0
624 | 10.29,10.26,10.3,10.11,656540.0,0
625 | 10.25,10.14,10.26,10.1,712743.0,1
626 | 10.2,10.37,10.46,10.18,1262638.0,0
627 | 10.33,10.12,10.33,10.06,1099379.0,0
628 | 10.06,10.04,10.13,10.0,721374.0,1
629 | 10.03,10.06,10.08,9.95,913300.0,0
630 | 10.04,9.95,10.06,9.95,530584.0,1
631 | 9.95,10.07,10.15,9.92,866392.0,1
632 | 10.08,10.17,10.29,10.06,1248707.0,0
633 | 10.05,9.87,10.15,9.82,1565874.0,1
634 | 9.87,9.91,9.95,9.76,763637.0,0
635 | 9.93,9.86,10.04,9.86,840070.0,0
636 | 9.8,9.85,9.87,9.77,657818.0,0
637 | 9.91,9.46,9.92,9.38,1195212.0,0
638 | 9.39,9.36,9.44,9.09,1124156.0,0
639 | 9.31,9.09,9.4,9.03,1045142.0,0
640 | 8.95,8.92,9.08,8.87,1110764.0,1
641 |
--------------------------------------------------------------------------------
/1.1 Financial-Prediction-CNN/images/conv.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.1 Financial-Prediction-CNN/images/conv.gif
--------------------------------------------------------------------------------
/1.1 Financial-Prediction-CNN/images/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.1 Financial-Prediction-CNN/images/model.png
--------------------------------------------------------------------------------
/1.1 Financial-Prediction-CNN/images/pool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.1 Financial-Prediction-CNN/images/pool.png
--------------------------------------------------------------------------------
/1.2 Financial-Prediction-LSTM/README.md:
--------------------------------------------------------------------------------
1 | **基于LSTM预测股票价格(简易版)**
2 |
3 | **数据集:**
4 |
5 | 沪深300数据
6 |
7 | **数据特征:**
8 |
9 | 只选用原始数据特征(开盘价、收盘价、最高价、最低价、交易量)
10 |
11 | **时间窗口:**
12 |
13 | 15天
14 |
15 | **代码流程:**
16 |
17 | 读取数据->生成标签(下一天收盘价)->分割数据集->LSTM模型预测->可视化->预测结果评估
18 |
19 | **LSTM网络结构:**
20 |
21 |
22 |
23 |
24 |
25 | **函数介绍:**
26 |
27 | 1、generate_label 生成标签(下一天收盘价)
28 |
29 | 2、generate_model_data 分割数据集
30 |
31 | 3、evaluate 结果评估
32 |
33 | 4、lstm_model LSTM预测模型
34 |
35 | 5、main 主函数(含可视化)
36 |
37 | **可视化输出:**
38 |
39 | 训练集拟合效果:
40 |
41 |
42 |
43 | 测试集拟合效果:
44 |
45 |
46 |
47 | **评估指标:**
48 |
49 | 1、RMSE:55.93668241713906
50 |
51 | 2、MAE:44.51361108752264
52 |
53 | 3、MAPE:1.3418267677320612
54 |
55 | 4、AMAPE:1.3420384401412058
56 |
--------------------------------------------------------------------------------
/1.2 Financial-Prediction-LSTM/code/Financila-Prediction-LSTM.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import numpy as np
3 | from keras.models import Sequential
4 | from keras.layers import Dense, Embedding
5 | from keras.layers import LSTM
6 | from sklearn.preprocessing import StandardScaler
7 | from sklearn.preprocessing import MinMaxScaler
8 |
9 | import math
10 | from sklearn.metrics import mean_squared_error
11 | from sklearn.metrics import mean_absolute_error
12 | import matplotlib.pyplot as plt
13 |
14 |
15 | # 生成标签值:下一天收盘价(涉及删除最后一条数据,不要重复执行该函数)
16 | def generate_label(data_path):
17 | df = pd.read_csv(data_path)
18 | next_close = list()
19 | for i in range(len(df['close']) - 1):
20 | next_close.append(df['close'][i + 1])
21 | next_close.append(0)
22 | df['next_close'] = next_close
23 | df.drop(df.index[-1], inplace=True)
24 | df.to_csv('temp.csv', index=None)
25 |
26 |
27 | # 生成训练和测试数据
28 | def generate_model_data(data_path, alpha, days):
29 | df = pd.read_csv(data_path)
30 | train_day = int((len(df['close']) - days + 1))
31 | for property in ['open', 'close', 'high', 'low', 'volume','next_close']:
32 | df[property] = scaler.fit_transform(np.reshape(np.array(df[property]), (-1, 1)))
33 | X_data, Y_data = list(), list()
34 | # 生成时序数据
35 | for i in range(train_day):
36 | Y_data.append(df['next_close'][i+days-1])
37 | for j in range(days):
38 | for m in ['open', 'close', 'high', 'low', 'volume']:
39 | X_data.append(df[m][i + j])
40 | X_data = np.reshape(np.array(X_data),(-1,5*15))# 5表示特征数量*天数
41 | train_length = int(len(Y_data) * alpha)
42 | X_train = np.reshape(np.array(X_data[:train_length]),(len(X_data[:train_length]), days, 5))
43 | X_test = np.reshape(np.array(X_data[train_length:]),(len(X_data[train_length:]), days, 5))
44 | Y_train,Y_test = np.array(Y_data[:train_length]),np.array(Y_data[train_length:])
45 | return X_train,Y_train,X_test,Y_test
46 |
47 |
48 | def calc_MAPE(real, predict):
49 | Score_MAPE = 0
50 | for i in range(len(predict[:, 0])):
51 | Score_MAPE += abs((predict[:, 0][i] - real[:, 0][i]) / real[:, 0][i])
52 | Score_MAPE = Score_MAPE * 100 / len(predict[:, 0])
53 | return Score_MAPE
54 |
55 |
56 | def calc_AMAPE(real, predict):
57 | Score_AMAPE = 0
58 | Score_MAPE_DIV = sum(real[:, 0]) / len(real[:, 0])
59 | for i in range(len(predict[:, 0])):
60 | Score_AMAPE += abs((predict[:, 0][i] - real[:, 0][i]) / Score_MAPE_DIV)
61 | Score_AMAPE = Score_AMAPE * 100 / len(predict[:, 0])
62 | return Score_AMAPE
63 |
64 |
65 | def evaluate(real, predict):
66 | RMSE = math.sqrt(mean_squared_error(real[:, 0], predict[:, 0]))
67 | MAE = mean_absolute_error(real[:, 0], predict[:, 0])
68 | MAPE = calc_MAPE(real, predict)
69 | AMAPE = calc_AMAPE(real, predict)
70 | return RMSE, MAE, MAPE, AMAPE
71 |
72 |
73 | def lstm_model(X_train, Y_train, X_test, Y_test):
74 | model = Sequential()
75 | model.add(LSTM(units=20, input_shape=(X_train.shape[1], X_train.shape[2])))
76 | model.add(Dense(1, activation='hard_sigmoid'))
77 | model.compile(loss='mean_squared_error', optimizer='adam')
78 | model.fit(X_train, Y_train, epochs=200, batch_size=20, verbose=1)
79 |
80 | trainPredict = model.predict(X_train)
81 | trainPredict = scaler.inverse_transform(trainPredict)
82 | Y_train = scaler.inverse_transform(np.reshape(Y_train, (-1, 1)))
83 |
84 | testPredict = model.predict(X_test)
85 | testPredict = scaler.inverse_transform(testPredict)
86 | Y_test = scaler.inverse_transform(np.reshape(Y_test, (-1, 1)))
87 |
88 | return Y_train, trainPredict, Y_test, testPredict
89 |
90 |
91 | if __name__=='__main__':
92 | data_path = '../data/stock.csv'
93 | days = 15
94 | alpha = 0.8
95 | generate_label(data_path)
96 | scaler = MinMaxScaler(feature_range=(0, 1))
97 | X_train, Y_train, X_test, Y_test = generate_model_data('temp.csv',alpha,days)
98 | train_Y, trainPredict, test_Y, testPredict = lstm_model(X_train, Y_train, X_test, Y_test)
99 | plt.plot(list(trainPredict), color='red', label='prediction')
100 | plt.plot(list(train_Y), color='blue', label='real')
101 | plt.legend(loc='upper left')
102 | plt.title('train data')
103 | plt.show()
104 | plt.plot(list(testPredict), color='red', label='prediction')
105 | plt.plot(list(test_Y), color='blue', label='real')
106 | plt.legend(loc='upper left')
107 | plt.title('test data')
108 | plt.show()
109 |
110 | RMSE, MAE, MAPE, AMAPE = evaluate(test_Y, testPredict)
111 | print(RMSE, MAE, MAPE, AMAPE)
112 |
--------------------------------------------------------------------------------
/1.2 Financial-Prediction-LSTM/images/lstm_model2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.2 Financial-Prediction-LSTM/images/lstm_model2.png
--------------------------------------------------------------------------------
/1.2 Financial-Prediction-LSTM/images/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.2 Financial-Prediction-LSTM/images/test.png
--------------------------------------------------------------------------------
/1.2 Financial-Prediction-LSTM/images/train.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.2 Financial-Prediction-LSTM/images/train.png
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/README.md:
--------------------------------------------------------------------------------
1 | **基于随机森林预测股票未来第d+k天相比于第d天的涨/跌(简易版)**
2 |
3 | 参考论文:Predicting the direction of stock market prices using random forest
4 |
5 | **论文流程:**
6 |
7 |
8 |
9 | **算法流程:**
10 |
11 | 获取金融数据->指数平滑->计算技术指标->数据归一化->随机森林模型预测
12 |
13 | **函数介绍:**
14 |
15 | 1、get_stock_data 通过Tushare获取原始股票数据
16 |
17 | 2、exponential_smoothing、em_stock_data 股票指数平滑处理
18 |
19 | 3、calc_technical_indicators 计算常用的技术指标
20 |
21 | 4、normalization 数据归一化处理并分割数据集
22 |
23 | 5、random_forest_model 随机森林模型并返回准确率和特征排名
24 |
25 | **决策树:**
26 |
27 | (1)ID3: 基于信息增益大的数据特征划分层次
28 |
29 | (2)C4.5: 基于信息增益比=信息增益/特征熵划分层次
30 |
31 | (3)CART: 基于Gini划分层次
32 |
33 | 基于Bagging集成学习算法,有多棵决策树组成(通常是CART决策树),其主要特性有:
34 |
35 | (1)样本和特征随机采样
36 |
37 | (2)适用于数据维度大的数据集
38 |
39 | (3)对异常样本点不敏感
40 |
41 | (4)可以并行训练(决策树间独立同分布)
42 |
43 | **算法输出:**
44 |
45 | 注意:算法仅用于参考学习交流,由于是研一时期独立编写(以后可能进一步完善),所公开的代码并非足够完善和严谨,如以下问题:
46 |
47 | 1. 模型涉及参数未寻优(可考虑网格搜索、随机搜索、贝叶斯优化)
48 |
49 | 1. 指数平滑因子
50 |
51 | 2. 随机森林模型树数量、决策树深度、叶子节点最小样本数等
52 |
53 | 3. 未来第k天的选择
54 |
55 | 4. 归一化方法
56 |
57 | 2. 随机森林模型其实本身不需要数据归一化(如算法对数据集进行归一化也需要考虑对训练集、验证集、测试集独立归一化)
58 |
59 | 3. 股票预测考虑的数据特征:
60 |
61 | 1. 原始数据特征(open/close/high/low)
62 |
63 | 2. 技术指标(Technical indicator)
64 |
65 | 3. 企业公开公告信息
66 |
67 | 4. 企业未来规划
68 |
69 | 5. 企业年度报表
70 |
71 | 6. 社会舆论
72 |
73 | 7. 股民情绪
74 |
75 | 8. 国家政策
76 |
77 | 9. 股票间影响等
78 |
79 | 4.模型输出结果
80 |
81 |
82 |
83 | 5.随机森林参数优化参考表
84 |
85 |
86 |
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/code/Financial-Prediction-Random-Forest.py:
--------------------------------------------------------------------------------
1 | from numpy import *
2 | import numpy as np
3 | import pandas as pd
4 | from sklearn.ensemble import RandomForestClassifier
5 | import warnings
6 | import tushare as ts
7 | import talib
8 | from sklearn import preprocessing
9 |
10 |
11 | # Get the stock data from tushare
12 | def get_stock_data(code,pred_days):
13 | df_raw = ts.get_k_data(code)
14 | # Classification
15 | label = ['']*len(df_raw['close'])
16 | for i in range(len(df_raw['close'])-pred_days):
17 | if (df_raw['close'][i + pred_days] - df_raw['close'][i]) > 0:
18 | label[i] = 1
19 | else:
20 | label[i] = -1
21 | # Save to typefile file
22 | df_raw['LABEL'] = label
23 | # del df_raw['date']
24 | del df_raw['code']
25 | df_raw.to_csv('raw_stock.csv', index=None)
26 | return 'raw_stock.csv'
27 |
28 |
29 | def exponential_smoothing(alpha, s):
30 | s2 = np.zeros(s.shape)
31 | s2[0] = s[0]
32 | for i in range(1, len(s2)):
33 | s2[i] = alpha*float(s[i])+(1-alpha)*float(s2[i-1])
34 | return s2
35 |
36 |
37 | # preprocess the stock data with exponential_smoothing
38 | def em_stock_data(pathfile, alpha):
39 | df = pd.read_csv(pathfile)
40 | es_open = pd.DataFrame(exponential_smoothing(alpha,np.array(df['open'])))
41 | es_close = pd.DataFrame(exponential_smoothing(alpha, np.array(df['close'])))
42 | es_high = pd.DataFrame(exponential_smoothing(alpha, np.array(df['high'])))
43 | es_low = pd.DataFrame(exponential_smoothing(alpha, np.array(df['low'])))
44 | df['open'],df['close'],df['high'],df['low'] = es_open,es_close,es_high,es_low
45 | df.to_csv('em_stock.csv',index=None)
46 | return str('em_stock.csv')
47 |
48 |
49 | # preprocess the stock data with calc_technical_indicators
50 | def calc_technical_indicators(filepath):
51 | df = pd.read_csv(filepath, index_col='date')
52 | # Simple Moving Average SMA 简单移动平均
53 | df['SMA5'] = talib.MA(df['close'], timeperiod=5)
54 | df['SMA10'] = talib.MA(df['close'], timeperiod=10)
55 | df['SMA20'] = talib.MA(df['close'], timeperiod=20)
56 | # Williams Overbought/Oversold Index WR 威廉指标
57 | df['WR14'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=14)
58 | df['WR18'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=18)
59 | df['WR22'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=22)
60 | # Moving Average Convergence / Divergence MACD 指数平滑移动平均线
61 | DIFF1, DEA1, df['MACD9'] = talib.MACD(np.array(df['close']), fastperiod=12, slowperiod=26, signalperiod=9)
62 | DIFF2, DEA2, df['MACD10'] = talib.MACD(np.array(df['close']), fastperiod=14, slowperiod=28, signalperiod=10)
63 | df['MACD9'] = df['MACD9'] * 2
64 | df['MACD10'] = df['MACD10'] * 2
65 | # Relative Strength Index RSI 相对强弱指数
66 | df['RSI15'] = talib.RSI(np.array(df['close']), timeperiod=15)
67 | df['RSI20'] = talib.RSI(np.array(df['close']), timeperiod=20)
68 | df['RSI25'] = talib.RSI(np.array(df['close']), timeperiod=25)
69 | df['RSI30'] = talib.RSI(np.array(df['close']), timeperiod=30)
70 | # Stochastic Oscillator Slow STOCH 常用的KDJ指标中的KD指标
71 | df['STOCH'] = \
72 | talib.STOCH(df['high'], df['low'], df['close'], fastk_period=9, slowk_period=3, slowk_matype=0, slowd_period=3,
73 | slowd_matype=0)[1]
74 | # On Balance Volume OBV 能量潮
75 | df['OBV'] = talib.OBV(np.array(df['close']), df['volume'])
76 | # Simple moving average SMA 简单移动平均
77 | df['SMA15'] = talib.SMA(df['close'], timeperiod=15)
78 | df['SMA20'] = talib.SMA(df['close'], timeperiod=20)
79 | df['SMA25'] = talib.SMA(df['close'], timeperiod=25)
80 | df['SMA30'] = talib.SMA(df['close'], timeperiod=30)
81 | # Money Flow Index MFI MFI指标
82 | df['MFI14'] = talib.MFI(df['high'], df['low'], df['close'], df['volume'], timeperiod=14)
83 | df['MFI18'] = talib.MFI(df['high'], df['low'], df['close'], df['volume'], timeperiod=18)
84 | df['MFI22'] = talib.MFI(df['high'], df['low'], df['close'], df['volume'], timeperiod=22)
85 | # Ultimate Oscillator UO 终极指标
86 | df['UO7'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=7, timeperiod2=14, timeperiod3=28)
87 | df['UO8'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=8, timeperiod2=16, timeperiod3=22)
88 | df['UO9'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=9, timeperiod2=18, timeperiod3=26)
89 | # Rate of change Percentage ROCP 价格变化率
90 | df['ROCP'] = talib.ROCP(df['close'], timeperiod=10)
91 | df.to_csv('final_stock.csv',index=None)
92 | return 'final_stock.csv'
93 |
94 |
95 | # preprocess the stock data with normalization and split data
96 | def normalization(filepath, pred_days):
97 | df= pd.read_csv(filepath)
98 | df = df[36:(len(df['volume']) - pred_days)]
99 | features = list(df.T.index)
100 | features.remove('LABEL')
101 | # del df['code']
102 | # normalization
103 | min_max_scaler = preprocessing.MinMaxScaler()
104 | for i in range(len(features)):
105 | df[features[i]] = min_max_scaler.fit_transform(np.reshape(np.array(df[features[i]]),(-1,1)))
106 | # split data set
107 | df_len = len(df)
108 | df_train = df[:int(df_len * 0.8)]
109 | df_valid = df[int(df_len * 0.8):int(df_len * 0.9)]
110 | df_test = df[int(df_len * 0.9):]
111 | df_train.to_csv('train.csv', index=None)
112 | df_valid.to_csv('valid.csv', index=None)
113 | df_test.to_csv('test.csv', index=None)
114 | return 'train.csv', 'valid.csv', 'test.csv', features
115 |
116 |
117 | def random_forest_model(train_filepath, valid_filepath, test_filepath, features):
118 | df_train = pd.read_csv(train_filepath)
119 | df_valid = pd.read_csv(valid_filepath)
120 | df_test = pd.read_csv(test_filepath)
121 | alg = RandomForestClassifier(bootstrap=True,min_samples_leaf=2, n_estimators=1000)
122 | alg.fit(df_train[features],df_train['LABEL'])
123 | predict = alg.predict(df_valid[features])
124 | features_degree = sorted(zip(map(lambda x: round(x, 4), alg.feature_importances_),df_train[features]), reverse=True)
125 | pred_accuracy = (df_valid['LABEL'] == predict).mean()
126 | return pred_accuracy,features_degree
127 |
128 |
129 | if __name__=='__main__':
130 | warnings.filterwarnings(action='ignore', category=DeprecationWarning)
131 | code = '600585'
132 | pred_days = 5
133 | raw_filepath = get_stock_data(code=code, pred_days=pred_days)
134 | em_filepath = em_stock_data(pathfile=raw_filepath, alpha=0.1)
135 | final_filepath = calc_technical_indicators(filepath=em_filepath)
136 | train_filepath, valid_filepath, test_filepath, features = normalization(final_filepath,pred_days=pred_days)
137 | pred_accuracy, features = random_forest_model(train_filepath, valid_filepath, test_filepath, features)
138 | print(pred_accuracy)
139 |
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/doc/Predicting the direction of stock market prices using random forest .pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.3 Financial-Prediction-Random-Forest/doc/Predicting the direction of stock market prices using random forest .pdf
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/images/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.3 Financial-Prediction-Random-Forest/images/model.png
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/images/model_pic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.3 Financial-Prediction-Random-Forest/images/model_pic.jpg
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/images/param.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.3 Financial-Prediction-Random-Forest/images/param.png
--------------------------------------------------------------------------------
/1.3 Financial-Prediction-Random-Forest/images/result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/1.3 Financial-Prediction-Random-Forest/images/result.png
--------------------------------------------------------------------------------
/1.4 Financilal-Prediction-ARMA/README.md:
--------------------------------------------------------------------------------
1 | **基于ARMA预测股票价格(5分钟数据)**
2 |
3 | 1.检测数据平稳化
4 |
5 | 2.差分/对数等数据处理
6 |
7 | 3.使用ARMA模型预测
8 |
9 | 备注:部分代码参考网络资源
10 |
--------------------------------------------------------------------------------
/1.6 Financial-Prediction-Muiti-Input-Conv1D/Multi_Input_Conv1D.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "2.0.0-alpha0\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "import pandas as pd\n",
18 | "import numpy as np\n",
19 | "import tensorflow as tf\n",
20 | "from tensorflow import keras\n",
21 | "from tensorflow.keras import layers\n",
22 | "print(tf.__version__)"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 27,
28 | "metadata": {},
29 | "outputs": [
30 | {
31 | "name": "stdout",
32 | "output_type": "stream",
33 | "text": [
34 | "Model: \"model_14\"\n",
35 | "__________________________________________________________________________________________________\n",
36 | "Layer (type) Output Shape Param # Connected to \n",
37 | "==================================================================================================\n",
38 | "input1 (InputLayer) [(None, 50, 1)] 0 \n",
39 | "__________________________________________________________________________________________________\n",
40 | "input2 (InputLayer) [(None, 50, 1)] 0 \n",
41 | "__________________________________________________________________________________________________\n",
42 | "input3 (InputLayer) [(None, 50, 1)] 0 \n",
43 | "__________________________________________________________________________________________________\n",
44 | "conv1d_66 (Conv1D) (None, 25, 128) 512 input1[0][0] \n",
45 | "__________________________________________________________________________________________________\n",
46 | "conv1d_67 (Conv1D) (None, 25, 128) 512 input2[0][0] \n",
47 | "__________________________________________________________________________________________________\n",
48 | "conv1d_68 (Conv1D) (None, 25, 128) 512 input3[0][0] \n",
49 | "__________________________________________________________________________________________________\n",
50 | "max_pooling1d_66 (MaxPooling1D) (None, 12, 128) 0 conv1d_66[0][0] \n",
51 | "__________________________________________________________________________________________________\n",
52 | "max_pooling1d_67 (MaxPooling1D) (None, 12, 128) 0 conv1d_67[0][0] \n",
53 | "__________________________________________________________________________________________________\n",
54 | "max_pooling1d_68 (MaxPooling1D) (None, 12, 128) 0 conv1d_68[0][0] \n",
55 | "__________________________________________________________________________________________________\n",
56 | "conv1d_69 (Conv1D) (None, 6, 256) 98560 max_pooling1d_66[0][0] \n",
57 | "__________________________________________________________________________________________________\n",
58 | "conv1d_70 (Conv1D) (None, 6, 256) 98560 max_pooling1d_67[0][0] \n",
59 | "__________________________________________________________________________________________________\n",
60 | "conv1d_71 (Conv1D) (None, 6, 256) 98560 max_pooling1d_68[0][0] \n",
61 | "__________________________________________________________________________________________________\n",
62 | "max_pooling1d_69 (MaxPooling1D) (None, 3, 256) 0 conv1d_69[0][0] \n",
63 | "__________________________________________________________________________________________________\n",
64 | "max_pooling1d_70 (MaxPooling1D) (None, 3, 256) 0 conv1d_70[0][0] \n",
65 | "__________________________________________________________________________________________________\n",
66 | "max_pooling1d_71 (MaxPooling1D) (None, 3, 256) 0 conv1d_71[0][0] \n",
67 | "__________________________________________________________________________________________________\n",
68 | "conv1d_72 (Conv1D) (None, 2, 512) 393728 max_pooling1d_69[0][0] \n",
69 | "__________________________________________________________________________________________________\n",
70 | "conv1d_73 (Conv1D) (None, 2, 512) 393728 max_pooling1d_70[0][0] \n",
71 | "__________________________________________________________________________________________________\n",
72 | "conv1d_74 (Conv1D) (None, 2, 512) 393728 max_pooling1d_71[0][0] \n",
73 | "__________________________________________________________________________________________________\n",
74 | "max_pooling1d_72 (MaxPooling1D) (None, 1, 512) 0 conv1d_72[0][0] \n",
75 | "__________________________________________________________________________________________________\n",
76 | "max_pooling1d_73 (MaxPooling1D) (None, 1, 512) 0 conv1d_73[0][0] \n",
77 | "__________________________________________________________________________________________________\n",
78 | "max_pooling1d_74 (MaxPooling1D) (None, 1, 512) 0 conv1d_74[0][0] \n",
79 | "__________________________________________________________________________________________________\n",
80 | "bidirectional_44 (Bidirectional (None, 1, 400) 1140800 max_pooling1d_72[0][0] \n",
81 | "__________________________________________________________________________________________________\n",
82 | "bidirectional_45 (Bidirectional (None, 1, 400) 1140800 max_pooling1d_73[0][0] \n",
83 | "__________________________________________________________________________________________________\n",
84 | "bidirectional_46 (Bidirectional (None, 1, 400) 1140800 max_pooling1d_74[0][0] \n",
85 | "__________________________________________________________________________________________________\n",
86 | "dropout_44 (Dropout) (None, 1, 400) 0 bidirectional_44[0][0] \n",
87 | "__________________________________________________________________________________________________\n",
88 | "dropout_45 (Dropout) (None, 1, 400) 0 bidirectional_45[0][0] \n",
89 | "__________________________________________________________________________________________________\n",
90 | "dropout_46 (Dropout) (None, 1, 400) 0 bidirectional_46[0][0] \n",
91 | "__________________________________________________________________________________________________\n",
92 | "bidirectional_47 (Bidirectional (None, 1, 400) 961600 dropout_44[0][0] \n",
93 | "__________________________________________________________________________________________________\n",
94 | "bidirectional_48 (Bidirectional (None, 1, 400) 961600 dropout_45[0][0] \n",
95 | "__________________________________________________________________________________________________\n",
96 | "bidirectional_49 (Bidirectional (None, 1, 400) 961600 dropout_46[0][0] \n",
97 | "__________________________________________________________________________________________________\n",
98 | "dropout_47 (Dropout) (None, 1, 400) 0 bidirectional_47[0][0] \n",
99 | "__________________________________________________________________________________________________\n",
100 | "dropout_48 (Dropout) (None, 1, 400) 0 bidirectional_48[0][0] \n",
101 | "__________________________________________________________________________________________________\n",
102 | "dropout_49 (Dropout) (None, 1, 400) 0 bidirectional_49[0][0] \n",
103 | "__________________________________________________________________________________________________\n",
104 | "concatenate_19 (Concatenate) (None, 1, 1200) 0 dropout_47[0][0] \n",
105 | " dropout_48[0][0] \n",
106 | " dropout_49[0][0] \n",
107 | "__________________________________________________________________________________________________\n",
108 | "flatten_14 (Flatten) (None, 1200) 0 concatenate_19[0][0] \n",
109 | "__________________________________________________________________________________________________\n",
110 | "dense_14 (Dense) (None, 10) 12010 flatten_14[0][0] \n",
111 | "__________________________________________________________________________________________________\n",
112 | "output (Dense) (None, 1) 11 dense_14[0][0] \n",
113 | "==================================================================================================\n",
114 | "Total params: 7,797,621\n",
115 | "Trainable params: 7,797,621\n",
116 | "Non-trainable params: 0\n",
117 | "__________________________________________________________________________________________________\n"
118 | ]
119 | }
120 | ],
121 | "source": [
122 | "HIDDEN_UNITS = 200\n",
123 | "DROPOUT_RATE = 0.5\n",
124 | "CHANNEL1 = 128\n",
125 | "CHANNEL2 = 256\n",
126 | "CHANNEL3 = 512\n",
127 | "KERNELSIZE = 3\n",
128 | "POOLSIZE = 2\n",
129 | "\n",
130 | "\"\"\"构建多输入模型\"\"\"\n",
131 | "input1_= keras.Input(shape=(50, 1), name='input1')\n",
132 | "input2_ = keras.Input(shape=(50, 1), name='input2')\n",
133 | "input3_ = keras.Input(shape=(50, 1), name='input3')\n",
134 | "\n",
135 | "x1 = layers.Conv1D(CHANNEL1, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(input1_)\n",
136 | "x1 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x1)\n",
137 | "\n",
138 | "x2 = layers.Conv1D(CHANNEL1, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(input2_)\n",
139 | "x2 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x2)\n",
140 | "\n",
141 | "x3 = layers.Conv1D(CHANNEL1, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(input3_)\n",
142 | "x3 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x3)\n",
143 | "#=================================================================================================================\n",
144 | "x1_2 = layers.Conv1D(CHANNEL2, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x1)\n",
145 | "x1_3 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x1_2)\n",
146 | "\n",
147 | "x2_2 = layers.Conv1D(CHANNEL2, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x2)\n",
148 | "x2_3 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x2_2)\n",
149 | "\n",
150 | "x3_2 = layers.Conv1D(CHANNEL2, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x3)\n",
151 | "x3_3 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x3_2)\n",
152 | "#=================================================================================================================\n",
153 | "x1_4 = layers.Conv1D(CHANNEL3, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x1_3)\n",
154 | "x1_5 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x1_4)\n",
155 | "\n",
156 | "x2_4 = layers.Conv1D(CHANNEL3, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x2_3)\n",
157 | "x2_5 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x2_4)\n",
158 | "\n",
159 | "x3_4 = layers.Conv1D(CHANNEL3, kernel_size=KERNELSIZE, strides=2, activation='relu', padding='same')(x3_3)\n",
160 | "x3_5 = layers.MaxPool1D(pool_size=POOLSIZE, strides=2)(x3_4)\n",
161 | "#=================================================================================================================\n",
162 | "x1_6 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x1_5)\n",
163 | "x1_7 = layers.Dropout(DROPOUT_RATE)(x1_6)\n",
164 | "\n",
165 | "x2_6 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x2_5)\n",
166 | "x2_7 = layers.Dropout(DROPOUT_RATE)(x2_6)\n",
167 | "\n",
168 | "x3_6 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x3_5)\n",
169 | "x3_7 = layers.Dropout(DROPOUT_RATE)(x3_6)\n",
170 | "#=================================================================================================================\n",
171 | "x1_8 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x1_7)\n",
172 | "x1_9 = layers.Dropout(DROPOUT_RATE)(x1_8)\n",
173 | "\n",
174 | "x2_8 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x2_7)\n",
175 | "x2_9 = layers.Dropout(DROPOUT_RATE)(x2_8)\n",
176 | "\n",
177 | "x3_8 = layers.Bidirectional(layers.LSTM(HIDDEN_UNITS, return_sequences=True))(x3_7)\n",
178 | "x3_9 = layers.Dropout(DROPOUT_RATE)(x3_8)\n",
179 | "#=================================================================================================================\n",
180 | "\n",
181 | "x = layers.concatenate([x1_9, x2_9, x3_9])\n",
182 | "x = layers.Flatten()(x)\n",
183 | "\n",
184 | "x = layers.Dense(10, activation='relu')(x)\n",
185 | "output_ = layers.Dense(1, activation='sigmoid', name='output')(x)\n",
186 | "\n",
187 | "model = keras.Model(inputs=[input1_, input2_,input3_], outputs=[output_])\n",
188 | "model.summary()"
189 | ]
190 | },
191 | {
192 | "cell_type": "code",
193 | "execution_count": null,
194 | "metadata": {},
195 | "outputs": [],
196 | "source": []
197 | }
198 | ],
199 | "metadata": {
200 | "kernelspec": {
201 | "display_name": "Python 3",
202 | "language": "python",
203 | "name": "python3"
204 | },
205 | "language_info": {
206 | "codemirror_mode": {
207 | "name": "ipython",
208 | "version": 3
209 | },
210 | "file_extension": ".py",
211 | "mimetype": "text/x-python",
212 | "name": "python",
213 | "nbconvert_exporter": "python",
214 | "pygments_lexer": "ipython3",
215 | "version": "3.7.4"
216 | }
217 | },
218 | "nbformat": 4,
219 | "nbformat_minor": 2
220 | }
221 |
--------------------------------------------------------------------------------
/1.7 Financial-Prediction-2DCNN/Financial_2DCNN_Prediction.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 23,
6 | "metadata": {},
7 | "outputs": [
8 | {
9 | "name": "stdout",
10 | "output_type": "stream",
11 | "text": [
12 | "2.0.0-alpha0\n"
13 | ]
14 | }
15 | ],
16 | "source": [
17 | "import pandas as pd\n",
18 | "import numpy as np\n",
19 | "import tensorflow as tf\n",
20 | "from tensorflow import keras\n",
21 | "from tensorflow.keras import layers\n",
22 | "import math\n",
23 | "print(tf.__version__)"
24 | ]
25 | },
26 | {
27 | "cell_type": "code",
28 | "execution_count": 24,
29 | "metadata": {},
30 | "outputs": [
31 | {
32 | "data": {
33 | "text/html": [
34 | "
\n",
35 | "\n",
48 | "
\n",
49 | " \n",
50 | " \n",
51 | " | \n",
52 | " open | \n",
53 | " high | \n",
54 | " low | \n",
55 | " close | \n",
56 | " volumn | \n",
57 | "
\n",
58 | " \n",
59 | " \n",
60 | " \n",
61 | " 0 | \n",
62 | " 2551.81 | \n",
63 | " 2556.93 | \n",
64 | " 2551.81 | \n",
65 | " 2556.41 | \n",
66 | " 790880900 | \n",
67 | "
\n",
68 | " \n",
69 | " 1 | \n",
70 | " 2557.12 | \n",
71 | " 2557.82 | \n",
72 | " 2544.57 | \n",
73 | " 2544.57 | \n",
74 | " 480816100 | \n",
75 | "
\n",
76 | " \n",
77 | " 2 | \n",
78 | " 2543.33 | \n",
79 | " 2543.33 | \n",
80 | " 2538.50 | \n",
81 | " 2538.50 | \n",
82 | " 359649200 | \n",
83 | "
\n",
84 | " \n",
85 | " 3 | \n",
86 | " 2538.76 | \n",
87 | " 2538.76 | \n",
88 | " 2534.36 | \n",
89 | " 2535.52 | \n",
90 | " 294182800 | \n",
91 | "
\n",
92 | " \n",
93 | " 4 | \n",
94 | " 2535.29 | \n",
95 | " 2541.49 | \n",
96 | " 2535.18 | \n",
97 | " 2541.49 | \n",
98 | " 267944600 | \n",
99 | "
\n",
100 | " \n",
101 | "
\n",
102 | "
"
103 | ],
104 | "text/plain": [
105 | " open high low close volumn\n",
106 | "0 2551.81 2556.93 2551.81 2556.41 790880900\n",
107 | "1 2557.12 2557.82 2544.57 2544.57 480816100\n",
108 | "2 2543.33 2543.33 2538.50 2538.50 359649200\n",
109 | "3 2538.76 2538.76 2534.36 2535.52 294182800\n",
110 | "4 2535.29 2541.49 2535.18 2541.49 267944600"
111 | ]
112 | },
113 | "execution_count": 24,
114 | "metadata": {},
115 | "output_type": "execute_result"
116 | }
117 | ],
118 | "source": [
119 | "data = pd.read_csv('5min_data.csv',encoding=\"gb2312\")\n",
120 | "data.columns=['date','open','high','low','close','volumn'] \n",
121 | "data = pd.DataFrame(data,columns=['open','high','low','close','volumn'])\n",
122 | "data.head()"
123 | ]
124 | },
125 | {
126 | "cell_type": "code",
127 | "execution_count": 25,
128 | "metadata": {},
129 | "outputs": [],
130 | "source": [
131 | "# 特征数量\n",
132 | "features_num = len(data.columns) - 1\n",
133 | "# 定义观察时间窗口120/170/220/270\n",
134 | "observe_time = 120\n",
135 | "# 定义预测时间窗口5/10/15\n",
136 | "predict_time = 5\n",
137 | "# 一组时间窗口\n",
138 | "group_time = observe_time + predict_time"
139 | ]
140 | },
141 | {
142 | "cell_type": "markdown",
143 | "metadata": {},
144 | "source": [
145 | "### 分割特征及标签"
146 | ]
147 | },
148 | {
149 | "cell_type": "code",
150 | "execution_count": 26,
151 | "metadata": {},
152 | "outputs": [
153 | {
154 | "name": "stdout",
155 | "output_type": "stream",
156 | "text": [
157 | "(57515, 120, 5) (57515,)\n"
158 | ]
159 | }
160 | ],
161 | "source": [
162 | "features,returns = list(),list()\n",
163 | "for i in range(len(data.close)-group_time):\n",
164 | " features.append(np.array(data[i:i+observe_time]))\n",
165 | " returns.append(data.close[i+group_time]-data.close[i+observe_time])\n",
166 | "features = np.array(features)\n",
167 | "returns = np.array(returns)\n",
168 | "print(features.shape,returns.shape)"
169 | ]
170 | },
171 | {
172 | "cell_type": "markdown",
173 | "metadata": {},
174 | "source": [
175 | "### 分割训练集和测试集"
176 | ]
177 | },
178 | {
179 | "cell_type": "code",
180 | "execution_count": 27,
181 | "metadata": {},
182 | "outputs": [],
183 | "source": [
184 | "alpha = 0.8\n",
185 | "train_length = int(len(features)*alpha)\n",
186 | "\n",
187 | "train_data = features[:train_length]\n",
188 | "test_data = features[train_length:]\n",
189 | "\n",
190 | "train_return = returns[:train_length]\n",
191 | "test_return = returns[train_length:]"
192 | ]
193 | },
194 | {
195 | "cell_type": "markdown",
196 | "metadata": {},
197 | "source": [
198 | "### 根据收益率实现三分类打标签"
199 | ]
200 | },
201 | {
202 | "cell_type": "code",
203 | "execution_count": 28,
204 | "metadata": {},
205 | "outputs": [],
206 | "source": [
207 | "def segmentation(features,returns,per):\n",
208 | " neg_list,pos_list,mid_list = list(),list(),list()\n",
209 | " neg_value = round(float(sorted(returns)[int(len(returns)*per):int(len(returns)*per)+1][0]),2)\n",
210 | " pos_value = round(float(sorted(returns)[int(len(returns)*(1-per)):int(len(returns)*(1-per))+1][0]),2)\n",
211 | " mid_left_value = round(float(sorted(returns)[int(len(returns)*(0.5*(1-per))):int((len(returns)*(0.5*(1-per))))+1][0]),2)\n",
212 | " mid_right_value = round(float(sorted(returns)[int(len(returns)*(0.5*(1+per))):int((len(returns)*(0.5*(1+per))))+1][0]),2)\n",
213 | " print('正样本最小值:%.2f\\t中样本范围:%.2f~%.2f\\t负样本最大值:%.2f'%(pos_value,mid_left_value,mid_right_value,neg_value))\n",
214 | " data_x = list()\n",
215 | " data_y = list()\n",
216 | " for i in range(len(returns)):\n",
217 | " if returns[i]<=neg_value:\n",
218 | " data_x.append(features[i])\n",
219 | " data_y.append(0)\n",
220 | " elif mid_left_value<=returns[i]<=mid_right_value:\n",
221 | " data_x.append(features[i])\n",
222 | " data_y.append(1) \n",
223 | " elif returns[i]>=pos_value:\n",
224 | " data_x.append(features[i])\n",
225 | " data_y.append(2)\n",
226 | " else:\n",
227 | " continue\n",
228 | " data_x = np.array(data_x)\n",
229 | " data_y = np.array(data_y)\n",
230 | " data_x = data_x.reshape(data_x.shape[0],data_x.shape[1],data_x.shape[2],1)\n",
231 | "# data_y = data_y.reshape(data_y.shape[0],1)\n",
232 | " return data_x,data_y"
233 | ]
234 | },
235 | {
236 | "cell_type": "code",
237 | "execution_count": 29,
238 | "metadata": {},
239 | "outputs": [
240 | {
241 | "name": "stdout",
242 | "output_type": "stream",
243 | "text": [
244 | "正样本最小值:15.62\t中样本范围:-0.90~1.40\t负样本最大值:-14.11\n",
245 | "(13804, 120, 5, 1) (13804,)\n"
246 | ]
247 | }
248 | ],
249 | "source": [
250 | "train_x,train_y = segmentation(train_data,train_return,per=0.1)\n",
251 | "print(train_x.shape,train_y.shape)"
252 | ]
253 | },
254 | {
255 | "cell_type": "code",
256 | "execution_count": 30,
257 | "metadata": {},
258 | "outputs": [
259 | {
260 | "name": "stdout",
261 | "output_type": "stream",
262 | "text": [
263 | "正样本最小值:9.36\t中样本范围:-0.61~1.08\t负样本最大值:-8.36\n",
264 | "(3453, 120, 5, 1) (3453,)\n"
265 | ]
266 | }
267 | ],
268 | "source": [
269 | "test_x,test_y = segmentation(test_data,test_return,per=0.1)\n",
270 | "print(test_x.shape,test_y.shape)"
271 | ]
272 | },
273 | {
274 | "cell_type": "code",
275 | "execution_count": 31,
276 | "metadata": {},
277 | "outputs": [],
278 | "source": [
279 | "model = keras.Sequential()\n",
280 | "model.add(layers.Conv2D(input_shape=(train_x.shape[1], train_x.shape[2], train_x.shape[3]),\n",
281 | " filters=32, kernel_size=(3,3), strides=(1,1), padding='same',\n",
282 | " activation='relu'))\n",
283 | "model.add(layers.BatchNormalization())\n",
284 | "model.add(layers.MaxPool2D(pool_size=(2,2)))"
285 | ]
286 | },
287 | {
288 | "cell_type": "code",
289 | "execution_count": 32,
290 | "metadata": {},
291 | "outputs": [],
292 | "source": [
293 | "model.add(layers.Conv2D(input_shape=(train_x.shape[1], train_x.shape[2], train_x.shape[3]),\n",
294 | " filters=16, kernel_size=(3,3), strides=(1,1), padding='same',\n",
295 | " activation='relu'))\n",
296 | "model.add(layers.MaxPool2D(pool_size=(2,2)))\n",
297 | "model.add(layers.Flatten())\n",
298 | "model.add(layers.Dense(16, activation='relu'))\n",
299 | "model.add(layers.Dense(3, activation='softmax'))"
300 | ]
301 | },
302 | {
303 | "cell_type": "code",
304 | "execution_count": 39,
305 | "metadata": {},
306 | "outputs": [],
307 | "source": [
308 | "def myloss(y_true, y_pred, e=0.1):\n",
309 | " return ((y_true)*tf.math.log(y_pred)+(1-y_true)*tf.math.log(1-y_pred))"
310 | ]
311 | },
312 | {
313 | "cell_type": "code",
314 | "execution_count": 40,
315 | "metadata": {},
316 | "outputs": [
317 | {
318 | "name": "stdout",
319 | "output_type": "stream",
320 | "text": [
321 | "Model: \"sequential_1\"\n",
322 | "_________________________________________________________________\n",
323 | "Layer (type) Output Shape Param # \n",
324 | "=================================================================\n",
325 | "conv2d_3 (Conv2D) (None, 120, 5, 32) 320 \n",
326 | "_________________________________________________________________\n",
327 | "batch_normalization_v2_1 (Ba (None, 120, 5, 32) 128 \n",
328 | "_________________________________________________________________\n",
329 | "max_pooling2d_2 (MaxPooling2 (None, 60, 2, 32) 0 \n",
330 | "_________________________________________________________________\n",
331 | "conv2d_4 (Conv2D) (None, 60, 2, 16) 4624 \n",
332 | "_________________________________________________________________\n",
333 | "max_pooling2d_3 (MaxPooling2 (None, 30, 1, 16) 0 \n",
334 | "_________________________________________________________________\n",
335 | "flatten_1 (Flatten) (None, 480) 0 \n",
336 | "_________________________________________________________________\n",
337 | "dense_2 (Dense) (None, 16) 7696 \n",
338 | "_________________________________________________________________\n",
339 | "dense_3 (Dense) (None, 3) 51 \n",
340 | "=================================================================\n",
341 | "Total params: 12,819\n",
342 | "Trainable params: 12,755\n",
343 | "Non-trainable params: 64\n",
344 | "_________________________________________________________________\n"
345 | ]
346 | }
347 | ],
348 | "source": [
349 | "model.compile(optimizer=keras.optimizers.Adam(),\n",
350 | " # loss=keras.losses.CategoricalCrossentropy(), # 需要使用to_categorical\n",
351 | "# loss=keras.losses.SparseCategoricalCrossentropy(),\n",
352 | " #optimizer='rmsprop'\n",
353 | " loss = myloss,\n",
354 | "# metrics=['accuracy']\n",
355 | " )\n",
356 | "model.summary()"
357 | ]
358 | },
359 | {
360 | "cell_type": "code",
361 | "execution_count": 41,
362 | "metadata": {
363 | "scrolled": true
364 | },
365 | "outputs": [
366 | {
367 | "name": "stdout",
368 | "output_type": "stream",
369 | "text": [
370 | "Train on 12423 samples, validate on 1381 samples\n",
371 | "Epoch 1/20\n",
372 | "12423/12423 [==============================] - 16s 1ms/sample - loss: nan - val_loss: nan\n",
373 | "Epoch 2/20\n",
374 | "12423/12423 [==============================] - 15s 1ms/sample - loss: nan - val_loss: nan\n",
375 | "Epoch 3/20\n",
376 | "12423/12423 [==============================] - 17s 1ms/sample - loss: nan - val_loss: nan\n",
377 | "Epoch 4/20\n",
378 | "12423/12423 [==============================] - 18s 1ms/sample - loss: nan - val_loss: nan\n",
379 | "Epoch 5/20\n",
380 | "12423/12423 [==============================] - 18s 1ms/sample - loss: nan - val_loss: nan\n",
381 | "Epoch 6/20\n",
382 | " 7680/12423 [=================>............] - ETA: 6s - loss: nan"
383 | ]
384 | },
385 | {
386 | "ename": "KeyboardInterrupt",
387 | "evalue": "",
388 | "output_type": "error",
389 | "traceback": [
390 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
391 | "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
392 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mhistory\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrain_x\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_y\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m64\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalidation_split\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
393 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)\u001b[0m\n\u001b[0;32m 871\u001b[0m \u001b[0mvalidation_steps\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvalidation_steps\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 872\u001b[0m \u001b[0mvalidation_freq\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvalidation_freq\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 873\u001b[1;33m steps_name='steps_per_epoch')\n\u001b[0m\u001b[0;32m 874\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 875\u001b[0m def evaluate(self,\n",
394 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\keras\\engine\\training_arrays.py\u001b[0m in \u001b[0;36mmodel_iteration\u001b[1;34m(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, validation_freq, mode, validation_in_fit, prepared_feed_values_from_dataset, steps_name, **kwargs)\u001b[0m\n\u001b[0;32m 350\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 351\u001b[0m \u001b[1;31m# Get outputs.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 352\u001b[1;33m \u001b[0mbatch_outs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 353\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbatch_outs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 354\u001b[0m \u001b[0mbatch_outs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mbatch_outs\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
395 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\keras\\backend.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, inputs)\u001b[0m\n\u001b[0;32m 3215\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmath_ops\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcast\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtensor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3216\u001b[0m \u001b[0mconverted_inputs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 3217\u001b[1;33m \u001b[0moutputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mconverted_inputs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3218\u001b[0m return nest.pack_sequence_as(self._outputs_structure,\n\u001b[0;32m 3219\u001b[0m [x.numpy() for x in outputs])\n",
396 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 556\u001b[0m raise TypeError(\"Keyword arguments {} unknown. Expected {}.\".format(\n\u001b[0;32m 557\u001b[0m list(kwargs.keys()), list(self._arg_keywords)))\n\u001b[1;32m--> 558\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call_flat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 559\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 560\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_filtered_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
397 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36m_call_flat\u001b[1;34m(self, args)\u001b[0m\n\u001b[0;32m 625\u001b[0m \u001b[1;31m# Only need to override the gradient in graph mode and when we have outputs.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 626\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcontext\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecuting_eagerly\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0moutputs\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 627\u001b[1;33m \u001b[0moutputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_inference_function\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mctx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 628\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 629\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_register_gradient\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
398 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\eager\\function.py\u001b[0m in \u001b[0;36mcall\u001b[1;34m(self, ctx, args)\u001b[0m\n\u001b[0;32m 413\u001b[0m attrs=(\"executor_type\", executor_type,\n\u001b[0;32m 414\u001b[0m \"config_proto\", config),\n\u001b[1;32m--> 415\u001b[1;33m ctx=ctx)\n\u001b[0m\u001b[0;32m 416\u001b[0m \u001b[1;31m# Replace empty list with None\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 417\u001b[0m \u001b[0moutputs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutputs\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
399 | "\u001b[1;32mc:\\users\\junming\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\tensorflow\\python\\eager\\execute.py\u001b[0m in \u001b[0;36mquick_execute\u001b[1;34m(op_name, num_outputs, inputs, attrs, ctx, name)\u001b[0m\n\u001b[0;32m 58\u001b[0m tensors = pywrap_tensorflow.TFE_Py_Execute(ctx._handle, device_name,\n\u001b[0;32m 59\u001b[0m \u001b[0mop_name\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minputs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mattrs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 60\u001b[1;33m num_outputs)\n\u001b[0m\u001b[0;32m 61\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mcore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_NotOkStatusException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 62\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mname\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
400 | "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
401 | ]
402 | }
403 | ],
404 | "source": [
405 | "history = model.fit(train_x, train_y, batch_size=64, epochs=20, validation_split=0.1)"
406 | ]
407 | },
408 | {
409 | "cell_type": "code",
410 | "execution_count": null,
411 | "metadata": {},
412 | "outputs": [],
413 | "source": [
414 | "import matplotlib.pyplot as plt\n",
415 | "plt.plot(history.history['accuracy'])\n",
416 | "plt.plot(history.history['val_accuracy'])\n",
417 | "plt.legend(['training', 'valivation'], loc='upper left')\n",
418 | "plt"
419 | ]
420 | },
421 | {
422 | "cell_type": "code",
423 | "execution_count": null,
424 | "metadata": {},
425 | "outputs": [],
426 | "source": [
427 | "res = model.evaluate(test_x, test_y)"
428 | ]
429 | },
430 | {
431 | "cell_type": "code",
432 | "execution_count": null,
433 | "metadata": {},
434 | "outputs": [],
435 | "source": []
436 | }
437 | ],
438 | "metadata": {
439 | "kernelspec": {
440 | "display_name": "Python 3",
441 | "language": "python",
442 | "name": "python3"
443 | },
444 | "language_info": {
445 | "codemirror_mode": {
446 | "name": "ipython",
447 | "version": 3
448 | },
449 | "file_extension": ".py",
450 | "mimetype": "text/x-python",
451 | "name": "python",
452 | "nbconvert_exporter": "python",
453 | "pygments_lexer": "ipython3",
454 | "version": "3.7.4"
455 | }
456 | },
457 | "nbformat": 4,
458 | "nbformat_minor": 2
459 | }
460 |
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/README.md:
--------------------------------------------------------------------------------
1 | #### 1.皮尔逊相关系数( pearson_correlation_coefficient)
2 |
3 | 1.1 由于不同股票价格范围差距过大,在进行股票时间序列相似度匹配过程中通常考虑对数差处理,其公式如下所示:
4 |
5 |
6 |
7 | 1.2经过对数差处理后的金融时间序列可表示:
8 |
9 |
10 |
11 | 1.3皮尔逊相关系数计算公式:
12 |
13 |
14 |
15 | 1.4结果
16 |
17 | 1.4.1相关性较强
18 |
19 |
20 |
21 | 1.4.2相关性较弱
22 |
23 |
24 |
25 | #### 2.动态时间规整(dynamic_time_wrapping)
26 |
27 | 2.1 计算两个金融时间序列的时间点对应数据的欧氏距离
28 |
29 |
30 |
31 | 2.2 更新时间点对应数据的距离
32 |
33 |
34 |
35 | 2.3 动态时间规整距离
36 |
37 |
38 |
39 | 2.4 伪代码
40 |
41 |
42 |
43 | 2.5 动态时间规整距离输出图举例
44 |
45 |
46 |
47 | 2.6 动态时间规整最优匹配对齐
48 |
49 |
50 |
51 | 2.7结果
52 |
53 | 2.7.1动态时间规整距离较短
54 |
55 |
56 |
57 | 2.7.1动态时间规整距离较长
58 |
59 |
60 |
61 | #### 3.余弦相似度(cosine similarity)
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/code/2.1 pearson_correlation_coefficient.py:
--------------------------------------------------------------------------------
1 | import os
2 | import pandas as pd
3 | from scipy.stats import pearsonr
4 |
5 | # 计算股票间的对数收益时间序列间的皮尔逊相关系数
6 |
7 | path1, path2 = "000001.XSHE.csv","000063.XSHE.csv",
8 | feature = "rclose"
9 | length = 20
10 |
11 | rc1,rc2 = pd.read_csv(path1)[feature][:length],pd.read_csv(path2)[feature][:length]
12 | pcc = pearsonr(rc1,rc2)[0]
13 |
14 | # 皮尔逊相关系数
15 | print(pcc)
16 |
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/code/2.2 dynamic_time_wrapping.py:
--------------------------------------------------------------------------------
1 | from dtaidistance import dtw
2 | from dtaidistance import dtw_visualisation as dtwvis
3 | import pandas as pd
4 |
5 | # 计算股票间的对数收益时间序列间的动态时间规整距离
6 |
7 | path1,path2 = "000001.XSHE.csv","000063.XSHE.csv",
8 | feature = "rclose"
9 | length = 20
10 | window,psi = 10,5
11 |
12 | rc1,rc2 = pd.read_csv(path1)[feature][:length],pd.read_csv(path2)[feature][:length]
13 | dis, paths = dtw.warping_paths(rc1, rc2, window=window, psi=psi)
14 |
15 | # 动态时间规整距离
16 | print(dis)
17 |
18 | # 绘图(输出形式)
19 | best_path = dtw.best_path(paths)
20 | dtwvis.plot_warpingpaths(rc1, rc2, paths, best_path,shownumbers=True)
21 |
22 | # 绘图(保存)
23 | path = dtw.warping_path(rc1, rc2)
24 | dtwvis.plot_warping(rc1, rc2, path, filename="wrapping.png")
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/code/2.3 cosine_similarity.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | import numpy as np
3 | path1,path2 = "000001.XSHE.csv","000063.XSHE.csv",
4 | feature = "rclose"
5 | length = 20
6 | rc1,rc2 = pd.read_csv(path1)[feature][:length],pd.read_csv(path2)[feature][:length]
7 |
8 |
9 | cosine = np.dot(rc1, rc2) / (np.linalg.norm(rc1) * (np.linalg.norm(rc2)))
10 |
11 | print(cosine)
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/code/2.4 similarity_time_series.py:
--------------------------------------------------------------------------------
1 | import matplotlib.pyplot as plt
2 | import pandas as pd
3 | import numpy as np
4 |
5 | plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
6 | plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
7 | length = 20
8 | stock1 = pd.read_csv('../data/000001.XSHE.csv').close[:length]
9 | stock2 = pd.read_csv('../data/000063.XSHE.csv').close[:length]
10 | plt.figure()
11 | ax = plt.subplot(2,1,1)
12 | plt.plot(np.arange(len(stock1)),list(stock1),color='blue',label='股票1')
13 | plt.scatter(np.arange(len(stock1)),list(stock1),color='blue')
14 | plt.legend()
15 | plt.title('时间窗口内收盘价时间序列')
16 | ax = plt.subplot(2,1,2)
17 | plt.plot(np.arange(len(stock2)),list(stock2),color='orange',label='股票2')
18 | plt.scatter(np.arange(len(stock2)),list(stock2),color='orange')
19 | plt.legend()
20 | plt.show()
21 |
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw-alg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw-alg.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw-draw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw-draw.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw-draw2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw-draw2.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw-result1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw-result1.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw-result2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw-result2.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw1.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw2.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/dtw3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/dtw3.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/pcc-result1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/pcc-result1.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/pcc-result2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/pcc-result2.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/pcc1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/pcc1.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/pcc2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/pcc2.png
--------------------------------------------------------------------------------
/2 Financial-Time-Similarity/images/pcc3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/2 Financial-Time-Similarity/images/pcc3.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/README.md:
--------------------------------------------------------------------------------
1 | #### 3. Finance-Time-Others(金融时间序列其他处理)
2 |
3 | - 3.1 calc_variance.py(计算特征方差)
4 | - 3.2 confuse_matrix.py(绘制混淆矩阵)
5 |
6 |
7 |
8 | - 3.3 corr.py(特征间相关性)
9 |
10 |
11 |
12 | - 3.4 result_bar.py(绘制预测模型性能——柱状图)
13 |
14 |
15 |
16 | - 3.5 result_plot.py(绘制预测模型性能——折线图)
17 |
18 |
19 |
20 | - 3.6 evaluation.py(计算分类的评价指标)
21 |
22 | - 准确率Accuracy
23 |
24 | - 精确率Precision
25 | - 召回率Recall
26 | - 特异度Specificity
27 | - 综合评价指标F-measure
28 | - 马修斯相关系数MCC(Matthews Correlation Coefficient)
29 |
30 | - 3.7 normalization.py(窗口数据归一化)
31 | - z-score标准化(std)
32 | - 最大最小归一化(maxmin)
33 | - 3.8 roc.py(roc曲线绘制)
34 |
35 |
36 |
37 | - 3.9 confusion_matrix.py(混淆矩阵绘制)
38 |
39 |
40 |
41 | - 3.10 kalmanfilter.py(卡尔曼滤波)
42 |
43 |
44 |
45 | - 3.11 calc_technical_indicators_formula.py(基于公式计算技术指标)
46 | - 3.12 calc_technical_indicators_TA_LIB.py(基于TA_LIB库计算技术指标)
47 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.1 calc_variance.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | train_df = pd.read_csv('../data/000001.XSHE.csv')
4 | features = list(train_df.columns)
5 | features.remove('trade_date') # 移除该字段(影响计算特征方差)
6 | train_df = train_df[features]
7 | for i in train_df.columns:
8 | print(i,train_df[i].var())
9 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.10 kalmanfilter.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from pykalman import KalmanFilter
3 | import matplotlib.pyplot as plt
4 |
5 | kf = KalmanFilter(n_dim_obs=1,
6 | n_dim_state=1,
7 | initial_state_mean=23,
8 | initial_state_covariance=5,
9 | transition_matrices=[1],
10 | observation_matrices=[1],
11 | observation_covariance=4,
12 | transition_covariance=np.eye(1),
13 | transition_offsets=None)
14 |
15 | actual = [23]*100
16 | sim = actual + np.random.normal(0,1,100)
17 | state_means, state_covariance = kf.filter(sim)
18 |
19 | plt.plot(actual, 'r-')
20 | plt.plot(sim, 'k-')
21 | plt.plot(state_means, 'g-')
22 | plt.show()
23 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.11 calc_technical_indicators_formula.py:
--------------------------------------------------------------------------------
1 | # 威廉指标(WR)Williams Overbought/Oversold Index WR 威廉指标
2 | def Williams(df, timeperiod=14):
3 | wr_indicator = [''] * (timeperiod - 1)
4 | for i in range(0, len(list(df['volume'])) - timeperiod + 1):
5 | stock = df[i:timeperiod + i]
6 | wr_row = (-100) * (max(stock['high']) - stock['close'][-1]) / (max(stock['high']) - min(stock['low']))
7 | wr_indicator.append(wr_row)
8 | df['WR'] = wr_indicator
9 |
10 |
11 | # Stochastic Oscillator SO 随机振荡器
12 | def Stochastic_Oscillator(df, timeperiod=14):
13 | so_indicator = [''] * (timeperiod - 1)
14 | for i in range(0, len(list(df['volume'])) - timeperiod + 1):
15 | stock = df[i:timeperiod + i]
16 | so_row = 100 * (stock['close'][-1] - min(stock['low'])) / (max(stock['high']) - min(stock['low']))
17 | so_indicator.append(so_row)
18 | df['SO'] = so_indicator
19 |
20 |
21 | # SMA均线
22 | def SMA(df, timeperiod=15):
23 | sma_indicator = [''] * (timeperiod - 1)
24 | for i in range(len(df['volume']) - timeperiod + 1):
25 | stock = df[i:timeperiod + i]
26 | sma_row = sum(stock['close']) / timeperiod
27 | sma_indicator.append(sma_row)
28 | df['SMA'] = sma_indicator
29 |
30 |
31 | # Price Rate of Change PRC 价格波动率
32 | def Price_Rate_of_Change(df, timeperiod=14):
33 | prc_indicator = [''] * (timeperiod - 1)
34 | for i in range(0, len(list(df['volume'])) - timeperiod + 1):
35 | stock = df[i:timeperiod + i]
36 | prc_row = (stock['close'][-1] - stock['close'][0]) / (stock['close'][0])
37 | prc_indicator.append(prc_row)
38 | df['PRC'] = prc_indicator
39 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.12 calc_technical_indicators_TA_LIB.py:
--------------------------------------------------------------------------------
1 | import talib
2 | import pandas as pd
3 | import numpy as np
4 | import tushare as ts
5 |
6 | code = '000007'
7 | stock = ts.get_k_data(code)
8 | stock.to_csv(code + '.csv')
9 |
10 | #计算技术指标
11 | def get_tech(filepath):
12 | df = pd.read_csv(filepath, index_col='date')
13 | # Simple Moving Average SMA 简单移动平均
14 | df['SMA5'] = talib.MA(df['close'],timeperiod=5)
15 | df['SMA10'] = talib.MA(df['close'], timeperiod=10)
16 | df['SMA20'] = talib.MA(df['close'], timeperiod=20)
17 | # Williams Overbought/Oversold Index WR 威廉指标
18 | df['WR14'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=14)
19 | df['WR18'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=18)
20 | df['WR22'] = talib.WILLR(df['high'], df['low'], df['close'], timeperiod=22)
21 | # Moving Average Convergence / Divergence MACD 指数平滑移动平均线
22 | DIFF1, DEA1, df['MACD9'] = talib.MACD(np.array(df['close']),fastperiod=12, slowperiod=26, signalperiod=9)
23 | DIFF2, DEA2, df['MACD10'] = talib.MACD(np.array(df['close']), fastperiod=14, slowperiod=28, signalperiod=10)
24 | DIFF3, DEA3, df['MACD11'] = talib.MACD(np.array(df['close']), fastperiod=16, slowperiod=30, signalperiod=11)
25 | df['MACD9'] = df['MACD9'] * 2
26 | df['MACD10'] = df['MACD10'] * 2
27 | df['MACD11'] = df['MACD11'] * 2
28 | # Relative Strength Index RSI 相对强弱指数
29 | df['RSI15'] = talib.RSI(np.array(df['close']), timeperiod=15)
30 | df['RSI20'] = talib.RSI(np.array(df['close']), timeperiod=20)
31 | df['RSI25'] = talib.RSI(np.array(df['close']), timeperiod=25)
32 | df['RSI30'] = talib.RSI(np.array(df['close']), timeperiod=30)
33 | # Stochastic Oscillator Slow STOCH 常用的KDJ指标中的KD指标
34 | df['STOCH'] = talib.STOCH(df['high'], df['low'], df['close'],fastk_period=9,slowk_period=3,slowk_matype=0,slowd_period=3,slowd_matype=0)[1]
35 | # On Balance Volume OBV 能量潮
36 | df['OBV'] = talib.OBV(np.array(df['close']),df['volume'])
37 | # Simple moving average SMA 简单移动平均
38 | df['SMA15'] = talib.SMA(df['close'], timeperiod=15)
39 | df['SMA20'] = talib.SMA(df['close'], timeperiod=20)
40 | df['SMA25'] = talib.SMA(df['close'], timeperiod=25)
41 | df['SMA30'] = talib.SMA(df['close'], timeperiod=30)
42 | # Money Flow Index MFI MFI指标
43 | df['MFI14'] = talib.MFI(df['high'], df['low'], df['close'],df['volume'], timeperiod=14)
44 | df['MFI18'] = talib.MFI(df['high'], df['low'], df['close'], df['volume'], timeperiod=18)
45 | df['MFI22'] = talib.MFI(df['high'], df['low'], df['close'], df['volume'], timeperiod=22)
46 | # Ultimate Oscillator UO 终极指标
47 | df['UO7'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=7, timeperiod2=14, timeperiod3=28)
48 | df['UO8'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=8, timeperiod2=16, timeperiod3=22)
49 | df['UO9'] = talib.ULTOSC(df['high'], df['low'], df['close'], timeperiod1=9, timeperiod2=18, timeperiod3=26)
50 | # Rate of change Percentage ROCP 价格变化率
51 | df['ROCP'] = talib.ROCP(df['close'],timeperiod=10)
52 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.2 confuse_matrix.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import matplotlib.pyplot as plt
3 |
4 | classes = ['P', 'N']
5 | confusion_matrix = np.array([(9, 1, ), (2, 13, ),],dtype=np.int)
6 | plt.rcParams['font.sans-serif']=['SimHei']
7 | plt.imshow(confusion_matrix, interpolation='nearest', cmap=plt.cm.Oranges) # 按照像素显示出矩阵
8 | plt.colorbar()
9 | tick_marks = np.arange(len(classes))
10 | plt.xticks(tick_marks, classes)
11 | plt.yticks(tick_marks, classes)
12 | thresh = confusion_matrix.max() / 2.
13 | fontsize = 15
14 |
15 | iters = np.reshape([[[i, j] for j in range(2)] for i in range(2)], (confusion_matrix.size, 2))
16 | for i, j in iters:
17 | plt.text(j, i, format(confusion_matrix[i, j]),fontsize=fontsize) # 显示对应的数字
18 |
19 | plt.ylabel('真实结果',fontsize=fontsize)
20 | plt.xlabel('预测结果',fontsize=fontsize)
21 | plt.title('混淆矩阵',fontsize=15)
22 | plt.tight_layout()
23 | plt.show()
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.3 corr.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 | from matplotlib import pyplot as plt
3 | import seaborn as sns
4 |
5 | plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
6 | plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
7 | df = pd.read_csv('../data/000001.XSHE.csv')[:1000]
8 | f, ax = plt.subplots(figsize=(14, 10))
9 | featureslist = list(df.columns)
10 |
11 | train_df = df[featureslist]
12 | h = sns.heatmap(train_df.corr(), cmap='RdBu', linewidths=0.1, ax=ax,cbar=False,annot=True)
13 | ax.tick_params(axis='x', labelsize=15)
14 | ax.tick_params(axis='y', labelsize=15)
15 |
16 | cb = h.figure.colorbar(h.collections[0]) # 显示colorbar
17 | cb.ax.tick_params(labelsize=15) # 设置colorbar刻度字体大小。
18 |
19 | # 显示所有列
20 | pd.set_option('display.max_columns', None)
21 | # 显示所有行
22 | pd.set_option('display.max_rows', None)
23 | print(train_df.corr())
24 | # 设置Axes的标题
25 | ax.set_title('技术指标之间的相关性',fontsize=22)
26 | plt.show()
27 |
28 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.4 result_bar.py:
--------------------------------------------------------------------------------
1 | import matplotlib.pyplot as plt
2 |
3 | plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
4 | plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
5 |
6 | ratiolist1 = [56.00, 57.71, 56.28, 56.66]
7 | ratiolist2 = [56.65, 58.10, 55.82, 56.86]
8 | ratiolist3 = [69.53, 63.89, 75.54, 69.65]
9 | ratiolist4 = [62.39, 60.71, 64.09, 62.40]
10 | models = [0] * len(ratiolist1)#标注模型名称
11 | ratiolist = [ratiolist1,ratiolist2,ratiolist3,ratiolist4]
12 |
13 | fontsize = 36# 文字大小
14 | smallsize = 32#图例字体大小
15 | width = 3.0# 图柱宽度
16 | gap = width# 图柱间隔
17 | dis = 2.5# 将模型名称标注左移
18 | cgap = 20# 各模型之间的宽度
19 |
20 | plt.figure(figsize=(36, 12))
21 | x = []
22 |
23 | for i in range(0, len(ratiolist1)):
24 | x.append(i * cgap)
25 | model_list = ['模型1', '模型2', '模型3','模型4']
26 | class_list = ['准确率', '准确率', '召回率', 'F1度量']
27 | color_list = ['#8ac6d1','#ff9d76','#0f4c81','#eb4d55']
28 | for i in range(0,len(ratiolist1)):
29 | plt.bar(x, ratiolist[i], label=class_list[i], fc=color_list[i], width=width)
30 | for j in range(len(x)):
31 | x[j] = x[j] + gap
32 |
33 |
34 | for i in range(len(x)):
35 | x[i] = x[i] - dis * gap
36 |
37 | plt.bar(x, models, fc='b', tick_label=model_list)
38 | plt.xlabel('预测模型',fontsize=fontsize)
39 | plt.ylabel('百分比(%)',fontsize=fontsize)
40 | plt.ylim(0, 100)
41 | plt.xticks(fontsize=fontsize)
42 | plt.yticks(fontsize=fontsize)
43 | plt.legend(fontsize=smallsize)
44 | ax = plt.gca()
45 | ax.spines['right'].set_color('none')
46 | ax.spines['top'].set_color('none')
47 | plt.show()
48 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.5 result_plot.py:
--------------------------------------------------------------------------------
1 | import matplotlib.pyplot as plt
2 | import numpy as np
3 | plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
4 | plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
5 |
6 | ratiolist1 = [49.46,50.25,50.79,54.79,63.52]
7 | ratiolist2 = [58.82,55.33,52.06,46.79,52.78]
8 | ratiolist3 = [57.53,50.97,54.29,58.53,66.00]
9 | ratiolist4 = [69.97,66.62,55.69,58.43,50.27]
10 | ratiolist5 = [64.54,73.63,60.29,68.14,58.67]
11 | ratiolist = [ratiolist1,ratiolist2,ratiolist3,ratiolist4,ratiolist5]
12 | model_list = ['模型1','模型1','模型1','模型1','模型5']
13 | code_list = ['000001','000408','000538','600482','600583']
14 | sc_list = ['v','8','s','x','o','<']
15 | fontsize = 26
16 | smallsize = 18
17 | mgap = 13
18 | width = 3.0
19 | gap = width
20 | s = 100
21 | ratiolist6 = [0]*len(ratiolist1)
22 | plt.figure(figsize=(16, 9))
23 | x = []
24 | for i in range(len(model_list)):
25 | x.append(i*mgap)
26 |
27 | for i in range(len(model_list)):
28 | plt.plot(x, ratiolist[i])
29 | plt.scatter(x, ratiolist[i],marker=sc_list[i],s=s, label=model_list[i])
30 |
31 | plt.grid()#网格背景
32 | plt.bar(x, ratiolist6,fc = 'b',tick_label =code_list)
33 |
34 |
35 | plt.xlabel('股票代码',fontsize=fontsize)
36 | plt.ylabel('F1度量(%)',fontsize=fontsize)
37 | plt.ylim(40,90)
38 |
39 | my_y_ticks = np.arange(40,90,10)
40 | plt.xticks(fontsize=fontsize)
41 | plt.yticks(my_y_ticks,fontsize=fontsize)
42 | plt.legend(fontsize=smallsize,loc=2, bbox_to_anchor=(1.05,1.0),borderaxespad = 0.)
43 |
44 | ax = plt.gca()
45 | ax.spines['right'].set_color('none')
46 | ax.spines['top'].set_color('none')
47 | plt.show()
48 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.6 evaluation.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 | # 评价指标函数
4 | def Myevalution(prediction,real):
5 | TP,TN,FP,FN = 0,0,0,0
6 | for i, j in zip(prediction, real):
7 | if i == j and i == 1:
8 | TP+=1
9 | if i == j and i == 0:
10 | TN+=1
11 | if i !=j and i == 1:
12 | FP+=1
13 | if i !=j and i == 0:
14 | FN+=1
15 | # 准确率Accuracy
16 | accuracy = (TP+TN) / (TP+TN+FP+FN+1e-10)
17 | # 精确率Precision
18 | precision = TP / (TP+FP+1e-10)
19 | # 召回率Recall
20 | recall = TP / (TP+FN+1e-10)
21 | # 特异度Specificity
22 | specificity = TN / (TN+FP+1e-10)
23 | # 综合评价指标F-measure
24 | beta = 1
25 | f_measure = (beta*beta+1)*precision*recall / ((beta*beta)*(precision+recall)+1e-10)
26 | # MCC
27 | mcc = ((TP*TN)-(FP*FN))/(math.pow((TP+FP)*(TP+FN)*(TN+FP)*(TN+FN),1/2)+1e-10)
28 | print('TP:{},TN:{},FP:{},FN:{}'.format(TP,TN,FP,FN))
29 | print('准确度:{},精确率:{},召回率:{},综合指标:{},MCC:{}'.format(accuracy,precision,recall,f_measure,mcc))
30 | return TP, TN, FP, FN, accuracy, precision, recall, specificity, f_measure, mcc
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.7 normalization.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 |
3 | # 数据归一化
4 | def normalization(method,data):
5 | if method == 'std':
6 | for i in range(len(data)):
7 | for j in range(data.shape[2]):
8 | data[i][:, j] = (data[i][:, j] - np.mean(data[i][:, j])) / (np.std(data[i][:, j], ddof=1) + 1e-10 )
9 | return data
10 | if method == 'maxmin':
11 | for i in range(len(data)):
12 | for j in range(data.shape[2]):
13 | data[i][:, j] = (data[i][:, j] - np.min(data[i][:, j])) / (np.max(data[i][:, j]) - np.min(data[i][:, j]) + 1e-10)
14 | return data
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.8 roc.py:
--------------------------------------------------------------------------------
1 | from sklearn.datasets import load_digits
2 | from sklearn.model_selection import train_test_split
3 | from sklearn.naive_bayes import GaussianNB
4 | import matplotlib.pyplot as plt
5 | import scikitplot as skplt
6 | X, y = load_digits(return_X_y=True)
7 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
8 | nb = GaussianNB()
9 | nb.fit(X_train, y_train)
10 | predicted_probas = nb.predict_proba(X_test)
11 | skplt.metrics.plot_roc(y_test, predicted_probas)
12 | plt.show()
--------------------------------------------------------------------------------
/3 Financial-Time-Others/code/3.9 confusion_matrix.py:
--------------------------------------------------------------------------------
1 | from sklearn.ensemble import RandomForestClassifier
2 | from sklearn.datasets import load_digits as load_data
3 | from sklearn.model_selection import cross_val_predict
4 | import matplotlib.pyplot as plt
5 | import scikitplot as skplt
6 | X, y = load_data(return_X_y=True)
7 | classifier = RandomForestClassifier()
8 | predictions = cross_val_predict(classifier, X, y)
9 | plot = skplt.metrics.plot_confusion_matrix(y, predictions, normalize=True)
10 | plt.show()
--------------------------------------------------------------------------------
/3 Financial-Time-Others/data/002253.csv:
--------------------------------------------------------------------------------
1 | date,open,high,close,low,volume,price_change,p_change,ma5,ma10,ma20,v_ma5,v_ma10,v_ma20,turnover
2 | 2021-05-26,13.3,13.41,13.3,13.26,12070.5,0.05,0.38,13.264,13.408,13.377,11757.78,18420.3,16500.11,0.58
3 | 2021-05-25,13.31,13.42,13.37,13.29,11152.5,0.06,0.45,13.27,13.413,13.39,12065.68,18178.1,17969.08,0.54
4 | 2021-05-24,13.11,13.39,13.31,13.11,10766.73,0.18,1.37,13.274,13.401,13.439,14871.68,18380.95,18391.98,0.52
5 | 2021-05-21,13.21,13.29,13.13,13.11,11753.0,-0.08,-0.61,13.352,13.354,13.484,19994.14,18908.18,19369.76,0.57
6 | 2021-05-20,13.36,13.36,13.21,13.15,13046.18,-0.12,-0.9,13.526,13.362,13.525,25899.85,18837.26,19570.61,0.63
7 | 2021-05-19,13.36,13.47,13.33,13.19,13610.0,-0.06,-0.45,13.552,13.364,13.566,25082.82,18737.96,19776.78,0.66
8 | 2021-05-18,13.53,13.6,13.39,13.3,25182.51,-0.31,-2.26,13.556,13.352,13.599,24290.52,18995.6,19870.0,1.21
9 | 2021-05-17,14.18,14.26,13.7,13.66,36379.0,-0.3,-2.14,13.528,13.373,13.619,21890.22,17620.93,19316.56,1.75
10 | 2021-05-14,13.34,14.2,14.0,13.3,41281.57,0.66,4.95,13.356,13.346,13.611,17822.22,15222.74,17976.87,1.99
11 | 2021-05-13,13.25,13.38,13.34,13.2,8961.01,-0.01,-0.07,13.198,13.292,13.581,11774.67,12909.07,16424.52,0.43
12 | 2021-05-12,13.37,13.38,13.35,13.18,9648.5,0.1,0.76,13.176,13.346,13.582,12393.11,14579.92,17057.15,0.47
13 | 2021-05-11,12.84,13.28,13.25,12.81,13181.0,0.41,3.19,13.148,13.366,13.607,13700.69,17760.07,17252.71,0.64
14 | 2021-05-10,13.3,13.3,12.84,12.79,16039.0,-0.37,-2.8,13.218,13.476,13.633,13351.63,18403.02,17746.14,0.77
15 | 2021-05-07,13.18,13.38,13.21,13.18,11043.82,-0.02,-0.15,13.336,13.614,13.689,12623.27,19831.34,17779.54,0.53
16 | 2021-05-06,13.1,13.31,13.23,13.1,12053.23,0.02,0.15,13.386,13.688,13.735,14043.47,20303.96,18036.82,0.58
17 |
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/bar.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/candle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/candle.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/cm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/cm.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/corr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/corr.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/kf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/kf.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/matrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/matrix.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/plot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/plot.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/roc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/roc.png
--------------------------------------------------------------------------------
/3 Financial-Time-Others/images/sim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/3 Financial-Time-Others/images/sim.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/README.md:
--------------------------------------------------------------------------------
1 | ### 绘制金融数据箱体图(蜡烛图)
2 |
3 | #### 1. 大致流程
4 |
5 | 1.1 读取金融数据
6 |
7 | 1.2 涨跌趋势标记
8 |
9 | 1.3 绘制金融数据箱体图并保存
10 |
11 | #### 2. 效果预览
12 |
13 | 
14 |
15 |
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/financial_candle_pic.py:
--------------------------------------------------------------------------------
1 | import matplotlib.pyplot as plt
2 | import mpl_finance as mpf
3 | import pandas as pd
4 | import csv
5 |
6 |
7 | # 根据股票价格趋势生成标签
8 | # 0 表示下跌趋势,1 表示上涨趋势
9 | def getLabel2Class(stockCode):
10 | dir_path = 'datas'
11 | pred_days = 1
12 | stockPd = pd.read_csv(dir_path + '/' + stockCode + '.csv') # 读取数据集
13 | pic_labels = [''] * len(stockPd['close'])
14 | for i in range(len(stockPd['close']) - pred_days):
15 | if (stockPd['close'][i + pred_days] - stockPd['close'][i]) > 0:
16 | pic_labels[i] = '10' # 上涨标签
17 | else:
18 | pic_labels[i] = '01' # 下跌标签
19 | stockPd['Lable2Class'] = pic_labels # 将标签加入数据集
20 | stockPd.to_csv(dir_path + '/' + stockCode + '.csv') # 保存更新后的数据集
21 | return pic_labels
22 |
23 |
24 | # 处理数据并生成K线图函数
25 | def process_data(stock_code):
26 | file_info = csv.DictReader(open('datas/' + stock_code + '.csv', 'r', encoding='utf-8', errors='ignore'))
27 | dict_data = []
28 | for lines in file_info:
29 | if file_info.line_num == 1:
30 | continue
31 | else:
32 | dict_data.append(lines)
33 |
34 | data_list = []
35 | for m in range(len(dict_data)):
36 | temp_dict = dict_data[m]
37 | # 提取开盘价、最高价、最低价、收盘价数据
38 | data = (float(m), float(temp_dict['open']), float(temp_dict['high']), float(temp_dict['low']),
39 | float(temp_dict['close']))
40 | data_list.append(data)
41 |
42 | sliding_day = 10 # 滑动窗口大小
43 | sliding_sum_day = len(data_list) - sliding_day + 1
44 |
45 | for i in range(sliding_sum_day):
46 | d = []
47 | d.extend(data_list[i:i + sliding_day]) # 提取滑动窗口内的数据
48 | fig = plt.figure(figsize=(2.24, 2.24)) # 创建K线图的图像(尺寸为224x224像素)
49 | ax = fig.add_subplot(111)
50 | plt.xticks()
51 | plt.yticks()
52 | plt.axis("off") # 关闭坐标轴显示
53 | plt.xlabel("日期")
54 | plt.ylabel("价格")
55 | mpf.candlestick_ohlc(ax, d, width=0.3, colorup='r', colordown='green') # 绘制K线图
56 | # 将图像保存为文件,使用适当的命名约定
57 | pic_path = 'train_pic/' + stock_code + '_' + str(i) + '_' + str(pic_labels[i]) + '.png'
58 | plt.savefig(pic_path, format='png') # 保存图像为PNG文件
59 | plt.close() # 关闭图像,释放内存
60 |
61 |
62 | if __name__ == '__main__':
63 | stockCode = '002253'
64 | start_data = '2017-01-01'
65 | end_data = '2017-12-31'
66 | pic_labels = getLabel2Class(stockCode) # 生成股票数据的标签
67 | process_data(stockCode) # 处理股票数据并生成K线图
68 |
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_0_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_0_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_100_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_100_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_101_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_101_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_102_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_102_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_103_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_103_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_104_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_104_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_105_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_105_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_106_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_106_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_107_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_107_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_108_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_108_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_109_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_109_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_10_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_10_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_110_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_110_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_111_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_111_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_112_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_112_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_113_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_113_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_114_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_114_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_115_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_115_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_116_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_116_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_117_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_117_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_118_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_118_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_119_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_119_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_11_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_11_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_120_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_120_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_121_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_121_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_122_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_122_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_123_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_123_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_124_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_124_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_125_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_125_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_126_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_126_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_127_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_127_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_128_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_128_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_129_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_129_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_12_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_12_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_130_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_130_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_131_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_131_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_132_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_132_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_133_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_133_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_134_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_134_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_135_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_135_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_136_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_136_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_137_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_137_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_138_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_138_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_139_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_139_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_13_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_13_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_140_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_140_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_141_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_141_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_142_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_142_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_143_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_143_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_144_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_144_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_145_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_145_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_146_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_146_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_147_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_147_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_148_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_148_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_149_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_149_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_14_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_14_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_150_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_150_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_151_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_151_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_152_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_152_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_153_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_153_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_154_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_154_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_155_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_155_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_156_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_156_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_157_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_157_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_158_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_158_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_159_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_159_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_15_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_15_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_160_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_160_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_161_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_161_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_162_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_162_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_163_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_163_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_164_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_164_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_165_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_165_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_166_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_166_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_167_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_167_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_168_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_168_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_169_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_169_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_16_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_16_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_170_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_170_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_171_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_171_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_172_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_172_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_173_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_173_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_174_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_174_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_175_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_175_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_176_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_176_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_177_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_177_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_178_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_178_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_179_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_179_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_17_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_17_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_180_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_180_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_181_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_181_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_182_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_182_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_183_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_183_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_184_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_184_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_185_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_185_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_186_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_186_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_187_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_187_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_188_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_188_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_189_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_189_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_18_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_18_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_190_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_190_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_191_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_191_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_192_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_192_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_193_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_193_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_194_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_194_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_195_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_195_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_196_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_196_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_197_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_197_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_198_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_198_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_199_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_199_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_19_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_19_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_1_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_1_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_200_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_200_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_201_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_201_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_202_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_202_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_203_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_203_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_204_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_204_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_205_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_205_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_206_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_206_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_207_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_207_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_208_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_208_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_209_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_209_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_20_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_20_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_210_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_210_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_211_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_211_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_212_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_212_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_213_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_213_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_214_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_214_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_215_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_215_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_216_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_216_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_217_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_217_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_218_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_218_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_219_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_219_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_21_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_21_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_220_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_220_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_221_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_221_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_222_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_222_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_223_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_223_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_224_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_224_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_225_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_225_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_226_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_226_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_227_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_227_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_228_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_228_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_229_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_229_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_22_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_22_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_230_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_230_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_231_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_231_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_232_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_232_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_233_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_233_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_234_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_234_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_235_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_235_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_236_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_236_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_23_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_23_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_24_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_24_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_25_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_25_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_26_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_26_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_27_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_27_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_28_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_28_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_29_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_29_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_2_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_2_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_30_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_30_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_31_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_31_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_32_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_32_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_33_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_33_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_34_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_34_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_35_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_35_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_36_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_36_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_37_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_37_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_38_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_38_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_39_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_39_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_3_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_3_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_40_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_40_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_41_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_41_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_42_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_42_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_43_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_43_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_44_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_44_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_45_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_45_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_46_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_46_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_47_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_47_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_48_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_48_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_49_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_49_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_4_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_4_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_50_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_50_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_51_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_51_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_52_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_52_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_53_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_53_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_54_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_54_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_55_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_55_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_56_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_56_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_57_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_57_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_58_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_58_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_59_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_59_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_5_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_5_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_60_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_60_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_61_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_61_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_62_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_62_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_63_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_63_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_64_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_64_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_65_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_65_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_66_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_66_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_67_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_67_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_68_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_68_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_69_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_69_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_6_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_6_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_70_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_70_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_71_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_71_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_72_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_72_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_73_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_73_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_74_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_74_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_75_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_75_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_76_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_76_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_77_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_77_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_78_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_78_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_79_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_79_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_7_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_7_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_80_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_80_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_81_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_81_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_82_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_82_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_83_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_83_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_84_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_84_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_85_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_85_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_86_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_86_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_87_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_87_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_88_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_88_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_89_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_89_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_8_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_8_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_90_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_90_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_91_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_91_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_92_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_92_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_93_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_93_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_94_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_94_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_95_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_95_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_96_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_96_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_97_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_97_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_98_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_98_01.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_99_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_99_10.png
--------------------------------------------------------------------------------
/4 Financial-Candle-Picture/train_pic/002253_9_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jm199504/Financial-Time-Series/c9ffc54ae6420dd4b57018e52040fd86eadc7a0f/4 Financial-Candle-Picture/train_pic/002253_9_10.png
--------------------------------------------------------------------------------
/5 Financial-Data-Download/README.md:
--------------------------------------------------------------------------------
1 | ### 5 Financial-Data-Download
2 |
3 | 金融数据的下载代码(提供了3种金融数据源)
4 |
5 | #### 1.从JQdata获取股票数据
6 |
7 | ```python
8 | from jqdatasdk import *
9 |
10 | # 使用JQdata下载CSI300数据
11 | # https://www.joinquant.com/
12 | # 账号及密码请自行前往注册
13 | def downloadCSI300byjqdata():
14 | auth('18280180192', '**********')
15 | # security 股票代码 ; frequency 时间粒度(1d=日) ; skip_paused 是否跳过缺失交易数据时间点
16 | ss = get_price(security='000300.XSHG', start_date='2014-06-03', end_date='2019-11-29', frequency='1d',skip_paused=False)
17 | ss.to_csv('000300.XSHG.csv')
18 | ```
19 |
20 |
21 |
22 | #### 2.从akshare获取股票数据
23 |
24 | ```python
25 | import akshare as ak
26 |
27 | stock_zh_a_hist_df = ak.stock_zh_a_hist(
28 | symbol="002253",
29 | period="daily",
30 | start_date="20230731",
31 | end_date='20230731',
32 | adjust=""
33 | )
34 | print(stock_zh_a_hist_df)
35 | # 开盘价、收盘价、最高价、最低价、成交量、成交额、涨跌幅和换手率
36 |
37 | print(f"开盘价:{list(stock_zh_a_hist_df['开盘'].values)}")
38 | print(f"收盘价:{list(stock_zh_a_hist_df['收盘'].values)}")
39 | print(f"最高价:{list(stock_zh_a_hist_df['最高'].values)}")
40 | print(f"最低价:{list(stock_zh_a_hist_df['最低'].values)}")
41 | print(f"成交量:{list(stock_zh_a_hist_df['成交量'].values)}")
42 | print(f"成交额:{list(stock_zh_a_hist_df['成交额'].values)}")
43 | print(f"涨跌幅:{list(stock_zh_a_hist_df['涨跌幅'].values)}")
44 | print(f"换手率:{list(stock_zh_a_hist_df['换手率'].values)}")
45 | ```
46 |
47 |
48 |
49 | #### 3.从tushare获取股票数据
50 |
51 | ```python
52 | import tushare as ts
53 |
54 |
55 | # 使用Tushare下载CSI300指数所包含的成分股
56 | # http://www.tushare.org/
57 | # token请自行前往注册
58 |
59 | def downloadCSI300stocksbytushare():
60 | token = '35d8848b876df93910413e8936c40745d7b7da42553ae73920862cd9'
61 | pro = ts.pro_api(token)
62 |
63 | df = pro.daily(ts_code='600519.SH', start_date='20231120', end_date='20231201') # 川大智能股票
64 |
65 |
66 | df = pro.index_weight(index_code='399300.SZ', start_date='20190901', end_date='20190930') # 沪深300代码
67 | for i in list(set(df['con_code'])):
68 | ts.set_token(token)
69 | # ad 复权类型(qfq-前复权 hfq-后复权 None-不复权,默认为qfq)
70 | df1 = ts.pro_bar(ts_code=i, adj='qfq', start_date='20160101', end_date='20191201')
71 | df2 = ts.pro_bar(ts_code=i, adj='qfq', start_date='20000101', end_date='20151231')
72 | df = pd.concat([df1,df2])
73 | df = df[::-1]
74 | df.to_csv('399300.SZ.csv',index=False)
75 | ```
76 |
77 |
--------------------------------------------------------------------------------
/5 Financial-Data-Download/code/5.1 get_stock_data_from_JQdata.py:
--------------------------------------------------------------------------------
1 | from jqdatasdk import *
2 |
3 | # 使用JQdata下载CSI300数据
4 | # https://www.joinquant.com/
5 | # 账号及密码请自行前往注册
6 | def downloadCSI300byjqdata():
7 | auth('18280180192', '**********')
8 | # security 股票代码 ; frequency 时间粒度(1d=日) ; skip_paused 是否跳过缺失交易数据时间点
9 | ss = get_price(security='000300.XSHG', start_date='2014-06-03', end_date='2019-11-29', frequency='1d',skip_paused=False)
10 | ss.to_csv('000300.XSHG.csv')
11 |
12 |
--------------------------------------------------------------------------------
/5 Financial-Data-Download/code/5.2 get_stock_data_from_akshare.py:
--------------------------------------------------------------------------------
1 | import akshare as ak
2 |
3 | stock_zh_a_hist_df = ak.stock_zh_a_hist(
4 | symbol="002253",
5 | period="daily",
6 | start_date="20230731",
7 | end_date='20230731',
8 | adjust=""
9 | )
10 | print(stock_zh_a_hist_df)
11 | # 开盘价、收盘价、最高价、最低价、成交量、成交额、涨跌幅和换手率
12 |
13 | print(f"开盘价:{list(stock_zh_a_hist_df['开盘'].values)}")
14 | print(f"收盘价:{list(stock_zh_a_hist_df['收盘'].values)}")
15 | print(f"最高价:{list(stock_zh_a_hist_df['最高'].values)}")
16 | print(f"最低价:{list(stock_zh_a_hist_df['最低'].values)}")
17 | print(f"成交量:{list(stock_zh_a_hist_df['成交量'].values)}")
18 | print(f"成交额:{list(stock_zh_a_hist_df['成交额'].values)}")
19 | print(f"涨跌幅:{list(stock_zh_a_hist_df['涨跌幅'].values)}")
20 | print(f"换手率:{list(stock_zh_a_hist_df['换手率'].values)}")
21 |
22 |
--------------------------------------------------------------------------------
/5 Financial-Data-Download/code/5.3 get_stock_data_from_tushare.py:
--------------------------------------------------------------------------------
1 | import tushare as ts
2 |
3 |
4 | # 使用Tushare下载CSI300指数所包含的成分股
5 | # http://www.tushare.org/
6 | # token请自行前往注册
7 |
8 | def downloadCSI300stocksbytushare():
9 | token = '35d8848b876df93910413e8936c40745d7b7da42553ae73920862cd9'
10 | pro = ts.pro_api(token)
11 |
12 | df = pro.daily(ts_code='600519.SH', start_date='20231120', end_date='20231201') # 川大智能股票
13 |
14 |
15 | df = pro.index_weight(index_code='399300.SZ', start_date='20190901', end_date='20190930') # 沪深300代码
16 | for i in list(set(df['con_code'])):
17 | ts.set_token(token)
18 | # ad 复权类型(qfq-前复权 hfq-后复权 None-不复权,默认为qfq)
19 | df1 = ts.pro_bar(ts_code=i, adj='qfq', start_date='20160101', end_date='20191201')
20 | df2 = ts.pro_bar(ts_code=i, adj='qfq', start_date='20000101', end_date='20151231')
21 | df = pd.concat([df1,df2])
22 | df = df[::-1]
23 | df.to_csv('399300.SZ.csv',index=False)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### 金融时间序列(数据预测 / 相似度 / 数据处理)
2 |
3 | 
4 |  
5 |
6 |
7 | #### 1. Financial-Prediction-Methods(金融时间序列预测方法)
8 |
9 | - 1.1 Financial-Prediction-CNN(卷积神经网络)
10 |
11 | - 1.2 Financial-Prediction-LSTM(长短期记忆神经网络)
12 |
13 | - 1.3 Financial-Prediction-Random-Forest(随机森林)
14 |
15 | - 1.4 Financial-Prediction-ARMA(自回归滑动平均模型)
16 |
17 | - 1.5 Financial-Prediction-ARIMA(自回归积分移动平均模型)
18 |
19 | - 1.6 Financial-Prediction-Muiti-Input-Conv1D(多输入Conv1D模型)
20 |
21 | - 1.7 Financial-Prediction-2DCNN(2D卷积神经网络)
22 |
23 | - 1.8 Financial-Prediction-3DCNN(3D卷积神经网络)
24 |
25 | ---
26 |
27 | #### 2. Financial-Time-Similarity(金融时间序列相似度计算)
28 |
29 | - 2.1 pearson_correlation_coefficient(皮尔逊相关系数)
30 |
31 | - 2.2 dynamic_time_wrapping(动态时间规整)
32 |
33 | - 2.3 cosine similarity(余弦相似度)
34 |
35 | - 2.4 similarity_time_series.py(相似金融时间序列绘制)
36 |
37 | ---
38 |
39 | #### 3. Finance-Time-Others(金融时间序列其他处理)
40 |
41 | - 3.1 calc_variance.py(计算特征方差)
42 | - 3.2 confuse_matrix.py(绘制混淆矩阵)
43 |
44 | 
45 |
46 | - 3.3 corr.py(特征间相关性)
47 |
48 | 
49 |
50 | - 3.4 result_bar.py(绘制预测模型性能——柱状图)
51 |
52 | 
53 |
54 | - 3.5 result_plot.py(绘制预测模型性能——折线图)
55 |
56 | 
57 |
58 | - 3.6 evaluation.py(计算分类的评价指标)
59 |
60 | - 准确率Accuracy
61 |
62 | - 精确率Precision
63 | - 召回率Recall
64 | - 特异度Specificity
65 | - 综合评价指标F-measure
66 | - 马修斯相关系数MCC(Matthews Correlation Coefficient)
67 | - 3.7 normalization.py(窗口数据归一化)
68 | - z-score标准化(std)
69 | - 最大最小归一化(maxmin)
70 | - 3.8 roc.py(roc曲线绘制)
71 |
72 | 
73 |
74 | - 3.9 confusion_matrix.py(混淆矩阵绘制)
75 |
76 | 
77 |
78 | - 3.10 kalmanfilter.py(卡尔曼滤波)
79 |
80 | 
81 |
82 | - 3.11 calc_technical_indicators_formula.py(基于公式计算技术指标)
83 | - 3.12 calc_technical_indicators_TA_LIB.py(基于TA_LIB库计算技术指标)
84 |
85 | ****
86 |
87 | #### 4. Financial-Candle-Picture(金融蜡烛图)
88 |
89 | 基于`mpl_finance`和`matplotlib`库实现将股价转为蜡烛图,效果预览:
90 |
91 | 
92 |
93 | ---
94 |
95 | #### 5.Financial-Data-Download(金融数据下载)
96 |
97 | 提供了三种金融数据源:JQdata、akshare、tushare
98 |
--------------------------------------------------------------------------------