17
17
#
18
18
###############################################################################
19
19
20
- from PyQt5 import QtWidgets
20
+ from PyQt6 import QtWidgets
21
+ from PyQt6 import QtGui
22
+ from PyQt6 import QtCore
21
23
22
- from PyQt5 import QtGui
23
- from PyQt5 import QtCore
24
24
from numpy import NaN
25
25
26
26
from pyqtgraph .dockarea import DockArea , Dock
27
27
28
- import sys , os
28
+ import os
29
29
30
- sys .path .append ('../finplot' )
31
- import finplot as fplt
32
30
import backtrader as bt
33
31
34
32
# Ui made with Qt Designer
40
38
# Import Chart lib
41
39
import finplotWindow
42
40
43
-
44
- import datetime
45
-
46
41
import qdarkstyle
47
-
48
- import pandas as pd
49
42
import functools
50
43
51
44
class UserInterface :
52
45
53
46
#########
54
47
#
55
48
#########
56
- def __init__ (self ,controller ):
49
+ def __init__ (self , controller ):
57
50
58
51
self .controller = controller
59
52
@@ -78,7 +71,7 @@ def __init__(self,controller):
78
71
self .win .setWindowTitle ("Skinok Backtrader UI v0.3" )
79
72
80
73
# Set width/height of QSplitter
81
- self .app .setStyleSheet (qdarkstyle .load_stylesheet_pyqt5 ())
74
+ self .app .setStyleSheet (qdarkstyle ._load_stylesheet ())
82
75
83
76
pass
84
77
@@ -196,25 +189,25 @@ def createUIs(self):
196
189
def createActions (self ):
197
190
198
191
# Data sources
199
- self .backtestDataActionGroup = QtWidgets .QActionGroup (self .win )
192
+ self .backtestDataActionGroup = QtGui .QActionGroup (self .win )
200
193
201
- self .openCSVAction = QtWidgets .QAction (QtGui .QIcon ("" ),"Open CSV File" , self .backtestDataActionGroup )
194
+ self .openCSVAction = QtGui .QAction (QtGui .QIcon ("" ),"Open CSV File" , self .backtestDataActionGroup )
202
195
self .openCSVAction .triggered .connect ( self .loadDataFileUI .show )
203
196
204
197
# AI
205
- self .aiActionGroup = QtWidgets .QActionGroup (self .win )
198
+ self .aiActionGroup = QtGui .QActionGroup (self .win )
206
199
207
- self .loadTFModelAction = QtWidgets .QAction (QtGui .QIcon ("" ),"Load Tensorflow Model" , self .aiActionGroup )
200
+ self .loadTFModelAction = QtGui .QAction (QtGui .QIcon ("" ),"Load Tensorflow Model" , self .aiActionGroup )
208
201
self .loadTFModelAction .triggered .connect ( self .loadTFModel )
209
202
210
203
#self.loadTorchModelAction = QtWidgets.QAction(QtGui.QIcon(""),"Load Torch Model", self.aiActionGroup)
211
204
#self.loadTorchModelAction.triggered.connect( self.loadTorchModel )
212
205
213
- self .loadStableBaselines3Action = QtWidgets .QAction (QtGui .QIcon ("" ),"Load Stable Baselines 3 Model" , self .aiActionGroup )
206
+ self .loadStableBaselines3Action = QtGui .QAction (QtGui .QIcon ("" ),"Load Stable Baselines 3 Model" , self .aiActionGroup )
214
207
self .loadStableBaselines3Action .triggered .connect ( self .loadStableBaselinesModel )
215
208
216
209
# Options
217
- self .optionsActionGroup = QtWidgets .QActionGroup (self .win )
210
+ self .optionsActionGroup = QtGui .QActionGroup (self .win )
218
211
219
212
pass
220
213
@@ -252,13 +245,13 @@ def createTradesUI(self):
252
245
self .tradeTableWidget .verticalHeader ().setVisible (False )
253
246
254
247
self .tradeTableWidget .horizontalHeader ().setStretchLastSection (True )
255
- self .tradeTableWidget .horizontalHeader ().setSectionResizeMode (QtWidgets .QHeaderView .Stretch )
248
+ self .tradeTableWidget .horizontalHeader ().setSectionResizeMode (QtWidgets .QHeaderView .ResizeMode . Stretch )
256
249
257
250
#self.tradeTableWidget.setStyleSheet("alternate-background-color: #AAAAAA;background-color: #CCCCCC;")
258
251
self .tradeTableWidget .setAlternatingRowColors (True )
259
252
self .tradeTableWidget .setSortingEnabled (True )
260
- self .tradeTableWidget .setSelectionBehavior (QtWidgets .QAbstractItemView .SelectRows )
261
- self .tradeTableWidget .setEditTriggers (QtWidgets .QAbstractItemView .NoEditTriggers )
253
+ self .tradeTableWidget .setSelectionBehavior (QtWidgets .QAbstractItemView .SelectionBehavior . SelectRows )
254
+ self .tradeTableWidget .setEditTriggers (QtWidgets .QAbstractItemView .EditTrigger . NoEditTriggers )
262
255
263
256
self .strategyResultsUI .ResultsTabWidget .widget (0 ).layout ().addWidget (self .tradeTableWidget )
264
257
@@ -546,7 +539,7 @@ def createControlPanel(self):
546
539
self .controlPanelLayout .addWidget (self .ResetPB )
547
540
548
541
# Spacer
549
- spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Minimum )
542
+ spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Policy . Minimum )
550
543
self .controlPanelLayout .addSpacerItem (spacer )
551
544
552
545
# SMA
@@ -566,7 +559,7 @@ def createControlPanel(self):
566
559
self .controlPanelLayout .addWidget (self .EmaPB )
567
560
568
561
# Spacer
569
- spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Minimum )
562
+ spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Policy . Minimum )
570
563
self .controlPanelLayout .addSpacerItem (spacer )
571
564
572
565
# RSI
@@ -602,7 +595,7 @@ def createControlPanel(self):
602
595
self .controlPanelLayout .addWidget (self .IchimokuPB )
603
596
604
597
# Spacer
605
- spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Minimum )
598
+ spacer = QtWidgets .QSpacerItem (50 ,20 ,QtWidgets .QSizePolicy .Policy . Minimum )
606
599
self .controlPanelLayout .addSpacerItem (spacer )
607
600
608
601
# Dark mode
@@ -621,7 +614,7 @@ def createControlPanel(self):
621
614
self .controlPanelLayout .addWidget (self .volumesCB )
622
615
623
616
# Spacer
624
- self .controlPanelLayout .insertSpacerItem (0 , QtWidgets .QSpacerItem ( 0 ,0 , hPolicy = QtWidgets .QSizePolicy .Expanding , vPolicy = QtWidgets .QSizePolicy .Preferred ) )
617
+ self .controlPanelLayout .insertSpacerItem (0 , QtWidgets .QSpacerItem ( 0 ,0 , hPolicy = QtWidgets .QSizePolicy .Policy . Expanding , vPolicy = QtWidgets .QSizePolicy . Policy .Preferred ) )
625
618
626
619
return self .controlPanel
627
620
0 commit comments