Projects

Structure

Introduction

Your account has a directory to organize the projects that you have access to in each of your organizations. If you switch the organization that you are connected as, your directory of projects is updated to reflect the projects that you have access to within the new organization.

Files

New projects contain code files (.py or .cs) and notebook files (.ipynb). Run backtests with code files and launch the Research Environment with notebook files. Code files can contain up to 64,000 characters and notebook files can be up to 128KB in size. To keep files small, files can import code from other code files. To aid navigation, you can rename, move, and delete files in the web IDE. Notebook files include the JSON elements to display the input cells, but not the output cells.

Directories

Your directory of projects can contain nested directories of projects to make navigation easier. Similarly, the code and notebook files in your projects can contain nested directories of files. For example, if you have multiple Alpha models in your strategy, you can create an alphas directory in your project to hold a file for each Alpha model. You can create directories of projects and directories of files.

Description

You can give a project a description to provide a high-level overview of the project and its functionality. Descriptions make it easier to return to old projects and understand what is going on at a high level without having to look at the code. The project description is also displayed at the top of backtest reports, which you can create after your backtest completes.

Libraries

Libraries are reusable code files that you can import into any project for use in backtesting, research, and live trading. Use libraries to increase your development speed and save yourself from copy-pasting between projects. You can create libraries and add them to your projects using the web IDE. Your libraries are saved under the Library directory in the Algorithm Lab.

Parameters

Algorithm parameters are hard-coded values for variables in your project that are set outside of the code files. Add parameters to your projects to remove hard-coded values from your code files and to perform parameter optimizations. To get the parameter value into your algorithm, use the GetParameter method. Alternatively, in C# projects, you can apply the Parameter attribute to define public class members with algorithm parameter values. The parameter values are sent to your algorithm when you deploy the algorithm, so it's not possible to change the parameter values while the algorithm runs.

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: