Beispiel #1
0
    def init_tree(self) -> None:
        """"""
        labels = [
            "数据",
            "本地代码",
            "代码",
            "交易所",
            "数据量",
            "开始时间",
            "结束时间",
            "",
            ""
        ]

        self.tree = QtWidgets.QTreeWidget()
        self.tree.setColumnCount(len(labels))
        self.tree.setHeaderLabels(labels)

        root = QtWidgets.QTreeWidgetItem(self.tree)
        root.setText(0, "K线数据")
        root.setExpanded(True)

        self.minute_child = QtWidgets.QTreeWidgetItem()
        self.minute_child.setText(0, "分钟线")
        root.addChild(self.minute_child)

        self.hour_child = QtWidgets.QTreeWidgetItem()
        self.hour_child.setText(0, "小时线")
        root.addChild(self.hour_child)

        self.daily_child = QtWidgets.QTreeWidgetItem()
        self.daily_child.setText(0, "日线")
        root.addChild(self.daily_child)
Beispiel #2
0
    def init_child(self) -> None:
        """"""
        self.minute_child = QtWidgets.QTreeWidgetItem()
        self.minute_child.setText(0, "分钟线")
        self.tree.addTopLevelItem(self.minute_child)

        self.hour_child = QtWidgets.QTreeWidgetItem(self.tree)
        self.hour_child.setText(0, "小时线")
        self.tree.addTopLevelItem(self.hour_child)

        self.daily_child = QtWidgets.QTreeWidgetItem(self.tree)
        self.daily_child.setText(0, "日线")
        self.tree.addTopLevelItem(self.daily_child)
Beispiel #3
0
    def refresh_tree(self) -> None:
        """"""
        self.clear_tree()

        data = self.engine.get_bar_data_available()

        for d in data:
            key = (d["symbol"], d["exchange"], d["interval"])
            item = self.tree_items.get(key, None)

            if not item:
                item = QtWidgets.QTreeWidgetItem()
                self.tree_items[key] = item

                item.setText(1, ".".join([d["symbol"], d["exchange"]]))
                item.setText(2, d["symbol"])
                item.setText(3, d["exchange"])

                if d["interval"] == Interval.MINUTE.value:
                    self.minute_child.addChild(item)
                elif d["interval"] == Interval.HOUR.value:
                    self.hour_child.addChild(item)
                else:
                    self.daily_child.addChild(item)

                output_button = QtWidgets.QPushButton("导出")
                output_func = partial(self.output_data, d["symbol"],
                                      Exchange(d["exchange"]),
                                      Interval(d["interval"]), d["start"],
                                      d["end"])
                output_button.clicked.connect(output_func)

                show_button = QtWidgets.QPushButton("查看")
                show_func = partial(self.show_data, d["symbol"],
                                    Exchange(d["exchange"]),
                                    Interval(d["interval"]), d["start"],
                                    d["end"])
                show_button.clicked.connect(show_func)

                delete_button = QtWidgets.QPushButton("删除")
                delete_func = partial(
                    self.delete_data,
                    d["symbol"],
                    Exchange(d["exchange"]),
                    Interval(d["interval"]),
                )
                delete_button.clicked.connect(delete_func)

                self.tree.setItemWidget(item, 7, show_button)
                self.tree.setItemWidget(item, 8, output_button)
                self.tree.setItemWidget(item, 9, delete_button)

            item.setText(4, str(d["count"]))
            item.setText(5, d["start"].strftime("%Y-%m-%d %H:%M:%S"))
            item.setText(6, d["end"].strftime("%Y-%m-%d %H:%M:%S"))

        self.minute_child.setExpanded(True)
        self.hour_child.setExpanded(True)
        self.daily_child.setExpanded(True)
Beispiel #4
0
    def refresh_tree(self) -> None:
        """"""
        self.clear_tree()

        overviews = self.engine.get_bar_overview()

        for overview in overviews:
            key = (overview.symbol, overview.exchange, overview.interval)
            item = self.tree_items.get(key, None)

            if not item:
                item = QtWidgets.QTreeWidgetItem()
                self.tree_items[key] = item

                item.setText(1, f"{overview.symbol}.{overview.exchange.value}")
                item.setText(2, overview.symbol)
                item.setText(3, overview.exchange.value)

                if overview.interval == Interval.MINUTE:
                    self.minute_child.addChild(item)
                elif overview.interval == Interval.HOUR:
                    self.hour_child.addChild(item)
                else:
                    self.daily_child.addChild(item)

                output_button = QtWidgets.QPushButton("导出")
                output_func = partial(self.output_data, overview.symbol,
                                      overview.exchange, overview.interval,
                                      overview.start, overview.end)
                output_button.clicked.connect(output_func)

                show_button = QtWidgets.QPushButton("查看")
                show_func = partial(self.show_data, overview.symbol,
                                    overview.exchange, overview.interval,
                                    overview.start, overview.end)
                show_button.clicked.connect(show_func)

                delete_button = QtWidgets.QPushButton("删除")
                delete_func = partial(self.delete_data, overview.symbol,
                                      overview.exchange, overview.interval)
                delete_button.clicked.connect(delete_func)

                self.tree.setItemWidget(item, 7, show_button)
                self.tree.setItemWidget(item, 8, output_button)
                self.tree.setItemWidget(item, 9, delete_button)

            item.setText(4, str(overview.count))
            item.setText(5, overview.start.strftime("%Y-%m-%d %H:%M:%S"))
            item.setText(6, overview.end.strftime("%Y-%m-%d %H:%M:%S"))

        self.minute_child.setExpanded(True)
        self.hour_child.setExpanded(True)
        self.daily_child.setExpanded(True)
