Skip to content

Commit 18b0659

Browse files
committed
Strategy parameters modifications
1 parent 2b12c7d commit 18b0659

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

Controller.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def __init__(self):
5454
self.startingcash = 10000.0
5555

5656
global wallet
57-
wallet = Wallet(self.startingcash)
57+
wallet = Wallet(self.startingcash )
5858
self.wallet = wallet
5959

6060

@@ -106,12 +106,14 @@ def addStrategy(self, strategyName):
106106
self.cerebro.clearStrategies()
107107

108108
mod = __import__(strategyName, fromlist=[strategyName]) # first strategyName is the file name, and second (fromlist) is the class name
109-
klass = getattr(mod, strategyName) # class name in the file
109+
self.strategyClass = getattr(mod, strategyName) # class name in the file
110110

111111
# Add strategy parameters
112-
self.interface.fillStrategyParameters(klass.params._getitems())
112+
self.interface.fillStrategyParameters(self.strategyClass.params)
113+
114+
# Add strategy to the cerebro
115+
self.cerebro.addstrategy(self.strategyClass)
113116

114-
self.cerebro.addstrategy(klass)
115117
pass
116118

117119

userInterface.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import qdarkstyle
4141

4242
import pandas as pd
43+
import functools
4344

4445
class UserInterface:
4546

@@ -543,21 +544,38 @@ def createTransactionsUI(self, trades):
543544

544545
pass
545546

546-
def fillStrategyParameters(self, items):
547+
def fillStrategyParameters(self, parameters):
547548

548549
# Rest widget rows
549550
for indexRow in range(self.strategyTesterUI.parametersLayout.rowCount()):
550551
self.strategyTesterUI.parametersLayout.removeRow(0)
551552

552553
# Insert parameters
553554
row = 0
554-
for parameterName, parameterValue in items:
555+
for parameterName, parameterValue in parameters._getitems():
555556
label = QtWidgets.QLabel(parameterName)
556557
lineEdit = QtWidgets.QLineEdit(str(parameterValue))
558+
lineEdit.textChanged.connect(functools.partial(self.parameterChanged, lineEdit, parameters, parameterName, parameterValue))
559+
557560
self.strategyTesterUI.parametersLayout.addRow(label, lineEdit )
558561
row = row + 1
559562
pass
560563

561564
pass
562565

566+
567+
def parameterChanged(self, lineEdit, parameters, parameterName, parameterOldValue):
568+
569+
# todo something
570+
if len(lineEdit.text()) > 0:
571+
572+
try:
573+
setattr(parameters,parameterName,float(lineEdit.text()))
574+
except ValueError:
575+
try:
576+
setattr(parameters,parameterName,int(lineEdit.text()))
577+
except ValueError:
578+
setattr(parameters,parameterName,lineEdit.text())
579+
580+
pass
563581

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy