I have just wrapped up the latest version of the Python System Back-tester (PSB).
I have added some more portfolio performance metrics and you will see these in the performance reports. The most useful addition is the concept of the .POR file when you run a system. Instead of having to select your data files each time you run a system, you can build a .POR file with a list of files/markets you want to batch run.
Here is an example of a Portfolio file:
TY.CSV
CU.CSV
SB.CSV
S2.CSV
QG.CSV
QM.CSV
C2.CSV
Just make sure you put the .POR file inside the same folder that contains your testing data. I have included a TestPortfolio.por file in version 2.0. I would treat the different versions as completely separate applications. Your existing .py algorithm files will need to be slightly modified to work with version 2.0.
This line of code needs to be modified from this:
systemMarket.setSysMarkInfo(sysName,myComName,listOfTrades,equity)
to this:
systemMarket.setSysMarkInfo(sysName,myComName,listOfTrades,equity,initCapital)
This line is near the bottom of the overall loop. I added the initCapital variable so you could do position sizing and the performance metrics would reflect this initial value.
And set initCapital to a pertinent value. I put it right below the sysName variable:
sysName = ‘BollingerBandSys’ #System Name here
initCapital = 100000 #starting account balance
Also I corrected a small bug in the main loop. You should change this:
for i in range(len(myDate) – numBarsToGoBack,len(myDate)):
to
for i in range(len(myDate) – (numBarsToGoBack-rampUp),len(myDate)):
In another post I will show how the portfolio performance metrics have changed. I hope you like the new version. I will be adding a library of trading systems utilizing this new version in a few days.
If you want to download Version 2.0 – just go the the following link
Discover more from George Pruitt
Subscribe to get the latest posts sent to your email.