This commit is contained in:
dosangyoon
2022-02-02 05:36:55 +09:00
parent 2d4f759ab6
commit 198169493b
15 changed files with 3260 additions and 315 deletions

View File

@@ -12,18 +12,17 @@ class BolingerBand:
self.common = Common()
return
def apply(self, df, n=10, m=6, t=6):
def apply(self, df, n=20, t=2):
# 입력받은 값이 dataframe이라는 것을 정의해줌
df = pd.DataFrame(df)
max20 = df["close"].rolling(window=20).mean()
stddev = df["close"].rolling(window=20).std()
upper = max20 + (stddev * 2) # 상단 볼리저 밴드
lower = max20 - (stddev * 2) # 하단 볼리저 밴드
max20 = df["close"].rolling(window=n).mean()
stddev = df["close"].rolling(window=n).std()
upper = max20 + (stddev * t) # 상단 볼리저 밴드
lower = max20 - (stddev * t) # 하단 볼리저 밴드
middle = (upper + lower ) / 2
# dataframe에 컬럼 추가
#df = df.assign(fast_k=fast_k, slow_k=slow_k, slow_d=slow_d).dropna()
df = df.assign(upper=upper, middle=middle, lower=lower)
return df
@@ -34,21 +33,8 @@ class BolingerBand:
df = self.apply(df)
for i in range(len(df.upper)):
stock['PRICE'][i]['upper'] = df.upper.values[i]
stock['PRICE'][i]['middle'] = df.middle.values[i]
stock['PRICE'][i]['lower'] = df.lower.values[i]
stock['PRICE'][i]['bolingerband_upper'] = df.upper.values[i]
stock['PRICE'][i]['bolingerband_middle'] = df.middle.values[i]
stock['PRICE'][i]['bolingerband_lower'] = df.lower.values[i]
# 0: 중립, 1: 매수, -1: 매도
stock['PRICE'][i]['bolingerband_buy'] = 0
if i > 0:
stock['PRICE'][i]['bolingerband_buy'] = self.common.getBolingerBandScore(stock['PRICE'], i)
results = []
for day in stock['PRICE']:
results.append({'DATE': day['DATE'],
'upper': day['upper'],
'middle': day['middle'],
'lower': day['lower'],
'bolingerband_buy': day['bolingerband_buy']})
return results
return