├── 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 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | "
openhighlowclosevolumn
02551.812556.932551.812556.41790880900
12557.122557.822544.572544.57480816100
22543.332543.332538.502538.50359649200
32538.762538.762534.362535.52294182800
42535.292541.492535.182541.49267944600
\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 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/Financial-Candle-Picture/train_pic/002253_0_01.png?raw=true) 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 | ![author](https://img.shields.io/static/v1?label=Author&message=junmingguo&color=green) 4 | ![language](https://img.shields.io/static/v1?label=Language&message=python3&color=orange) ![topics](https://img.shields.io/static/v1?label=Topics&message=financial-time-series&color=blue) 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 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/3%20Financial-Time-Others/images/matrix.png?raw=true) 45 | 46 | - 3.3 corr.py(特征间相关性) 47 | 48 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/3%20Financial-Time-Others/images/corr.png?raw=true) 49 | 50 | - 3.4 result_bar.py(绘制预测模型性能——柱状图) 51 | 52 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/3%20Financial-Time-Others/images/bar.png?raw=true) 53 | 54 | - 3.5 result_plot.py(绘制预测模型性能——折线图) 55 | 56 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/3%20Financial-Time-Others/images/plot.png?raw=true) 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 | ![](https://github.com/jm199504/Financial-Time-Series/blob/master/3%20Financial-Time-Others/images/roc.png?raw=true) 73 | 74 | - 3.9 confusion_matrix.py(混淆矩阵绘制) 75 | 76 | ![](https://github.com/jm199504/Financial-Prediction/blob/master/3%20Financial-Time-Others/images/cm.png?raw=true) 77 | 78 | - 3.10 kalmanfilter.py(卡尔曼滤波) 79 | 80 | ![](https://github.com/jm199504/Financial-Prediction/blob/master/3%20Financial-Time-Others/images/kf.png?raw=true) 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 | ![](https://github.com/jm199504/Financial-Prediction/blob/master/3%20Financial-Time-Others/images/002253_0_01.png?raw=true) 92 | 93 | --- 94 | 95 | #### 5.Financial-Data-Download(金融数据下载) 96 | 97 | 提供了三种金融数据源:JQdata、akshare、tushare 98 | --------------------------------------------------------------------------------