hikyuu 2.2.2__py3-none-win_amd64.whl → 2.2.4__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. hikyuu/cpp/boost_date_time-mt.dll +0 -0
  2. hikyuu/cpp/boost_serialization-mt.dll +0 -0
  3. hikyuu/cpp/boost_wserialization-mt.dll +0 -0
  4. hikyuu/cpp/core310.pyd +0 -0
  5. hikyuu/cpp/core311.pyd +0 -0
  6. hikyuu/cpp/core312.pyd +0 -0
  7. hikyuu/cpp/core313.pyd +0 -0
  8. hikyuu/cpp/core38.pyd +0 -0
  9. hikyuu/cpp/core39.pyd +0 -0
  10. hikyuu/cpp/hikyuu.dll +0 -0
  11. hikyuu/cpp/hikyuu.lib +0 -0
  12. hikyuu/cpp/sqlite3.dll +0 -0
  13. hikyuu/data/hku_config_template.py +1 -1
  14. hikyuu/data/mysql_upgrade/0024.sql +2 -0
  15. hikyuu/draw/drawplot/matplotlib_draw.py +6 -1
  16. hikyuu/examples/notebook/Demo/Demo1.ipynb +85 -84
  17. hikyuu/gui/HikyuuTDX.py +16 -15
  18. hikyuu/gui/data/MainWindow.py +129 -112
  19. hikyuu/hub.py +3 -3
  20. hikyuu/include/hikyuu/DataType.h +3 -1
  21. hikyuu/include/hikyuu/StockManager.h +10 -0
  22. hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +15 -1
  23. hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +8 -1
  24. hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +3 -1
  25. hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +8 -1
  26. hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +25 -0
  27. hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +0 -4
  28. hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +1 -1
  29. hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +1 -7
  30. hikyuu/include/hikyuu/utilities/Parameter.h +2 -2
  31. hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -0
  32. hikyuu/include/hikyuu/version.h +4 -4
  33. hikyuu/test/Datetime.py +12 -12
  34. hikyuu/test/Indicator.py +36 -36
  35. hikyuu/test/KData.py +11 -11
  36. hikyuu/test/Stock.py +10 -10
  37. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/METADATA +24 -1
  38. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/RECORD +42 -43
  39. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/WHEEL +1 -1
  40. hikyuu/sqlite3.dll +0 -0
  41. hikyuu/vcruntime140.dll +0 -0
  42. hikyuu/vcruntime140_1.dll +0 -0
  43. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/LICENSE +0 -0
  44. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/entry_points.txt +0 -0
  45. {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/top_level.txt +0 -0
hikyuu/gui/HikyuuTDX.py CHANGED
@@ -16,7 +16,7 @@ import PyQt5
16
16
 
17
17
  from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QMessageBox
18
18
  from PyQt5.QtCore import pyqtSlot, QObject, pyqtSignal
19
- from PyQt5.QtGui import QIcon, QTextCursor, QFont
19
+ from PyQt5.QtGui import QIcon, QTextCursor, QFont, QPalette
20
20
 
21
21
  import mysql.connector
22
22
  from mysql.connector import errorcode
@@ -50,11 +50,12 @@ class EmittingStream(QObject):
50
50
 
51
51
 
52
52
  class MyMainWindow(QMainWindow, Ui_MainWindow):
53
- def __init__(self, parent=None, capture_output=False, use_dark_style=False):
53
+ def __init__(self, parent=None, capture_output=False):
54
54
  super(MyMainWindow, self).__init__(parent)
55
55
  self._capture_output = capture_output # 捕获Python stdout 输出
56
- self._use_dark_style = use_dark_style # 使用暗黑主题
57
- self._text_color = '#FFFFFF' if use_dark_style else '#000000'
56
+ palette = QApplication.instance().palette()
57
+ # 获取文字默认颜色
58
+ self._text_color = palette.color(QPalette.WindowText).name()
58
59
  self.setupUi(self)
59
60
  self.initUI()
60
61
  self.initLogger()
@@ -711,6 +712,14 @@ class MyMainWindow(QMainWindow, Ui_MainWindow):
711
712
  QMessageBox.about(self, "错误", str(e))
712
713
  return
713
714
 
715
+ now = hikyuu.Datetime.now()
716
+ today = hikyuu.Datetime.today()
717
+ if now.day_of_week() not in (0, 6) and hikyuu.TimeDelta(0, 8, 30) < now - today < hikyuu.TimeDelta(0, 15, 45):
718
+ reply = QMessageBox.question(self, '警告', '交易日8:30-15:45分之间导入数据将导致盘后数据错误,是否仍要继续执行导入?',
719
+ QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
720
+ if reply == QMessageBox.No:
721
+ return
722
+
714
723
  self.import_running = True
715
724
  self.start_import_pushButton.setEnabled(False)
716
725
  self.reset_progress_bar()
@@ -797,11 +806,7 @@ def start():
797
806
  logging.getLogger("requests").setLevel(logging.WARNING)
798
807
  logging.getLogger("urllib3").setLevel(logging.WARNING)
799
808
  app = QApplication(sys.argv)
800
- use_dark_style = False # 使用暗黑主题
801
- if use_dark_style:
802
- import qdarkstyle
803
- app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))
804
- myWin = MyMainWindow(capture_output=True, use_dark_style=use_dark_style)
809
+ myWin = MyMainWindow(capture_output=True)
805
810
  myWin.show()
806
811
  sys.exit(app.exec())
807
812
 
