fix: ewm bug and new collector
This commit is contained in:
parent
91f297f308
commit
e86ada382c
11
gen.py
11
gen.py
@ -103,6 +103,9 @@ def collect(data: DataStore, collector: OutputCollector, corp: database.KRXCorp
|
||||
d60 = stock["CLOSE"].loc[::-1].rolling(window=60
|
||||
).mean().dropna().loc[::-1]
|
||||
|
||||
if (d60.iloc[nday+2] > d60.iloc[nday+1] and d60.iloc[nday+1] < d60.iloc[nday]):
|
||||
collector.collect("60일선반등",corp, stock.index[nday])
|
||||
|
||||
if (isRelativeDiffLessThan(d5, d20, 0.01, nday) and
|
||||
isRelativeDiffLessThan(d5, d60, 0.01, nday)):
|
||||
collector.collect("cross 2", corp, stock.index[nday])
|
||||
@ -133,10 +136,10 @@ def collect(data: DataStore, collector: OutputCollector, corp: database.KRXCorp
|
||||
if (isVolumeNTimes(stock, 5, nday)):
|
||||
collector.collect("volumeX5", corp, stock.index[nday])
|
||||
|
||||
ewm12 = stock["CLOSE"].loc[::-1].ewm(span=12).mean().loc[::-1]
|
||||
ewm26 = stock["CLOSE"].loc[::-1].ewm(span=26).mean().loc[::-1]
|
||||
macd = (ewm12 - ewm26)
|
||||
signal = macd.ewm(span=9).mean()
|
||||
ewm5 = stock["CLOSE"].loc[::-1].ewm(span=5).mean().loc[::-1]
|
||||
ewm10 = stock["CLOSE"].loc[::-1].ewm(span=10).mean().loc[::-1]
|
||||
macd = (ewm5 - ewm10)
|
||||
signal = macd.loc[::-1].ewm(span=4).mean().loc[::-1]
|
||||
|
||||
if (isMACDCrossSignal(macd, signal, nday)):
|
||||
collector.collect("macd", corp, stock.index[nday])
|
||||
|
7
pages.py
7
pages.py
@ -35,6 +35,11 @@ d20d5의 조건에서 더해서 거래량이 이전 날짜보다 5배 증가한
|
||||
"""},
|
||||
{name:"macd",desc: """\
|
||||
signal과 macd가 서로 교차한 시점을 찾습니다. 즉 signal이 아래로 떨어지고
|
||||
macd가 위로 올라가는 시점을 찾습니다.
|
||||
macd가 위로 올라가는 시점을 찾습니다. macd 는 5일선과 10일선으로 이루어지고
|
||||
시그널을 구하기 위한 이동 평균은 4일입니다.
|
||||
"""},
|
||||
{
|
||||
name:"60일선반등",desc: """\
|
||||
60일선이 반등하는 시점을 찾습니다."""
|
||||
}
|
||||
]
|
659
test.ipynb
659
test.ipynb
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user