Beispiel #5
0
    def get_portfolio_item(self, reference: str) -> QtWidgets.QTreeWidgetItem:
        """"""
        portfolio_item = self.portfolio_items.get(reference, None)

        if not portfolio_item:
            portfolio_item = QtWidgets.QTreeWidgetItem()
            portfolio_item.setText(0, reference)
            for i in range(2, self.column_count):
                portfolio_item.setTextAlignment(i, QtCore.Qt.AlignCenter)

            self.portfolio_items[reference] = portfolio_item
            self.tree.addTopLevelItem(portfolio_item)

            self.reference_combo.addItem(reference)

        return portfolio_item
Beispiel #6
0
    def get_contract_item(self, reference: str,
                          vt_symbol: str) -> QtWidgets.QTreeWidgetItem:
        """"""
        key = (reference, vt_symbol)
        contract_item = self.contract_items.get(key, None)

        if not contract_item:
            contract_item = QtWidgets.QTreeWidgetItem()
            contract_item.setText(1, vt_symbol)
            for i in range(2, self.column_count):
                contract_item.setTextAlignment(i, QtCore.Qt.AlignCenter)

            self.contract_items[key] = contract_item

            portfolio_item = self.get_portfolio_item(reference)
            portfolio_item.addChild(contract_item)

        return contract_item
Beispiel #7
0
 def init_child(self) -> None:
     """"""
     self.child = {}
     self.minute_child = QtWidgets.QTreeWidgetItem()
     self.minute_child.setText(0, "1分钟线")
     self.tree.addTopLevelItem(self.minute_child)
     self.child[Interval.MINUTE.value] = self.minute_child
     self.minute_child_3 = QtWidgets.QTreeWidgetItem()
     self.minute_child_3.setText(0, "3分钟线")
     self.tree.addTopLevelItem(self.minute_child_3)
     self.child[Interval.MINUTE_3.value] = self.minute_child_3
     self.minute_child_5 = QtWidgets.QTreeWidgetItem()
     self.minute_child_5.setText(0, "5分钟线")
     self.tree.addTopLevelItem(self.minute_child_5)
     self.child[Interval.MINUTE_5.value] = self.minute_child_5
     self.minute_child_15 = QtWidgets.QTreeWidgetItem()
     self.minute_child_15.setText(0, "15分钟线")
     self.tree.addTopLevelItem(self.minute_child_15)
     self.child[Interval.MINUTE_15.value] = self.minute_child_15
     self.minute_child_30 = QtWidgets.QTreeWidgetItem()
     self.minute_child_30.setText(0, "30分钟线")
     self.tree.addTopLevelItem(self.minute_child_30)
     self.child[Interval.MINUTE_30.value] = self.minute_child_30
     self.hour_child = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child.setText(0, "小时线")
     self.tree.addTopLevelItem(self.hour_child)
     self.child[Interval.HOUR.value] = self.hour_child
     self.hour_child_2 = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child_2.setText(0, "2小时线")
     self.tree.addTopLevelItem(self.hour_child_2)
     self.child[Interval.HOUR_2.value] = self.hour_child_2
     self.hour_child_4 = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child_4.setText(0, "4小时线")
     self.tree.addTopLevelItem(self.hour_child_4)
     self.child[Interval.HOUR_4.value] = self.hour_child_4
     self.hour_child_6 = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child_6.setText(0, "6小时线")
     self.tree.addTopLevelItem(self.hour_child_6)
     self.child[Interval.HOUR_6.value] = self.hour_child_6
     self.hour_child_8 = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child_8.setText(0, "8小时线")
     self.tree.addTopLevelItem(self.hour_child_8)
     self.child[Interval.HOUR_8.value] = self.hour_child_8
     self.hour_child_12 = QtWidgets.QTreeWidgetItem(self.tree)
     self.hour_child_12.setText(0, "12小时线")
     self.tree.addTopLevelItem(self.hour_child_12)
     self.child[Interval.HOUR_12.value] = self.hour_child_12
     self.daily_child = QtWidgets.QTreeWidgetItem(self.tree)
     self.daily_child.setText(0, "日线")
     self.tree.addTopLevelItem(self.daily_child)
     self.child[Interval.DAILY.value] = self.daily_child
     self.daily_child_3 = QtWidgets.QTreeWidgetItem(self.tree)
     self.daily_child_3.setText(0, "3日线")
     self.tree.addTopLevelItem(self.daily_child_3)
     self.child[Interval.DAILY_3.value] = self.daily_child_3
     self.week_child = QtWidgets.QTreeWidgetItem(self.tree)
     self.week_child.setText(0, "周线")
     self.tree.addTopLevelItem(self.week_child)
     self.child[Interval.WEEKLY.value] = self.week_child
     self.month_child = QtWidgets.QTreeWidgetItem(self.tree)
     self.month_child.setText(0, "月线")
     self.tree.addTopLevelItem(self.month_child)
     self.child[Interval.MONTH.value] = self.month_child