Exemplo n.º 1
0
	def __init__(self, predict_range=1):
		"""
		初始化KDJ模型
		:param predict_range: K预测未来涨跌时间范围
		:return:
		"""
		super(KDJModel, self).__init__()
		self.predict_range = predict_range
		self.para_k, self.para_d, self.para_j = 0.0, 0.0, 0.0
		self.KDJ = KDJ()
		self.LC = LabelConstructor(predict_range)
Exemplo n.º 2
0
class KDJModel(Model):

	def __init__(self, predict_range=1):
		"""
		初始化KDJ模型
		:param predict_range: K预测未来涨跌时间范围
		:return:
		"""
		super(KDJModel, self).__init__()
		self.predict_range = predict_range
		self.para_k, self.para_d, self.para_j = 0.0, 0.0, 0.0
		self.KDJ = KDJ()
		self.LC = LabelConstructor(predict_range)

	def train(self, dataset):
		print("Training SVM Model...")

		X_train = self.KDJ(dataset)
		# 数据缩放
		self.min_max_scaler = preprocessing.MinMaxScaler()
		X_train = self.min_max_scaler.fit_transform(X_train)
		print(self.min_max_scaler.scale_, self.min_max_scaler.min_)
		# 得到label Y
		Y_train = self.LC.construct(dataset)

		#for (i,d) in enumerate(dataset):
		#	print(d, X_train_minmax[i], Y_train[i])

		# 用SVM拟合数据
		self.svm = SVC()
		self.svm.fit(X_train, Y_train)

		print("Linear SVM Model:", self.svm)



	def predict(self, dataset):
		k, d, j = self.KDJ.current(dataset[-1], True)
		y = self.svm.predict(self.min_max_scaler.transform([k,d,j]))[0]
		print(dataset[-1], [k,d,j], y)
		return y