You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.5 KiB

8 years ago
'''
'''
from PyQt5.QtWidgets import QMainWindow, QTreeWidgetItem
from .ui_mainwindow import Ui_MainWindow
from solver.solver import Solver
from data.series import Series
from data.signal import PriceComparisonSignalGenerator, RsiSignalGenerator,\
AtrSignalGenerator
from PyQt5.Qt import Qt
class MainWindow(QMainWindow, Ui_MainWindow):
'''
'''
def __init__(self, parent=None):
'''
Constructor
'''
super().__init__(parent)
self.setupUi(self)
self.series = Series()
self.series.load_from_finam_csv('/home/asakul/tmp/daily/RTSI_20000101_20171231_daily.csv')
self.solver = Solver(self.series)
self.solver.add_generator(PriceComparisonSignalGenerator())
self.solver.add_generator(RsiSignalGenerator())
self.solver.add_generator(AtrSignalGenerator())
results = self.solver.solve()
for result in results:
item = QTreeWidgetItem(self.tw_strategies)
item.setText(0, result['display_name'])
item.setText(1, str(result['trades_number']))
item.setText(2, str(result['total_pnl']))
item.setText(3, "{:.2f}".format(result['profit_factor']))
item.setText(4, "{:.2f}".format(result['sharpe']))
item.setText(5, "{:.2f}%".format(result['avg_percentage']))
item.setData(0, Qt.UserRole + 1, result)
def strategyClicked(self, item, column):
result = item.getData(0, Qt.UserRole + 1)