|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
# Form implementation generated from reading ui file 'mainwindow.ui'
|
|
|
|
|
#
|
|
|
|
|
# Created by: PyQt5 UI code generator 5.5.1
|
|
|
|
|
#
|
|
|
|
|
# WARNING! All changes made in this file will be lost!
|
|
|
|
|
|
|
|
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
|
|
|
|
|
|
|
|
class Ui_MainWindow(object):
|
|
|
|
|
def setupUi(self, MainWindow):
|
|
|
|
|
MainWindow.setObjectName("MainWindow")
|
|
|
|
|
MainWindow.resize(1041, 600)
|
|
|
|
|
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
|
|
|
|
self.centralwidget.setObjectName("centralwidget")
|
|
|
|
|
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
|
|
|
|
self.gridLayout.setContentsMargins(2, 2, 2, 2)
|
|
|
|
|
self.gridLayout.setObjectName("gridLayout")
|
|
|
|
|
self.cb_minSharpe = QtWidgets.QCheckBox(self.centralwidget)
|
|
|
|
|
self.cb_minSharpe.setObjectName("cb_minSharpe")
|
|
|
|
|
self.gridLayout.addWidget(self.cb_minSharpe, 1, 6, 1, 1)
|
|
|
|
|
self.pb_progress = QtWidgets.QProgressBar(self.centralwidget)
|
|
|
|
|
self.pb_progress.setProperty("value", 0)
|
|
|
|
|
self.pb_progress.setObjectName("pb_progress")
|
|
|
|
|
self.gridLayout.addWidget(self.pb_progress, 5, 0, 1, 10)
|
|
|
|
|
self.sb_minWinRate = QtWidgets.QSpinBox(self.centralwidget)
|
|
|
|
|
self.sb_minWinRate.setMaximum(100)
|
|
|
|
|
self.sb_minWinRate.setProperty("value", 50)
|
|
|
|
|
self.sb_minWinRate.setObjectName("sb_minWinRate")
|
|
|
|
|
self.gridLayout.addWidget(self.sb_minWinRate, 1, 5, 1, 1)
|
|
|
|
|
self.e_filename = QtWidgets.QLineEdit(self.centralwidget)
|
|
|
|
|
self.e_filename.setObjectName("e_filename")
|
|
|
|
|
self.gridLayout.addWidget(self.e_filename, 0, 1, 1, 8)
|
|
|
|
|
self.label_2 = QtWidgets.QLabel(self.centralwidget)
|
|
|
|
|
self.label_2.setObjectName("label_2")
|
|
|
|
|
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
|
|
|
|
self.sb_minTrades = QtWidgets.QSpinBox(self.centralwidget)
|
|
|
|
|
self.sb_minTrades.setMinimum(1)
|
|
|
|
|
self.sb_minTrades.setMaximum(10000)
|
|
|
|
|
self.sb_minTrades.setProperty("value", 100)
|
|
|
|
|
self.sb_minTrades.setObjectName("sb_minTrades")
|
|
|
|
|
self.gridLayout.addWidget(self.sb_minTrades, 1, 3, 1, 1)
|
|
|
|
|
self.e_go = QtWidgets.QPushButton(self.centralwidget)
|
|
|
|
|
self.e_go.setObjectName("e_go")
|
|
|
|
|
self.gridLayout.addWidget(self.e_go, 1, 9, 1, 1)
|
|
|
|
|
self.sb_strategiesNum = QtWidgets.QSpinBox(self.centralwidget)
|
|
|
|
|
self.sb_strategiesNum.setMinimum(1)
|
|
|
|
|
self.sb_strategiesNum.setMaximum(10000)
|
|
|
|
|
self.sb_strategiesNum.setProperty("value", 1000)
|
|
|
|
|
self.sb_strategiesNum.setObjectName("sb_strategiesNum")
|
|
|
|
|
self.gridLayout.addWidget(self.sb_strategiesNum, 1, 1, 1, 1)
|
|
|
|
|
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
|
|
|
self.gridLayout.addItem(spacerItem, 1, 8, 1, 1)
|
|
|
|
|
self.tw_strategies = QtWidgets.QTreeWidget(self.centralwidget)
|
|
|
|
|
self.tw_strategies.setObjectName("tw_strategies")
|
|
|
|
|
self.gridLayout.addWidget(self.tw_strategies, 4, 0, 1, 10)
|
|
|
|
|
self.rb_long = QtWidgets.QRadioButton(self.centralwidget)
|
|
|
|
|
self.rb_long.setChecked(True)
|
|
|
|
|
self.rb_long.setObjectName("rb_long")
|
|
|
|
|
self.gridLayout.addWidget(self.rb_long, 2, 0, 1, 1)
|
|
|
|
|
self.label = QtWidgets.QLabel(self.centralwidget)
|
|
|
|
|
self.label.setObjectName("label")
|
|
|
|
|
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
|
|
|
|
|
self.b_browse = QtWidgets.QPushButton(self.centralwidget)
|
|
|
|
|
self.b_browse.setObjectName("b_browse")
|
|
|
|
|
self.gridLayout.addWidget(self.b_browse, 0, 9, 1, 1)
|
|
|
|
|
self.cb_minTradesFilter = QtWidgets.QCheckBox(self.centralwidget)
|
|
|
|
|
self.cb_minTradesFilter.setObjectName("cb_minTradesFilter")
|
|
|
|
|
self.gridLayout.addWidget(self.cb_minTradesFilter, 1, 2, 1, 1)
|
|
|
|
|
self.cb_minWinRate = QtWidgets.QCheckBox(self.centralwidget)
|
|
|
|
|
self.cb_minWinRate.setObjectName("cb_minWinRate")
|
|
|
|
|
self.gridLayout.addWidget(self.cb_minWinRate, 1, 4, 1, 1)
|
|
|
|
|
self.sb_minSharpe = QtWidgets.QDoubleSpinBox(self.centralwidget)
|
|
|
|
|
self.sb_minSharpe.setObjectName("sb_minSharpe")
|
|
|
|
|
self.gridLayout.addWidget(self.sb_minSharpe, 1, 7, 1, 1)
|
|
|
|
|
self.rb_short = QtWidgets.QRadioButton(self.centralwidget)
|
|
|
|
|
self.rb_short.setObjectName("rb_short")
|
|
|
|
|
self.gridLayout.addWidget(self.rb_short, 3, 0, 1, 1)
|
|
|
|
|
self.label_3 = QtWidgets.QLabel(self.centralwidget)
|
|
|
|
|
self.label_3.setObjectName("label_3")
|
|
|
|
|
self.gridLayout.addWidget(self.label_3, 2, 2, 1, 1)
|
|
|
|
|
self.sb_maxHoldBars = QtWidgets.QSpinBox(self.centralwidget)
|
|
|
|
|
self.sb_maxHoldBars.setMinimum(1)
|
|
|
|
|
self.sb_maxHoldBars.setObjectName("sb_maxHoldBars")
|
|
|
|
|
self.gridLayout.addWidget(self.sb_maxHoldBars, 2, 3, 1, 1)
|
|
|
|
|
MainWindow.setCentralWidget(self.centralwidget)
|
|
|
|
|
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
|
|
|
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 1041, 27))
|
|
|
|
|
self.menubar.setObjectName("menubar")
|
|
|
|
|
MainWindow.setMenuBar(self.menubar)
|
|
|
|
|
self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
|
|
|
|
self.statusbar.setObjectName("statusbar")
|
|
|
|
|
MainWindow.setStatusBar(self.statusbar)
|
|
|
|
|
|
|
|
|
|
self.retranslateUi(MainWindow)
|
|
|
|
|
self.tw_strategies.itemClicked['QTreeWidgetItem*','int'].connect(MainWindow.strategyClicked)
|
|
|
|
|
self.b_browse.clicked.connect(MainWindow.browse)
|
|
|
|
|
self.e_go.clicked.connect(MainWindow.go)
|
|
|
|
|
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
|
|
|
|
|
|
|
|
|
def retranslateUi(self, MainWindow):
|
|
|
|
|
_translate = QtCore.QCoreApplication.translate
|
|
|
|
|
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
|
|
|
|
self.cb_minSharpe.setText(_translate("MainWindow", "Min. sharpe"))
|
|
|
|
|
self.label_2.setText(_translate("MainWindow", "#Strategies to generate:"))
|
|
|
|
|
self.e_go.setText(_translate("MainWindow", "Go"))
|
|
|
|
|
self.tw_strategies.setSortingEnabled(True)
|
|
|
|
|
self.tw_strategies.headerItem().setText(0, _translate("MainWindow", "Strategy"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(1, _translate("MainWindow", "Trades #"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(2, _translate("MainWindow", "Total PnL"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(3, _translate("MainWindow", "PF"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(4, _translate("MainWindow", "Sharpe"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(5, _translate("MainWindow", "Avg. %"))
|
|
|
|
|
self.tw_strategies.headerItem().setText(6, _translate("MainWindow", "Win %"))
|
|
|
|
|
self.rb_long.setText(_translate("MainWindow", "Long"))
|
|
|
|
|
self.label.setText(_translate("MainWindow", "Data source:"))
|
|
|
|
|
self.b_browse.setText(_translate("MainWindow", "Browse"))
|
|
|
|
|
self.cb_minTradesFilter.setText(_translate("MainWindow", "Min. trades:"))
|
|
|
|
|
self.cb_minWinRate.setText(_translate("MainWindow", "Min. win rate"))
|
|
|
|
|
self.rb_short.setText(_translate("MainWindow", "Short"))
|
|
|
|
|
self.label_3.setText(_translate("MainWindow", "Max hold bars"))
|
|
|
|
|
|