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.
- hikyuu/cpp/boost_date_time-mt.dll +0 -0
- hikyuu/cpp/boost_serialization-mt.dll +0 -0
- hikyuu/cpp/boost_wserialization-mt.dll +0 -0
- hikyuu/cpp/core310.pyd +0 -0
- hikyuu/cpp/core311.pyd +0 -0
- hikyuu/cpp/core312.pyd +0 -0
- hikyuu/cpp/core313.pyd +0 -0
- hikyuu/cpp/core38.pyd +0 -0
- hikyuu/cpp/core39.pyd +0 -0
- hikyuu/cpp/hikyuu.dll +0 -0
- hikyuu/cpp/hikyuu.lib +0 -0
- hikyuu/cpp/sqlite3.dll +0 -0
- hikyuu/data/hku_config_template.py +1 -1
- hikyuu/data/mysql_upgrade/0024.sql +2 -0
- hikyuu/draw/drawplot/matplotlib_draw.py +6 -1
- hikyuu/examples/notebook/Demo/Demo1.ipynb +85 -84
- hikyuu/gui/HikyuuTDX.py +16 -15
- hikyuu/gui/data/MainWindow.py +129 -112
- hikyuu/hub.py +3 -3
- hikyuu/include/hikyuu/DataType.h +3 -1
- hikyuu/include/hikyuu/StockManager.h +10 -0
- hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +15 -1
- hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +8 -1
- hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +3 -1
- hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +8 -1
- hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +25 -0
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +0 -4
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/PerformanceOptimalSelector.h +1 -1
- hikyuu/include/hikyuu/trade_sys/system/crt/SYS_WalkForward.h +1 -7
- hikyuu/include/hikyuu/utilities/Parameter.h +2 -2
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -0
- hikyuu/include/hikyuu/version.h +4 -4
- hikyuu/test/Datetime.py +12 -12
- hikyuu/test/Indicator.py +36 -36
- hikyuu/test/KData.py +11 -11
- hikyuu/test/Stock.py +10 -10
- {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/METADATA +24 -1
- {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/RECORD +42 -43
- {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/WHEEL +1 -1
- hikyuu/sqlite3.dll +0 -0
- hikyuu/vcruntime140.dll +0 -0
- hikyuu/vcruntime140_1.dll +0 -0
- {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/LICENSE +0 -0
- {hikyuu-2.2.2.dist-info → hikyuu-2.2.4.dist-info}/entry_points.txt +0 -0
- {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
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
|
835
|
+
myWin = MyMainWindow(capture_output=False)
|
|
835
836
|
else:
|
|
836
|
-
myWin = MyMainWindow(capture_output=True
|
|
837
|
+
myWin = MyMainWindow(capture_output=True)
|
|
837
838
|
|
|
838
839
|
myWin.show()
|
|
839
840
|
sys.exit(app.exec())
|
hikyuu/gui/data/MainWindow.py
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
64
|
-
self.verticalLayout_12.addItem(
|
|
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
|
-
|
|
92
|
-
self.verticalLayout_13.addItem(
|
|
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
|
-
|
|
140
|
-
self.verticalLayout_11.addItem(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
190
|
-
self.gridLayout_4.addItem(
|
|
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
|
-
|
|
193
|
-
self.verticalLayout_11.addItem(
|
|
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
|
-
|
|
220
|
-
self.horizontalLayout_19.addItem(
|
|
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
|
-
|
|
224
|
-
self.verticalLayout_9.addItem(
|
|
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
|
-
|
|
250
|
-
self.verticalLayout_9.addItem(
|
|
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
|
-
|
|
295
|
-
self.gridLayout_5.addItem(
|
|
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
|
-
|
|
298
|
-
self.verticalLayout_8.addItem(
|
|
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
|
-
|
|
320
|
-
self.horizontalLayout_14.addItem(
|
|
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
|
-
|
|
324
|
-
self.verticalLayout_7.addItem(
|
|
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
|
-
|
|
335
|
-
self.horizontalLayout_18.addItem(
|
|
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
|
-
|
|
338
|
-
self.verticalLayout_7.addItem(
|
|
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.
|
|
346
|
-
self.
|
|
347
|
-
self.
|
|
348
|
-
self.
|
|
349
|
-
self.
|
|
350
|
-
self.
|
|
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
|
-
|
|
384
|
-
self.
|
|
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
|
-
|
|
388
|
-
self.verticalLayout_5.addItem(
|
|
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
|
-
|
|
415
|
-
self.verticalLayout_4.addItem(
|
|
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
|
-
|
|
510
|
-
self.gridLayout_6.addItem(
|
|
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
|
-
|
|
546
|
-
self.verticalLayout_4.addItem(
|
|
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
|
-
|
|
554
|
-
self.verticalLayout_2.addItem(
|
|
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
|
-
|
|
565
|
-
self.horizontalLayout_15.addItem(
|
|
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
|
-
|
|
568
|
-
self.verticalLayout_2.addItem(
|
|
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
|
-
|
|
581
|
-
self.horizontalLayout_13.addItem(
|
|
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
|
-
|
|
584
|
-
self.verticalLayout_2.addItem(
|
|
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
|
-
|
|
596
|
-
self.horizontalLayout_10.addItem(
|
|
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
|
-
|
|
599
|
-
self.verticalLayout_2.addItem(
|
|
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
|
-
|
|
619
|
-
self.horizontalLayout_6.addItem(
|
|
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
|
-
|
|
641
|
-
self.horizontalLayout_7.addItem(
|
|
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
|
-
|
|
645
|
-
self.verticalLayout_2.addItem(
|
|
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
|
-
|
|
659
|
-
self.verticalLayout_2.addItem(
|
|
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.
|
|
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
|
-
"
|
|
743
|
-
"
|
|
744
|
-
"
|
|
745
|
-
"
|
|
746
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
747
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
748
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
749
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
750
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
751
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
752
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
753
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
754
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
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
|
-
"
|
|
800
|
-
"
|
|
801
|
-
"
|
|
802
|
-
"
|
|
803
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"
|
|
804
|
-
"<p style=\"
|
|
805
|
-
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px
|
|
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', '
|
|
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='
|
|
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='
|
|
505
|
+
def add_remote_hub(name, url, branch='main'):
|
|
506
506
|
"""增加远程策略仓库
|
|
507
507
|
|
|
508
508
|
:param str name: 本地仓库名称(自行起名)
|
hikyuu/include/hikyuu/DataType.h
CHANGED
|
@@ -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"
|