@@ -822,18 +827,14 @@ if __name__ == "__main__":
822
827
  f.setPixelSize(12)
823
828
  app.setFont(f)
824
829
 
825
- use_dark_style = False # 使用暗黑主题
826
- if use_dark_style:
827
- import qdarkstyle
828
- app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))
829
830
  if (len(sys.argv) > 1 and sys.argv[1] == '0'):
830
831
  FORMAT = '%(asctime)-15s [%(levelname)s]: %(message)s [%(name)s::%(funcName)s]'
831
832
  logging.basicConfig(format=FORMAT, level=logging.INFO, handlers=[
832
833
  logging.StreamHandler(),
833
834
  ])
834
- myWin = MyMainWindow(capture_output=False, use_dark_style=use_dark_style)
835
+ myWin = MyMainWindow(capture_output=False)
835
836
  else:
836
- myWin = MyMainWindow(capture_output=True, use_dark_style=use_dark_style)
837
+ myWin = MyMainWindow(capture_output=True)
837
838
 
838
839
  myWin.show()
839
840
  sys.exit(app.exec())
@@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
14
14
  class Ui_MainWindow(object):
15
15
  def setupUi(self, MainWindow):
16
16
  MainWindow.setObjectName("MainWindow")
17
- MainWindow.resize(1131, 563)
17
+ MainWindow.resize(1131, 690)
18
18
  self.centralwidget = QtWidgets.QWidget(MainWindow)
19
19
  self.centralwidget.setObjectName("centralwidget")
20
20
  self.horizontalLayout_12 = QtWidgets.QHBoxLayout(self.centralwidget)
@@ -48,6 +48,7 @@ class Ui_MainWindow(object):
48
48
  self.pytdx_radioButton.setObjectName("pytdx_radioButton")
49
49
  self.horizontalLayout.addWidget(self.pytdx_radioButton)
50
50
  self.label_16 = QtWidgets.QLabel(self.groupBox_2)
51
+ self.label_16.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
51
52
  self.label_16.setObjectName("label_16")
52
53
  self.horizontalLayout.addWidget(self.label_16)
53
54
  self.use_tdx_number_spinBox = QtWidgets.QSpinBox(self.groupBox_2)
@@ -59,9 +60,11 @@ class Ui_MainWindow(object):
59
60
  self.label_17 = QtWidgets.QLabel(self.groupBox_2)
60
61
  self.label_17.setObjectName("label_17")
61
62
  self.horizontalLayout.addWidget(self.label_17)
63
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
64
+ self.horizontalLayout.addItem(spacerItem)
62
65
  self.verticalLayout_12.addLayout(self.horizontalLayout)
63
- spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
64
- self.verticalLayout_12.addItem(spacerItem)
66
+ spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
67
+ self.verticalLayout_12.addItem(spacerItem1)
65
68
  self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
66
69
  self.horizontalLayout_5.setContentsMargins(10, 0, -1, -1)
67
70
  self.horizontalLayout_5.setObjectName("horizontalLayout_5")
@@ -72,12 +75,17 @@ class Ui_MainWindow(object):
72
75
  self.gridLayout_2 = QtWidgets.QGridLayout()
73
76
  self.gridLayout_2.setContentsMargins(10, -1, -1, 10)
74
77
  self.gridLayout_2.setObjectName("gridLayout_2")
75
- self.tdx_dir_lineEdit = QtWidgets.QLineEdit(self.groupBox_2)
76
- self.tdx_dir_lineEdit.setObjectName("tdx_dir_lineEdit")
77
- self.gridLayout_2.addWidget(self.tdx_dir_lineEdit, 0, 1, 1, 2)
78
78
  self.label_2 = QtWidgets.QLabel(self.groupBox_2)
79
79
  self.label_2.setObjectName("label_2")
80
80
  self.gridLayout_2.addWidget(self.label_2, 0, 0, 1, 1)
81
+ self.tdx_dir_lineEdit = QtWidgets.QLineEdit(self.groupBox_2)
82
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
83
+ sizePolicy.setHorizontalStretch(1)
84
+ sizePolicy.setVerticalStretch(0)
85
+ sizePolicy.setHeightForWidth(self.tdx_dir_lineEdit.sizePolicy().hasHeightForWidth())
86
+ self.tdx_dir_lineEdit.setSizePolicy(sizePolicy)
87
+ self.tdx_dir_lineEdit.setObjectName("tdx_dir_lineEdit")
88
+ self.gridLayout_2.addWidget(self.tdx_dir_lineEdit, 0, 1, 1, 2)
81
89
  self.select_tdx_dir_pushButton = QtWidgets.QPushButton(self.groupBox_2)
82
90
  sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
83
91
  sizePolicy.setHorizontalStretch(0)
@@ -88,8 +96,8 @@ class Ui_MainWindow(object):
88
96
  self.gridLayout_2.addWidget(self.select_tdx_dir_pushButton, 0, 3, 1, 1)
89
97
  self.verticalLayout_12.addLayout(self.gridLayout_2)
90
98
  self.verticalLayout_13.addWidget(self.groupBox_2)
91
- spacerItem1 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
92
- self.verticalLayout_13.addItem(spacerItem1)
99
+ spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
100
+ self.verticalLayout_13.addItem(spacerItem2)
93
101
  self.groupBox_7 = QtWidgets.QGroupBox(self.tab_4)
94
102
  self.groupBox_7.setObjectName("groupBox_7")
95
103
  self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.groupBox_7)
@@ -114,6 +122,8 @@ class Ui_MainWindow(object):
114
122
  self.import_future_checkBox.setEnabled(False)
115
123
  self.import_future_checkBox.setObjectName("import_future_checkBox")
116
124
  self.horizontalLayout_3.addWidget(self.import_future_checkBox)
125
+ spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
126
+ self.horizontalLayout_3.addItem(spacerItem3)
117
127
  self.verticalLayout_11.addLayout(self.horizontalLayout_3)
118
128
  self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
119
129
  self.horizontalLayout_2.setContentsMargins(10, -1, -1, -1)
@@ -135,9 +145,11 @@ class Ui_MainWindow(object):
135
145
  self.import_time_checkBox.setEnabled(True)
136
146
  self.import_time_checkBox.setObjectName("import_time_checkBox")
137
147
  self.horizontalLayout_2.addWidget(self.import_time_checkBox)
148
+ spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
149
+ self.horizontalLayout_2.addItem(spacerItem4)
138
150
  self.verticalLayout_11.addLayout(self.horizontalLayout_2)
139
- spacerItem2 = QtWidgets.QSpacerItem(20, 15, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
140
- self.verticalLayout_11.addItem(spacerItem2)
151
+ spacerItem5 = QtWidgets.QSpacerItem(20, 15, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
152
+ self.verticalLayout_11.addItem(spacerItem5)
141
153
  self.line = QtWidgets.QFrame(self.groupBox_7)
142
154
  self.line.setFrameShape(QtWidgets.QFrame.HLine)
143
155
  self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
@@ -153,7 +165,7 @@ class Ui_MainWindow(object):
153
165
  self.label_6.setObjectName("label_6")
154
166
  self.gridLayout_4.addWidget(self.label_6, 3, 0, 1, 1)
155
167
  self.min5_start_dateEdit = QtWidgets.QDateEdit(self.groupBox_7)
156
- self.min5_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1990, 1, 1), QtCore.QTime(0, 0, 0)))
168
+ self.min5_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 31), QtCore.QTime(0, 0, 0)))
157
169
  self.min5_start_dateEdit.setCalendarPopup(True)
158
170
  self.min5_start_dateEdit.setObjectName("min5_start_dateEdit")
159
171
  self.gridLayout_4.addWidget(self.min5_start_dateEdit, 1, 1, 1, 1)
@@ -162,9 +174,6 @@ class Ui_MainWindow(object):
162
174
  self.min_start_dateEdit.setObjectName("min_start_dateEdit")
163
175
  self.gridLayout_4.addWidget(self.min_start_dateEdit, 2, 1, 1, 1)
164
176
  self.label_3 = QtWidgets.QLabel(self.groupBox_7)
165
- font = QtGui.QFont()
166
- font.setPointSize(9)
167
- self.label_3.setFont(font)
168
177
  self.label_3.setObjectName("label_3")
169
178
  self.gridLayout_4.addWidget(self.label_3, 0, 0, 1, 1)
170
179
  self.label_10 = QtWidgets.QLabel(self.groupBox_7)
@@ -178,7 +187,7 @@ class Ui_MainWindow(object):
178
187
  self.trans_start_dateEdit.setObjectName("trans_start_dateEdit")
179
188
  self.gridLayout_4.addWidget(self.trans_start_dateEdit, 3, 1, 1, 1)
180
189
  self.day_start_dateEdit = QtWidgets.QDateEdit(self.groupBox_7)
181
- self.day_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1990, 1, 1), QtCore.QTime(0, 0, 0)))
190
+ self.day_start_dateEdit.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1989, 12, 31), QtCore.QTime(0, 0, 0)))
182
191
  self.day_start_dateEdit.setCalendarPopup(True)
183
192
  self.day_start_dateEdit.setObjectName("day_start_dateEdit")
184
193
  self.gridLayout_4.addWidget(self.day_start_dateEdit, 0, 1, 1, 1)
@@ -186,11 +195,11 @@ class Ui_MainWindow(object):
186
195
  self.time_start_dateEdit.setCalendarPopup(True)
187
196
  self.time_start_dateEdit.setObjectName("time_start_dateEdit")
188
197
  self.gridLayout_4.addWidget(self.time_start_dateEdit, 4, 1, 1, 1)
189
- spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
190
- self.gridLayout_4.addItem(spacerItem3, 1, 2, 1, 1)
198
+ spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
199
+ self.gridLayout_4.addItem(spacerItem6, 1, 2, 1, 1)
191
200
  self.verticalLayout_11.addLayout(self.gridLayout_4)
192
- spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
193
- self.verticalLayout_11.addItem(spacerItem4)
201
+ spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
202
+ self.verticalLayout_11.addItem(spacerItem7)
194
203
  self.verticalLayout_13.addWidget(self.groupBox_7)
195
204
  self.tabWidget.addTab(self.tab_4, "")
196
205
  self.tab_3 = QtWidgets.QWidget()
@@ -216,12 +225,12 @@ class Ui_MainWindow(object):
216
225
  self.enable_mysql_radioButton = QtWidgets.QRadioButton(self.groupBox_4)
217
226
  self.enable_mysql_radioButton.setObjectName("enable_mysql_radioButton")
218
227
  self.horizontalLayout_19.addWidget(self.enable_mysql_radioButton)
219
- spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
220
- self.horizontalLayout_19.addItem(spacerItem5)
228
+ spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
229
+ self.horizontalLayout_19.addItem(spacerItem8)
221
230
  self.verticalLayout_14.addLayout(self.horizontalLayout_19)
