Example #1
0
    def __init__(self, analysisEngine):  # 初始化方法
        QtGui.QWidget.__init__(self)  # 调用父类初始化方法
        self.setWindowTitle('NetCurve')  # 设置窗口标题
        self.path = os.getcwd() + '/ctaLogFile/ctaPosFile'
        # self.path = os.getcwd() + '/statement/netSource'
        self.analysisEngine = analysisEngine
        #        self.resize(300,200)        # 设置窗口大小
        gridlayout = QtGui.QGridLayout()  # 创建布局组件

        self.cbAccount = QtGui.QComboBox()
        self.cbContract = QtGui.QComboBox()
        self.buttonStart = QtGui.QPushButton()
        self.lineedit = QtGui.QLineEdit('1000000')

        self.labelAcct = QtGui.QLabel(u'账户')
        self.labelCon = QtGui.QLabel(u'标的')
        self.labelAmount = QtGui.QLabel(u'初始金额')
        self.labelEvaluate = QtGui.QLabel()

        tree = lambda: collections.defaultdict(tree)
        self.dataList = tree()
        self.fileName = []

        self.loadAllPosFile()
        self.cbAccount.addItems(
            [k for k in self.groupByPosFile('name').keys()])
        self.cbContract.addItems(
            [k for k in self.groupByPosFile('contract').keys()])
Example #2
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'登录')

        # 设置界面
        self.userName = QtGui.QLineEdit()
        self.password = QtGui.QTextEdit()
        self.comboStrategy = QtGui.QComboBox()

        grid = QtGui.QGridLayout()
        grid.addWidget(LoginLine(), 1, 0, 1, 2)
        grid.addWidget(QtGui.QLabel(u'用户名'), 2, 0)
        grid.addWidget(self.userName, 2, 1)
        grid.addWidget(QtGui.QLabel(u'令牌'), 3, 0)
        grid.addWidget(self.password, 3, 1)
        grid.addWidget(LoginLine(), 4, 0, 1, 2)
        grid.addWidget(QtGui.QLabel(u'策略'), 5, 0)
        grid.addWidget(self.comboStrategy, 5, 1)
        grid.addWidget(LoginLine(), 6, 0, 1, 2)

        self.buttonCancel = QtGui.QPushButton(u'取消')
        self.buttonConfirm = QtGui.QPushButton(u'确认')
        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(self.buttonConfirm)
        hbox.addWidget(self.buttonCancel)
        self.buttonConfirm.setDefault(True)

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(grid)
        vbox.addLayout(hbox)
        self.setLayout(vbox)

        # 设为固定大小
        self.setFixedSize(self.sizeHint())

        self.buttonCancel.clicked.connect(self.close)
        self.buttonConfirm.clicked.connect(self.login)
        self.userName.returnPressed.connect(self.password.setFocus)

        # init username & token
        username = self.setting['username']
        token = self.setting['token']

        self.userName.setText(username)
        self.password.setText(token)
Example #3
0
    def initUi(self):
        """"""
        QtGui.QWidget.__init__(self)         # 调用父类初始化方法
        self.setWindowTitle(u'设置参数')
        self.resize(300,400)                 # 设置窗口大小
        gridlayout = QtGui.QGridLayout()     # 创建布局组件
        i = 0
        lName  = QtGui.QLabel(u'参数')
        lValue = QtGui.QLabel(u'数值')
        gridlayout.addWidget(lName,  i, 0 )
        gridlayout.addWidget(lValue, i, 1 )
        for name in self.paramDict:
            i += 1
            label = QtGui.QLabel(name)                              # 创建单选框
            self.valueEdit[name] = QtGui.QLineEdit()
            self.valueEdit[name].setText(str(self.paramDict[name]))
            self.valueEdit[name].setFocusPolicy(QtCore.Qt.NoFocus)
            gridlayout.addWidget(label, i, 0 )                      # 添加文本
            gridlayout.addWidget(self.valueEdit[name], i,  1)       # 添加文本框

        vbox = QtGui.QVBoxLayout()
        vbox.addLayout(gridlayout)
        self.addButton(vbox)
        self.setLayout(vbox)                                    
Example #4
0
    def initLabel(self):
        if self.name == "":
            strategyname_label = QtGui.QLabel(u"策略名", self)
            strategyname_label.setGeometry(QtCore.QRect(25, 25, 70, 22))
            self.strategyname_label = QtGui.QLineEdit(self)
            self.strategyname_label.setGeometry(QtCore.QRect(120, 25, 70, 22))

        self.closeFirst = QtGui.QCheckBox(u'平仓优先', self)
        self.closeFirst.setGeometry(QtCore.QRect(210, 25, 90, 22))

        label_symbol = QtGui.QLabel(u"合约", self)
        label_symbol.setGeometry(QtCore.QRect(25, 50, 70, 22))
        self.lineEdit_label_symbol = QtGui.QLineEdit(self)
        self.lineEdit_label_symbol.setGeometry(QtCore.QRect(120, 50, 70, 22))

        symbolDirection = QtGui.QLabel(u"方向", self)
        symbolDirection.setGeometry(QtCore.QRect(210, 50, 70, 22))
        self.directionCombo = QtGui.QComboBox(self)
        self.directionCombo.addItem("")
        self.directionCombo.addItem("long")
        self.directionCombo.addItem('short')
        self.directionCombo.setGeometry(QtCore.QRect(245, 50, 50, 22))

        label_longBuyUnit = QtGui.QLabel(u"每笔数量", self)
        label_longBuyUnit.setGeometry(QtCore.QRect(25, 75, 50, 22))
        self.lineEdit_label_longBuyUnit = QtGui.QLineEdit(self)
        self.lineEdit_label_longBuyUnit.setGeometry(
            QtCore.QRect(120, 75, 70, 22))

        maxStpLos = QtGui.QLabel(u'止损', self)
        maxStpLos.setGeometry(QtCore.QRect(210, 75, 70, 22))
        self.lineEdit_label_maxStpLos = QtGui.QLineEdit(self)
        self.lineEdit_label_maxStpLos.setGeometry(QtCore.QRect(
            245, 75, 60, 22))

        label_longPriceCoe = QtGui.QLabel(u"价格系数", self)
        label_longPriceCoe.setGeometry(QtCore.QRect(25, 100, 50, 22))
        self.lineEdit_label_longPriceCoe = QtGui.QLineEdit(self)
        self.lineEdit_label_longPriceCoe.setGeometry(
            QtCore.QRect(120, 100, 70, 22))

        label_longPosition = QtGui.QLabel(u"当前持仓量", self)
        label_longPosition.setGeometry(QtCore.QRect(25, 125, 50, 22))
        self.lineEdit_label_longPosition = QtGui.QLineEdit(self)
        self.lineEdit_label_longPosition.setGeometry(
            QtCore.QRect(120, 125, 70, 22))

        label_stpProfit = QtGui.QLabel(u"止赢", self)
        label_stpProfit.setGeometry(QtCore.QRect(25, 150, 50, 22))
        self.lineEdit_label_stpProfit = QtGui.QLineEdit(self)
        self.lineEdit_label_stpProfit.setGeometry(
            QtCore.QRect(120, 150, 70, 22))

        label_slippage = QtGui.QLabel(u"滑点", self)
        label_slippage.setGeometry(QtCore.QRect(25, 175, 50, 22))
        self.lineEdit_label_slippage = QtGui.QLineEdit(self)
        self.lineEdit_label_slippage.setGeometry(QtCore.QRect(
            120, 175, 70, 22))

        label_mail = QtGui.QLabel(u"邮箱", self)
        label_mail.setGeometry(QtCore.QRect(25, 200, 50, 22))
        self.lineEdit_label_mail = QtGui.QLineEdit(self)
        self.lineEdit_label_mail.setGeometry(QtCore.QRect(120, 200, 200, 22))

        label_buyPrice = QtGui.QLabel(u"开仓价差", self)
        label_buyPrice.setGeometry(QtCore.QRect(25, 225, 50, 22))
        self.lineEdit_label_buyPrice = QtGui.QLineEdit(self)
        self.lineEdit_label_buyPrice.setGeometry(
            QtCore.QRect(120, 225, 200, 22))

        label_stoptime = QtGui.QLabel(u"停止时间", self)
        label_stoptime.setGeometry(QtCore.QRect(25, 250, 50, 22))
        self.lineEdit_label_stoptime = QtGui.QLineEdit(self)
        self.lineEdit_label_stoptime.setGeometry(
            QtCore.QRect(120, 250, 200, 22))

        self.isFilter = QtGui.QCheckBox(u'当波动大于', self)
        self.isFilter.setGeometry(QtCore.QRect(25, 275, 150, 22))
        self.lineEdit_label_var = QtGui.QLineEdit(self)
        self.lineEdit_label_var.setGeometry(QtCore.QRect(120, 275, 20, 22))
        label_pct = QtGui.QLabel(u'% 时忽略', self)
        label_pct.setGeometry(QtCore.QRect(141, 275, 80, 22))
