-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpattern_labeling.py
40 lines (35 loc) · 1.35 KB
/
pattern_labeling.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pandas as pd
from pathlib import Path
import sys
p = Path.absolute(Path.cwd().parent)
sys.path.append(str(p))
from Data.utils import Bullish, Bearish
def pattern_labeling(data: pd.DataFrame):
bullish = Bullish()
bearish = Bearish()
patterns = list(bullish.nums.keys()) + list(bearish.nums.keys())
dates = data.index.tolist()
labeling_list = []
for i, date in enumerate(dates):
bullish_pattern = bullish(date, data)
bearish_pattern = bearish(date, data)
for pattern, check in bullish_pattern.items():
label = patterns.index(pattern)
if check:
bullish_labeling = pd.DataFrame({
'Label': [label],
'Range': '/'.join(dates[i:i+bullish.nums[pattern]]),
'Pattern': pattern
})
labeling_list.append(bullish_labeling)
for pattern, check in bearish_pattern.items():
label = patterns.index(pattern)
if check:
bearish_labeling = pd.DataFrame({
'Label': [label],
'Range': '/'.join(dates[i:i+bearish.nums[pattern]]),
'Pattern': pattern
})
labeling_list.append(bearish_labeling)
labeling = pd.concat(labeling_list)
return labeling