forked from RoveAllOverTheWorld512/hyb_ta
-
Notifications
You must be signed in to change notification settings - Fork 1
/
bottomreversal.py
59 lines (45 loc) · 1.4 KB
/
bottomreversal.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# -*- coding: utf-8 -*-
"""
Created on 2019-09-29 09:17:25
author: huangyunbin
email: huangyunbin@sina.com
QQ: 592440193
"""
from stock_pandas.tdx.tdxdayread import Tdxday
from stock_pandas.tdx.tdxcfg import Tdx
from stock_pandas.tdx.class_func import *
import pandas_ta as ta
import pandas as pd
def signal(gpdm):
tdxday = Tdxday(gpdm)
start = '20170101'
ohlc = tdxday.get_qfqdata(start=start)
if ohlc.empty:
return None
ohlc.ta.bottompattern(append=True)
signals = ohlc.loc[(ohlc['BOTTOM_REVERSAL']==1)]
if not signals.empty:
signals['date'] = signals.index
signals['gpdm'] = tdxday.gpdm
signals['gpmc'] = tdxday.gpmc
return signals[['date', 'gpdm', 'gpmc']]
return None
if __name__ == '__main__':
tdx = Tdx()
gpdmb = tdx.get_gpdm()
sgdf = pd.DataFrame(columns=['date', 'gpdm', 'gpmc'])
n = 0
m = len(gpdmb)
for i in range(n, m):
row = gpdmb.iloc[i]
print(i+1, m,row.dm, row.gpmc)
sg = signal(row.dm)
if isinstance(sg, pd.DataFrame):
sgdf = sgdf.append(sg)
i += 1
sgdf.to_csv('sgdf.csv', index=False ,encoding='GBK')
sgdf1=sgdf.loc[(sgdf.index>'2018-01-01')]
gpdf = sgdf1[['gpdm', 'gpmc']]
gpdf = gpdf.drop_duplicates(subset=['gpdm', 'gpmc'])
gpdf = gpdf.reset_index(drop=True)
gpdf.to_csv('gpdf.csv', index=False ,encoding='GBK')