222
231
  self.verticalLayout_9.addWidget(self.groupBox_4)
223
- spacerItem6 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
224
- self.verticalLayout_9.addItem(spacerItem6)
232
+ spacerItem9 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
233
+ self.verticalLayout_9.addItem(spacerItem9)
225
234
  self.groupBox_3 = QtWidgets.QGroupBox(self.tab_3)
226
235
  sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
227
236
  sizePolicy.setHorizontalStretch(0)
@@ -246,8 +255,8 @@ class Ui_MainWindow(object):
246
255
  self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
247
256
  self.verticalLayout_10.addLayout(self.gridLayout_3)
248
257
  self.verticalLayout_9.addWidget(self.groupBox_3)
249
- spacerItem7 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
250
- self.verticalLayout_9.addItem(spacerItem7)
258
+ spacerItem10 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
259
+ self.verticalLayout_9.addItem(spacerItem10)
251
260
  self.groupBox = QtWidgets.QGroupBox(self.tab_3)
252
261
  self.groupBox.setObjectName("groupBox")
253
262
  self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.groupBox)
@@ -291,11 +300,11 @@ class Ui_MainWindow(object):
291
300
  self.label_13 = QtWidgets.QLabel(self.groupBox)
292
301
  self.label_13.setObjectName("label_13")
293
302
  self.gridLayout_5.addWidget(self.label_13, 5, 0, 1, 1)
294
- spacerItem8 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
295
- self.gridLayout_5.addItem(spacerItem8, 1, 0, 1, 1)
303
+ spacerItem11 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
304
+ self.gridLayout_5.addItem(spacerItem11, 1, 0, 1, 1)
296
305
  self.verticalLayout_8.addLayout(self.gridLayout_5)
297
- spacerItem9 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
298
- self.verticalLayout_8.addItem(spacerItem9)
306
+ spacerItem12 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
307
+ self.verticalLayout_8.addItem(spacerItem12)
299
308
  self.verticalLayout_9.addWidget(self.groupBox)
300
309
  self.tabWidget.addTab(self.tab_3, "")
301
310
  self.tab_2 = QtWidgets.QWidget()
@@ -316,12 +325,12 @@ class Ui_MainWindow(object):
316
325
  self.sched_import_timeEdit = QtWidgets.QTimeEdit(self.tab_2)
317
326
  self.sched_import_timeEdit.setObjectName("sched_import_timeEdit")
318
327
  self.horizontalLayout_14.addWidget(self.sched_import_timeEdit)
319
- spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
320
- self.horizontalLayout_14.addItem(spacerItem10)
328
+ spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
329
+ self.horizontalLayout_14.addItem(spacerItem13)
321
330
  self.horizontalLayout_11.addLayout(self.horizontalLayout_14)
322
331
  self.verticalLayout_7.addLayout(self.horizontalLayout_11)
323
- spacerItem11 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
324
- self.verticalLayout_7.addItem(spacerItem11)
332
+ spacerItem14 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
333
+ self.verticalLayout_7.addItem(spacerItem14)
325
334
  self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
326
335
  self.horizontalLayout_18.setContentsMargins(10, -1, 10, -1)
327
336
  self.horizontalLayout_18.setObjectName("horizontalLayout_18")
@@ -331,23 +340,24 @@ class Ui_MainWindow(object):
331
340
  self.import_status_label = QtWidgets.QLabel(self.tab_2)
332
341
  self.import_status_label.setObjectName("import_status_label")
333
342
  self.horizontalLayout_18.addWidget(self.import_status_label)
334
- spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
335
- self.horizontalLayout_18.addItem(spacerItem12)
343
+ spacerItem15 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
344
+ self.horizontalLayout_18.addItem(spacerItem15)
336
345
  self.verticalLayout_7.addLayout(self.horizontalLayout_18)
337
- spacerItem13 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
338
- self.verticalLayout_7.addItem(spacerItem13)
346
+ spacerItem16 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
347
+ self.verticalLayout_7.addItem(spacerItem16)
339
348
  self.groupBox_5 = QtWidgets.QGroupBox(self.tab_2)
340
349
  self.groupBox_5.setObjectName("groupBox_5")
341
350
  self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.groupBox_5)
342
351
  self.verticalLayout_5.setObjectName("verticalLayout_5")
343
352
  self.gridLayout = QtWidgets.QGridLayout()
344
353
  self.gridLayout.setObjectName("gridLayout")
345
- self.label_8 = QtWidgets.QLabel(self.groupBox_5)
346
- self.label_8.setObjectName("label_8")
347
- self.gridLayout.addWidget(self.label_8, 0, 0, 1, 1)
348
- self.label_4 = QtWidgets.QLabel(self.groupBox_5)
349
- self.label_4.setObjectName("label_4")
350
- self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
354
+ self.hdf5_time_progressBar = QtWidgets.QProgressBar(self.groupBox_5)
355
+ self.hdf5_time_progressBar.setProperty("value", 0)
356
+ self.hdf5_time_progressBar.setObjectName("hdf5_time_progressBar")
357
+ self.gridLayout.addWidget(self.hdf5_time_progressBar, 4, 1, 1, 1)
358
+ self.hdf5_weight_label = QtWidgets.QLabel(self.groupBox_5)
359
+ self.hdf5_weight_label.setObjectName("hdf5_weight_label")
360
+ self.gridLayout.addWidget(self.hdf5_weight_label, 5, 1, 1, 1)
351
361
  self.label_14 = QtWidgets.QLabel(self.groupBox_5)