Example #5
0
    def initUi(self):
        """初始化界面"""
        self.setWindowTitle(u'缠论策略')


        # 金融图
        self.PriceW = PriceWidget(self.eventEngine, self.chanlunEngine, self)

        # 期货代码输入框
        self.codeEdit = QtGui.QLineEdit()
        self.codeEdit.setPlaceholderText(u'在此输入期货代码')
        self.codeEdit.setMaximumWidth(200)
        # 按钮
        penButton = QtGui.QPushButton(u'分笔')
        segmentButton = QtGui.QPushButton(u'分段')
        shopButton = QtGui.QPushButton(u'买卖点')
        restoreButton = QtGui.QPushButton(u'还原')

        penButton.clicked.connect(self.pen)
        segmentButton.clicked.connect(self.segment)
        shopButton.clicked.connect(self.shop)
        restoreButton.clicked.connect(self.restore)

        # Chanlun组件的日志监控
        self.chanlunLogMonitor = QtGui.QTextEdit()
        self.chanlunLogMonitor.setReadOnly(True)
        self.chanlunLogMonitor.setMaximumHeight(200)

        # 设置布局
        self.hbox2 = QtGui.QHBoxLayout()
        self.hbox2.addWidget(self.codeEdit)
        self.hbox2.addWidget(penButton)
        self.hbox2.addWidget(segmentButton)
        self.hbox2.addWidget(shopButton)
        self.hbox2.addWidget(restoreButton)
        self.hbox2.addStretch()


        tickButton = QtGui.QPushButton(u'Tick')
        oneMButton = QtGui.QPushButton(u"1分")
        fiveMButton = QtGui.QPushButton(u'5分')
        fifteenMButton = QtGui.QPushButton(u'15分')
        thirtyMButton = QtGui.QPushButton(u'30分')
        dayButton = QtGui.QPushButton(u'日')
        weekButton = QtGui.QPushButton(u'周')
        monthButton = QtGui.QPushButton(u'月')

        tickButton.clicked.connect(self.openTick)

        self.vbox1 = QtGui.QVBoxLayout()

        self.vbox2 = QtGui.QVBoxLayout()
        self.vbox1.addWidget(self.PriceW)
        self.vbox2.addWidget(tickButton)
        self.vbox2.addWidget(oneMButton)
        self.vbox2.addWidget(fiveMButton)
        self.vbox2.addWidget(fifteenMButton)
        self.vbox2.addWidget(thirtyMButton)
        self.vbox2.addWidget(dayButton)
        self.vbox2.addWidget(weekButton)
        self.vbox2.addWidget(monthButton)
        self.vbox2.addStretch()

        self.hbox3 = QtGui.QHBoxLayout()
        self.hbox3.addStretch()
        self.hbox3.addLayout(self.vbox1)
        self.hbox3.addLayout(self.vbox2)

        self.vbox = QtGui.QVBoxLayout()
        self.vbox.addLayout(self.hbox2)
        self.vbox.addLayout(self.hbox3)
        #vbox.addWidget(self.scrollArea)
        self.vbox.addWidget(self.chanlunLogMonitor)
        self.setLayout(self.vbox)

        self.codeEdit.returnPressed.connect(self.updateSymbol)