From 22e190ae5dd31a03d5d2328c09826d5ad21c2656 Mon Sep 17 00:00:00 2001 From: bthun <298092154@qq.com> Date: Fri, 14 Mar 2025 11:07:16 +0800 Subject: [PATCH] Create BIAS.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 乖离率BIAS 用于计算均线与价格的偏离程度 --- Math/BIAS.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Math/BIAS.py diff --git a/Math/BIAS.py b/Math/BIAS.py new file mode 100644 index 000000000..94cedf870 --- /dev/null +++ b/Math/BIAS.py @@ -0,0 +1,36 @@ +class BIAS_Item: + def __init__(self, bias1, bias2, bias3): + self.bias1 = bias1 + self.bias2 = bias2 + self.bias3 = bias3 + + +class BIAS: + def __init__(self, fastperiod=6, midperiod=12, slowperiod=24): + self.fastperiod = fastperiod + self.midperiod = midperiod + self.slowperiod = slowperiod + self.arr1 = [] + self.arr2 = [] + self.arr3 = [] + self.pre_bias = BIAS_Item(0, 0, 0) + + def add(self, value) -> BIAS_Item: + self.arr1.append(value) + self.arr2.append(value) + self.arr3.append(value) + if len(self.arr1) > self.fastperiod: + self.arr1 = self.arr1[-self.fastperiod:] + if len(self.arr2) > self.midperiod: + self.arr2 = self.arr2[-self.midperiod:] + if len(self.arr3) > self.slowperiod: + self.arr3 = self.arr3[-self.slowperiod:] + ma1 = sum(self.arr1) / self.fastperiod + ma2 = sum(self.arr2) / self.midperiod + ma3 = sum(self.arr3) / self.slowperiod + bias1 = (value - ma1) / ma1*100 + bias2 = (value - ma2) / ma2*100 + bias3 = (value - ma3) / ma3*100 + cur_bias = BIAS_Item(bias1, bias2, bias3) + self.pre_bias = cur_bias + return cur_bias