352
362
  self.label_14.setObjectName("label_14")
353
363
  self.gridLayout.addWidget(self.label_14, 2, 0, 1, 1)
@@ -355,13 +365,23 @@ class Ui_MainWindow(object):
355
365
  self.hdf5_trans_progressBar.setProperty("value", 0)
356
366
  self.hdf5_trans_progressBar.setObjectName("hdf5_trans_progressBar")
357
367
  self.gridLayout.addWidget(self.hdf5_trans_progressBar, 3, 1, 1, 1)
368
+ self.label_4 = QtWidgets.QLabel(self.groupBox_5)
369
+ self.label_4.setObjectName("label_4")
370
+ self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
371
+ self.label_8 = QtWidgets.QLabel(self.groupBox_5)
372
+ self.label_8.setObjectName("label_8")
373
+ self.gridLayout.addWidget(self.label_8, 0, 0, 1, 1)
374
+ self.label_5 = QtWidgets.QLabel(self.groupBox_5)
375
+ self.label_5.setObjectName("label_5")
376
+ self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
377
+ self.hdf5_5min_progressBar = QtWidgets.QProgressBar(self.groupBox_5)
378
+ self.hdf5_5min_progressBar.setProperty("value", 0)
379
+ self.hdf5_5min_progressBar.setObjectName("hdf5_5min_progressBar")
380
+ self.gridLayout.addWidget(self.hdf5_5min_progressBar, 1, 1, 1, 1)
358
381
  self.hdf5_day_progressBar = QtWidgets.QProgressBar(self.groupBox_5)
359
382
  self.hdf5_day_progressBar.setProperty("value", 0)
360
383
  self.hdf5_day_progressBar.setObjectName("hdf5_day_progressBar")
361
384
  self.gridLayout.addWidget(self.hdf5_day_progressBar, 0, 1, 1, 1)
362
- self.label_5 = QtWidgets.QLabel(self.groupBox_5)
363
- self.label_5.setObjectName("label_5")
364
- self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
365
385
  self.label_12 = QtWidgets.QLabel(self.groupBox_5)
366
386
  self.label_12.setObjectName("label_12")
367
387
  self.gridLayout.addWidget(self.label_12, 1, 0, 1, 1)
@@ -369,23 +389,14 @@ class Ui_MainWindow(object):
369
389
  self.hdf5_min_progressBar.setProperty("value", 0)
370
390
  self.hdf5_min_progressBar.setObjectName("hdf5_min_progressBar")
371
391
  self.gridLayout.addWidget(self.hdf5_min_progressBar, 2, 1, 1, 1)
372
- self.hdf5_time_progressBar = QtWidgets.QProgressBar(self.groupBox_5)
373
- self.hdf5_time_progressBar.setProperty("value", 0)
374
- self.hdf5_time_progressBar.setObjectName("hdf5_time_progressBar")
375
- self.gridLayout.addWidget(self.hdf5_time_progressBar, 4, 1, 1, 1)
376
- self.hdf5_5min_progressBar = QtWidgets.QProgressBar(self.groupBox_5)
377
- self.hdf5_5min_progressBar.setProperty("value", 0)
378
- self.hdf5_5min_progressBar.setObjectName("hdf5_5min_progressBar")
379
- self.gridLayout.addWidget(self.hdf5_5min_progressBar, 1, 1, 1, 1)
380
392
  self.label_9 = QtWidgets.QLabel(self.groupBox_5)
381
393
  self.label_9.setObjectName("label_9")
382
394
  self.gridLayout.addWidget(self.label_9, 5, 0, 1, 1)
