commented getextremum

realized the algorithm in get mean
This commit is contained in:
Mark 2022-08-14 14:40:15 +03:00
parent 4ad23a9bea
commit 8a2a2615ac

View File

@ -49,53 +49,45 @@ class CoreMath:
def getExtremumValue(self): def getExtremumValue(self):
ans=None """
''' Эта функция возвращает экстремум произвольного типа внутри одного столбца
actionOptions: Тип контролируется разделом внутри словаря параметров `self.params` по ключу `actionOptions`:
'extremumtype': 'extremumtype': -- тип экстремума
'min' 'min'
'max' 'max'
'valueType': :return ans, экстремум произвольного типа
'open' """
'close' ans=None
'high'
'low'
'''
if self.params['actionOptions']['extremumtype']=='max': if self.params['actionOptions']['extremumtype']=='max':
ans=max(self.col) ans=max(self.col)
if self.params['actionOptions']['extremumtype']=='min': if self.params['actionOptions']['extremumtype']=='min':
ans=min(self.col) ans=min(self.col)
return ans return ans
def getMeanValue(self): def getMeanValue(self):
''' """
actionOptions: Божественный код
Эта функция возвращает среднее значение одного из следующих типов.
Для определения типа используется словарь `self.params`, по ключу `actionOptions`, релевантные ключи выглядят
так:
'MeanType': 'MeanType':
'MA' 'MA' -- среднее по всему столбцу
'SMA' 'SMA' -- скользящее среднее
'EMA' 'EMA' -- экспоненциальное скользящее среднее
'WMA' 'WMA' -- взвешенное скользящее среднее
--'SMMA' 'window' -- размер окна
'valueType': 'span' -- >=1 , аналог окна для экспоненциального среднего, чем он больше тем меньше коэффициент сглаживания
'open' 'weights' -- numpy.ndarray, список размером в параметр `window`, конкретные веса для каждого элемента
'close' """
'high'
'low'
'window'
'span'
'weights'
'''
ans=None ans=None
if self.params['actionOptions']['MeanType']=='MA': if self.params['actionOptions']['MeanType']=='MA':
ans = self.col.mean() ans = self.col.mean()
if self.params['actionOptions']['MeanType']=='SMA': if self.params['actionOptions']['MeanType']=='SMA':
ans=np.convolve(self.col, np.ones(self.params['actionOptions']['window']), 'valid') / self.params['actionOptions']['window'] ans=np.convolve(self.col, np.ones(self.params['actionOptions']['window']), 'valid') / self.params['actionOptions']['window']
#ans=self.col.rolling(window=self.params['actionOptions']['window']).mean().to_list()
if self.params['actionOptions']['MeanType']=='EMA': if self.params['actionOptions']['MeanType']=='EMA':
ans=self.col.ewm(span=self.params['actionOptions']['span'], adjust=False).mean().to_list() ans=self.col.ewm(span=self.params['actionOptions']['span'], adjust=False).mean().to_list()
if self.params['actionOptions']['MeanType']=='WMA': if self.params['actionOptions']['MeanType']=='WMA':
@ -105,9 +97,7 @@ class CoreMath:
weights=np.arange(1,self.params['actionOptions']['window']+1) weights=np.arange(1,self.params['actionOptions']['window']+1)
ans=self.col.rolling(window=self.params['actionOptions']['window']).apply(lambda x: np.sum(weights*x) / weights.sum(), raw=False).to_list() ans=self.col.rolling(window=self.params['actionOptions']['window']).apply(lambda x: np.sum(weights*x) / weights.sum(), raw=False).to_list()
return ans
return(ans)
def getSTD(self): def getSTD(self):
''' '''