This backtesting engine is a personal project of mine, built in C# to explore and experiment with various trading strategies at scale.
- Multiple symbol ingest with time synchronisation
- xUnit testing
- Trade Environment
- Trade Excution
- Equity Monitoring
- Reporting (ElasticSearch)
dotnet test
{placeholder}
sh ./scripts/backtesting/run.sh
sh ./scripts/backtesting/web.sh
-
dotnet v6
- Charting & Web use, need to accept dotnet's certificates
dotnet dev-certs https --trust
- Charting & Web use, need to accept dotnet's certificates
-
ElasticSearch for reporting
-
CanvasJS used for charting
- JS libaries
canvasjs.min.js
to be placed within ./src/ui/src/libs/ folder
- JS libaries
-
Some financial tick data in CSV format, in the /src/tickdata folder (example provided)
# ./tickdata/{symbol}/2020.csv: UTC,AskPrice,BidPrice,AskVolume,BidVolume 2018-01-01T01:00:00.594+00:00,1.35104,1.35065,1.5,0.75
If you have changed target frameworks, make sure to update the program path in .vscode launch.json
accountEquity=0
maximumDrawndownPercentage=0