383
- self.hdf5_weight_label = QtWidgets.QLabel(self.groupBox_5)
384
- self.hdf5_weight_label.setObjectName("hdf5_weight_label")
385
- self.gridLayout.addWidget(self.hdf5_weight_label, 5, 1, 1, 1)
395
+ spacerItem17 = QtWidgets.QSpacerItem(5, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
396
+ self.gridLayout.addItem(spacerItem17, 0, 2, 1, 1)
386
397
  self.verticalLayout_5.addLayout(self.gridLayout)
387
- spacerItem14 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
388
- self.verticalLayout_5.addItem(spacerItem14)
398
+ spacerItem18 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
399
+ self.verticalLayout_5.addItem(spacerItem18)
389
400
  self.import_detail_textEdit = QtWidgets.QTextEdit(self.groupBox_5)
390
401
  self.import_detail_textEdit.setFrameShape(QtWidgets.QFrame.NoFrame)
391
402
  self.import_detail_textEdit.setReadOnly(True)
@@ -411,8 +422,8 @@ class Ui_MainWindow(object):
411
422
  self.label_36.setObjectName("label_36")
412
423
  self.verticalLayout.addWidget(self.label_36)
413
424
  self.verticalLayout_4.addLayout(self.verticalLayout)
414
- spacerItem15 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
415
- self.verticalLayout_4.addItem(spacerItem15)
425
+ spacerItem19 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
426
+ self.verticalLayout_4.addItem(spacerItem19)
416
427
  self.gridLayout_6 = QtWidgets.QGridLayout()
417
428
  self.gridLayout_6.setContentsMargins(20, -1, -1, -1)
418
429
  self.gridLayout_6.setObjectName("gridLayout_6")
@@ -506,8 +517,8 @@ class Ui_MainWindow(object):
506
517
  self.preload_week_checkBox = QtWidgets.QCheckBox(self.groupBox_6)
507
518
  self.preload_week_checkBox.setObjectName("preload_week_checkBox")
508
519
  self.gridLayout_6.addWidget(self.preload_week_checkBox, 1, 0, 1, 1)
509
- spacerItem16 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
510
- self.gridLayout_6.addItem(spacerItem16, 4, 3, 1, 1)
520
+ spacerItem20 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
521
+ self.gridLayout_6.addItem(spacerItem20, 4, 3, 1, 1)
511
522
  self.preload_quarter_checkBox = QtWidgets.QCheckBox(self.groupBox_6)
512
523
  self.preload_quarter_checkBox.setObjectName("preload_quarter_checkBox")
513
524
  self.gridLayout_6.addWidget(self.preload_quarter_checkBox, 3, 0, 1, 1)
@@ -542,16 +553,16 @@ class Ui_MainWindow(object):
542
553
  self.preload_year_spinBox.setObjectName("preload_year_spinBox")
543
554
  self.gridLayout_6.addWidget(self.preload_year_spinBox, 5, 2, 1, 1)
544
555
  self.verticalLayout_4.addLayout(self.gridLayout_6)
545
- spacerItem17 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
546
- self.verticalLayout_4.addItem(spacerItem17)
556
+ spacerItem21 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
557
+ self.verticalLayout_4.addItem(spacerItem21)
547
558
  self.verticalLayout_3.addWidget(self.groupBox_6)
548
559
  self.tabWidget.addTab(self.tab_6, "")
549
560
  self.tab = QtWidgets.QWidget()
550
561
  self.tab.setObjectName("tab")
551
562
  self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab)
552
563
  self.verticalLayout_2.setObjectName("verticalLayout_2")
553
- spacerItem18 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
554
- self.verticalLayout_2.addItem(spacerItem18)
564
+ spacerItem22 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
565
+ self.verticalLayout_2.addItem(spacerItem22)
555
566
  self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
556
567
  self.horizontalLayout_15.setContentsMargins(20, -1, -1, -1)
557
568
  self.horizontalLayout_15.setObjectName("horizontalLayout_15")
@@ -561,11 +572,11 @@ class Ui_MainWindow(object):
561
572
  self.collect_status_label = QtWidgets.QLabel(self.tab)
562
573
  self.collect_status_label.setObjectName("collect_status_label")
563
574
  self.horizontalLayout_15.addWidget(self.collect_status_label)
564
- spacerItem19 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
565
- self.horizontalLayout_15.addItem(spacerItem19)
575
+ spacerItem23 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
576
+ self.horizontalLayout_15.addItem(spacerItem23)
566
577
  self.verticalLayout_2.addLayout(self.horizontalLayout_15)
567
- spacerItem20 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
568
- self.verticalLayout_2.addItem(spacerItem20)
578
+ spacerItem24 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
579
+ self.verticalLayout_2.addItem(spacerItem24)
569
580
  self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
570
581
  self.horizontalLayout_13.setContentsMargins(20, -1, -1, -1)
571
582
  self.horizontalLayout_13.setObjectName("horizontalLayout_13")
@@ -577,11 +588,11 @@ class Ui_MainWindow(object):
577
588
  self.collect_source_comboBox.addItem("")
578
589
  self.collect_source_comboBox.addItem("")
579
590
  self.horizontalLayout_13.addWidget(self.collect_source_comboBox)
580
- spacerItem21 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
581
- self.horizontalLayout_13.addItem(spacerItem21)
591
+ spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
592
+ self.horizontalLayout_13.addItem(spacerItem25)
582
593
  self.verticalLayout_2.addLayout(self.horizontalLayout_13)
583
- spacerItem22 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
584
- self.verticalLayout_2.addItem(spacerItem22)
594
+ spacerItem26 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
595
+ self.verticalLayout_2.addItem(spacerItem26)
585
596
  self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
586
597
  self.horizontalLayout_10.setContentsMargins(20, -1, -1, -1)
587
598
  self.horizontalLayout_10.setObjectName("horizontalLayout_10")
@@ -592,11 +603,11 @@ class Ui_MainWindow(object):
592
603
  self.collect_sample_spinBox.setMaximum(86400)
593
604
  self.collect_sample_spinBox.setObjectName("collect_sample_spinBox")
594
605
  self.horizontalLayout_10.addWidget(self.collect_sample_spinBox)
595
- spacerItem23 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
596
- self.horizontalLayout_10.addItem(spacerItem23)
606
+ spacerItem27 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
607
+ self.horizontalLayout_10.addItem(spacerItem27)
597
608
  self.verticalLayout_2.addLayout(self.horizontalLayout_10)
598
- spacerItem24 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
599
- self.verticalLayout_2.addItem(spacerItem24)
609
+ spacerItem28 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
610
+ self.verticalLayout_2.addItem(spacerItem28)
600
611
  self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
601
612
  self.horizontalLayout_8.setContentsMargins(20, -1, -1, -1)
602
613
  self.horizontalLayout_8.setObjectName("horizontalLayout_8")
@@ -615,8 +626,8 @@ class Ui_MainWindow(object):
615
626
  self.collect_phase1_last_timeEdit = QtWidgets.QTimeEdit(self.tab)
616
627
  self.collect_phase1_last_timeEdit.setObjectName("collect_phase1_last_timeEdit")
617
628
  self.horizontalLayout_6.addWidget(self.collect_phase1_last_timeEdit)
618
- spacerItem25 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
619
- self.horizontalLayout_6.addItem(spacerItem25)
629
+ spacerItem29 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
630
+ self.horizontalLayout_6.addItem(spacerItem29)
620
631
  self.horizontalLayout_8.addLayout(self.horizontalLayout_6)
621
632
  self.verticalLayout_2.addLayout(self.horizontalLayout_8)
622
633
  self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
@@ -637,12 +648,12 @@ class Ui_MainWindow(object):
637
648
  self.collect_phase2_last_timeEdit = QtWidgets.QTimeEdit(self.tab)
638
649
  self.collect_phase2_last_timeEdit.setObjectName("collect_phase2_last_timeEdit")
639
650
  self.horizontalLayout_7.addWidget(self.collect_phase2_last_timeEdit)
640
- spacerItem26 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
641
- self.horizontalLayout_7.addItem(spacerItem26)
651
+ spacerItem30 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
652
+ self.horizontalLayout_7.addItem(spacerItem30)
642
653
  self.horizontalLayout_9.addLayout(self.horizontalLayout_7)
643
654
  self.verticalLayout_2.addLayout(self.horizontalLayout_9)
644
- spacerItem27 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
645
- self.verticalLayout_2.addItem(spacerItem27)
655
+ spacerItem31 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
656
+ self.verticalLayout_2.addItem(spacerItem31)
646
657
  self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
647
658
  self.horizontalLayout_16.setContentsMargins(20, 0, -1, -1)
648
659
  self.horizontalLayout_16.setObjectName("horizontalLayout_16")
@@ -655,8 +666,8 @@ class Ui_MainWindow(object):
655
666
  self.collect_use_zhima_checkBox.setObjectName("collect_use_zhima_checkBox")
656
667
  self.horizontalLayout_16.addWidget(self.collect_use_zhima_checkBox)
657
668
  self.verticalLayout_2.addLayout(self.horizontalLayout_16)
658
- spacerItem28 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
659
- self.verticalLayout_2.addItem(spacerItem28)
669
+ spacerItem32 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
670
+ self.verticalLayout_2.addItem(spacerItem32)
660
671
  self.horizontalLayout_17 = QtWidgets.QHBoxLayout()
661
672
  self.horizontalLayout_17.setContentsMargins(20, 0, -1, -1)
662
673
  self.horizontalLayout_17.setObjectName("horizontalLayout_17")
@@ -729,29 +740,32 @@ class Ui_MainWindow(object):
729
740
  self.start_import_pushButton.setText(_translate("MainWindow", "手工执行导入"))
730
741
  self.import_status_label.setText(_translate("MainWindow", "请勿盘中导入!"))
731
742
  self.groupBox_5.setTitle(_translate("MainWindow", "导入进展"))
732
- self.label_8.setText(_translate("MainWindow", "导入日线:"))
733
- self.label_4.setText(_translate("MainWindow", "导入分笔数据:"))
743
+ self.hdf5_weight_label.setText(_translate("MainWindow", "TextLabel"))
734
744
  self.label_14.setText(_translate("MainWindow", "导入1分钟线:"))
745
+ self.label_4.setText(_translate("MainWindow", "导入分笔数据:"))
746
+ self.label_8.setText(_translate("MainWindow", "导入日线:"))
735
747
  self.label_5.setText(_translate("MainWindow", "导入分时数据:"))
736
748
  self.label_12.setText(_translate("MainWindow", "导入5分钟线:"))
737
749
  self.label_9.setText(_translate("MainWindow", "导入权息数据:"))
738
- self.hdf5_weight_label.setText(_translate("MainWindow", "TextLabel"))
739
750
  self.import_detail_textEdit.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
740
- "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
751
+ "<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
741
752
  "p, li { white-space: pre-wrap; }\n"
742
- "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
743
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入上证日线记录:</p>\n"
744
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入深证日线记录:</p>\n"
745
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入上证5分钟线记录:</p>\n"
746
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入深证5分钟线记录:</p>\n"
747
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入上证1分钟线记录:</p>\n"
748
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入深证1分钟线记录:</p>\n"
749
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入上证分笔记录:</p>\n"
750
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入深证分笔记录:</p>\n"
751
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入上证分时数据:</p>\n"
752
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入深证分时数据:</p>\n"
753
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入权息数据数:</p>\n"
754
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">导入完毕!</p></body></html>"))
753
+ "hr { height: 1px; border-width: 0; }\n"
754
+ "li.unchecked::marker { content: \"\\2610\"; }\n"
755
+ "li.checked::marker { content: \"\\2612\"; }\n"
756
+ "</style></head><body style=\" font-family:\'Microsoft YaHei UI\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
757
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证日线记录:</span></p>\n"
758
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证日线记录:</span></p>\n"
759
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证5分钟线记录:</span></p>\n"
760
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证5分钟线记录:</span></p>\n"
761
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证1分钟线记录:</span></p>\n"
762
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证1分钟线记录:</span></p>\n"
763
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证分笔记录:</span></p>\n"
764
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证分笔记录:</span></p>\n"
765
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入上证分时数据:</span></p>\n"
766
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入深证分时数据:</span></p>\n"
767
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入权息数据数:</span></p>\n"
768
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">导入完毕!</span></p></body></html>"))
755
769
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "执行导入"))
756
770
  self.groupBox_6.setTitle(_translate("MainWindow", "预加载设置"))
