-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodel.py
180 lines (160 loc) · 6.22 KB
/
model.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# -*- coding: UTF-8 -*-
import datetime
from peewee import *
from basic import config
from basic import log
logger = log.Log()
db = SqliteDatabase(config.db_default)
# db = MySQLDatabase('qcinfo', user=config.db_username, password=config.db_password, host=config.db_address, port=config.db_port)
class SwStock(Model):
seccode = CharField()
secname = CharField()
startdate = DateField()
sw1 = CharField()
sw2 = CharField()
sw3 = CharField()
sw = TextField()
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class HammerShape(Model):
seccode = CharField()
secname = CharField()
type = CharField(null=True) # day, week, month line hammer shape
trend_before = IntegerField(null=True) # rise 1 or drop -1
color = IntegerField() # rise 1 or drop -1
ratio = DoubleField() # entity ratio
lratio = DoubleField() # line header ratio
date = DateField() # trade date
close = DoubleField() # close price.
trend_after = IntegerField(null=True) # rise 1 or drop -1
range_day1 = DoubleField(null=True) # after one day range of pice change.
range_day2 = DoubleField(null=True)
range_day3 = DoubleField(null=True)
range_day4 = DoubleField(null=True)
range_day5 = DoubleField(null=True)
range_week1 = DoubleField(null=True) # after one week range of pice change.
range_week2 = DoubleField(null=True)
range_week3 = DoubleField(null=True)
range_week4 = DoubleField(null=True)
range_month = DoubleField(null=True)
score_s = DoubleField(null=True) # hammer shape score
score_p = DoubleField(null=True) # prediction score
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class TradeCalendar(Model):
month = CharField(unique=True)
calendar = TextField()
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class HammerShapeWeek(Model):
seccode = CharField()
secname = CharField()
type = CharField(null=True) # day, week, month line hammer shape
trend_before = IntegerField(null=True) # rise 1 or drop -1
color = IntegerField() # rise 1 or drop -1
ratio = DoubleField() # entity ratio
lratio = DoubleField() # line header ratio
date = DateField() # trade date
close = DoubleField() # close price.
trend_after = IntegerField(null=True) # rise 1 or drop -1
week1 = DoubleField(null=True) # after one day range of price change.
week2 = DoubleField(null=True)
week3 = DoubleField(null=True)
month1 = DoubleField(null=True)
week5 = DoubleField(null=True)
week6 = DoubleField(null=True) # after one week range of pice change.
week7 = DoubleField(null=True)
month2 = DoubleField(null=True)
score_s = DoubleField(null=True) # hammer shape score
score_p = DoubleField(null=True) # prediction score
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class VenusShape(Model):
seccode = CharField()
secname = CharField()
type = CharField() # day, week, month line hammer shape
trend_before = IntegerField(null=True) # rise 1 or drop -1
color = IntegerField(null=True) # rise 1 or drop -1
date = DateField() # trade date
close = DoubleField() # close price.
trend_after = IntegerField(null=True) # rise 1 or drop -1
d1 = DoubleField(null=True)
d2 = DoubleField(null=True)
d3 = DoubleField(null=True)
d4 = DoubleField(null=True)
d5 = DoubleField(null=True)
d6 = DoubleField(null=True)
d7 = DoubleField(null=True)
d8 = DoubleField(null=True)
d9 = DoubleField(null=True)
d10 = DoubleField(null=True)
score_s = DoubleField(null=True)
score_p = DoubleField(null=True)
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class ShapeDaily(Model):
seccode = CharField()
secname = CharField()
type = CharField() # hammer, venus ...
trend_before = IntegerField(null=True) # rise 1 or drop -1
color = IntegerField(null=True) # rise 1 or drop -1
date = DateField() # trade date
close = DoubleField() # close price.
trend_after = IntegerField(null=True) # rise 1 or drop -1
d1 = DoubleField(null=True) # day1
d2 = DoubleField(null=True) # day2
d3 = DoubleField(null=True) # day3
d4 = DoubleField(null=True) # day4
d5 = DoubleField(null=True) # week1
d6 = DoubleField(null=True) # week2
d7 = DoubleField(null=True) # week3
d8 = DoubleField(null=True) # month1
d9 = DoubleField(null=True) # month2
d10 = DoubleField(null=True) # month3
score_s = DoubleField(null=True)
score_p = DoubleField(null=True)
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class ShapeWeekly(Model):
seccode = CharField()
secname = CharField()
type = CharField() # hammer, venus ...
trend_before = IntegerField(null=True) # rise 1 or drop -1
color = IntegerField(null=True) # rise 1 or drop -1
date = DateField() # trade date
close = DoubleField() # close price.
trend_after = IntegerField(null=True) # rise 1 or drop -1
d1 = DoubleField(null=True)
d2 = DoubleField(null=True)
d3 = DoubleField(null=True)
d4 = DoubleField(null=True)
d5 = DoubleField(null=True)
d6 = DoubleField(null=True)
d7 = DoubleField(null=True)
d8 = DoubleField(null=True)
d9 = DoubleField(null=True)
d10 = DoubleField(null=True)
score_s = DoubleField(null=True)
score_p = DoubleField(null=True)
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
class Statistics(Model):
date = CharField()
type = CharField(default='day')
hammer_count = IntegerField(default=0)
venus_count = IntegerField(default=0)
cross_count = IntegerField(default=0)
updated = DateTimeField(default=datetime.datetime.now)
class Meta:
database = db
tables = [SwStock, HammerShape, TradeCalendar, HammerShapeWeek, VenusShape, ShapeDaily, Statistics, ShapeWeekly]
# db.connect()
# db.create_tables([ShapeWeekly])
# logger.debug('Tables created successfully.')