757
771
  self.label_35.setText(_translate("MainWindow", "此处为 Hikyuu 运行时的数据预加载设置,请根据机器内存大小选择"))
@@ -794,14 +808,17 @@ class Ui_MainWindow(object):
794
808
  self.label_38.setText(_translate("MainWindow", "-"))
795
809
  self.collect_use_zhima_checkBox.setText(_translate("MainWindow", "使用芝麻代理"))
796
810
  self.textBrowser.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
797
- "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
811
+ "<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
798
812
  "p, li { white-space: pre-wrap; }\n"
799
- "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
800
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">注:</p>\n"
801
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt; font-weight:600; color:#ff0000;\">1、行情采集服务仅对预加载数据有效</span>,在行情采集服务运行期间,hikyuu.interactive运行时将自动连接采集服务获取行情数据,并更新预加载的内容数据。</p>\n"
802
- "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
803
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">2、如使用芝麻代理(<a href=\"http://h.zhimaruanjian.com/\"><span style=\" text-decoration: underline; color:#0000ff;\">http://h.zhimaruanjian.com/</span></a>),请自行申请(需付费),并确保ip为其白名单。</p>\n"
804
- "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
805
- "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:696; color:#0000ff;\">3、此处采集为网络采集,更推荐直接运行安装目录下gui子目录下的 start_qmt.py ,使用miniqmt 实时服务。该程序独立运行,不用关闭,和这里的采集效果一样。注意:miniqmt需要QMT交易端配合,且在同一机器上执行。</span></p></body></html>"))
813
+ "hr { height: 1px; border-width: 0; }\n"
814
+ "li.unchecked::marker { content: \"\\2610\"; }\n"
815
+ "li.checked::marker { content: \"\\2612\"; }\n"
816
+ "</style></head><body style=\" font-family:\'Microsoft YaHei UI\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
817
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">注:</span></p>\n"
818
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-size:10pt; font-weight:600; color:#ff0000;\">1、行情采集服务仅对预加载数据有效</span><span style=\" font-family:\'SimSun\';\">,在行情采集服务运行期间,hikyuu.interactive运行时将自动连接采集服务获取行情数据,并更新预加载的内容数据。</span></p>\n"
819
+ "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'SimSun\';\"><br /></p>\n"
820
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\';\">2、如使用芝麻代理(</span><a href=\"http://h.zhimaruanjian.com/\"><span style=\" font-family:\'SimSun\'; text-decoration: underline; color:#0000ff;\">http://h.zhimaruanjian.com/</span></a><span style=\" font-family:\'SimSun\';\">),请自行申请(需付费),并确保ip为其白名单。</span></p>\n"
821
+ "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'SimSun\';\"><br /></p>\n"
822
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'SimSun\'; font-weight:696; color:#0000ff;\">3、此处采集为网络采集,更推荐直接运行安装目录下gui子目录下的 start_qmt.py ,使用miniqmt 实时服务。该程序独立运行,不用关闭,和这里的采集效果一样。注意:miniqmt需要QMT交易端配合,且在同一机器上执行。</span></p></body></html>"))
806
823
  self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "行情采集服务"))
807
824
  self.label_41.setText(_translate("MainWindow", "执行日志"))
hikyuu/hub.py CHANGED
@@ -206,7 +206,7 @@ class HubManager(metaclass=SingletonType):
206
206
  # 检查并下载 hikyuu 默认策略仓库, hikyuu_hub 避免导入时模块和 hikyuu 重名
207
207
  hikyuu_hub_path = self._session.query(HubModel.local).filter(HubModel.name == 'default').first()
208
208
  if hikyuu_hub_path is None:
209
- self.add_remote_hub('default', 'https://gitee.com/fasiondog/hikyuu_hub.git', 'master')
209
+ self.add_remote_hub('default', 'https://gitee.com/fasiondog/hikyuu_hub.git', 'main')
210
210
 
211
211
  def download_remote_hub(self, local_dir, url, branch):
212
212
  print('正在下载 hikyuu 策略仓库至:"{}"'.format(local_dir))
@@ -222,7 +222,7 @@ class HubManager(metaclass=SingletonType):
222
222
  print('下载完毕')
223
223
 
224
224
  @dbsession
225
- def add_remote_hub(self, name, url, branch='master'):
225
+ def add_remote_hub(self, name, url, branch='main'):
226
226
  """增加远程策略仓库
227
227
 
228
228
  :param str name: 本地仓库名称(自行起名)
@@ -502,7 +502,7 @@ class HubManager(metaclass=SingletonType):
502
502
  return hub_model.name
503
503
 
504
504
 
505
- def add_remote_hub(name, url, branch='master'):
505
+ def add_remote_hub(name, url, branch='main'):
506
506
  """增加远程策略仓库
507
507
 
508
508
  :param str name: 本地仓库名称(自行起名)
@@ -17,6 +17,7 @@
17
17
  #define NOMINMAX
18
18
  #endif
19
19
 
20
+ #include "config.h"
20
21
  #include <boost/config.hpp>
21
22
 
22
23
  #include <stdio.h>
@@ -28,8 +29,9 @@
28
29
  // #include <vector>
29
30
  #include <map>
30
31
  #include <unordered_map>
32
+ #include <set>
33
+ #include <unordered_set>
31
34
 
32
- #include "config.h"
33
35
  #include "utilities/Log.h"
34
36
  #include "utilities/osdef.h"
35
37
  #include "utilities/cppdef.h"