The PLUTUS Standard aims to ensure the Reproducibility
of the project up to Step 7: Paper Trading
of the 9-step Process. By Reproducibility
, we mean:
- The project should have source code to reproduce all the reported results.
- The user should be able to run the source code independently without directly communicating with the author.
- All the required materials to run the source code should be self-contained in the project's
README.md
file. The resource is often:- The instructions on how to get the required data.
- The instructions on how to run the source code.
- All the reported results should also be self-contained in the
README.md
file. Moreover, the reproduced results should match the reported ones in theREADME.md
file. There are often three to four sections needed to report the result:Step 4: In-sample Backtesting
Step 5: Optimization
Step 6: Out-sample Backtesting
Step 7: Paper Trading
(optional)
Hence, the project should:
- Be hosted on ALGOTRADE Plutus organization in Github.
- Have a
README.md
file that satisfies the requirements (next section). - And a Final Report or Paper (optional).
The requirements for the README.md
file are presented in the section below.
Each repository should have a README.md
file containing the project's overall information. The file is put in the project's root folder and refers to the repository plutus-project-template
for the template of each section.
The idea of README.md
is to provide the reader of the repository with how to RUN and REPLICATE the result(s) of this project. Hence, these sections are the focuses of this file:
Data
: can be brief, but understandable and clear how to get the data to replicate the resultsImplementation
: The most important section shows how to run and replicate the projectIn-sample Backtesting
toPaper Trading
: The second most important section shows how to develop the algorithms and the associated results.
The structure of the specific README.md
file can deviate from the template presented below, depending on the situation. Nevertheless, the file should give the reader clear instructions for replicating results and an accurate project overview.
Below is the template of the README.md
:
- Has an
Abstract
to summarize the project, the motivation, the methods, and the findings in less than five sentences. - Has an
Introduction
section to talk about the project briefly. The content of this section can be:- The motivation to do the project (answering the "Why?" question)
- An overview of the method conducted in this project (answering the "How?" question)
- The goal of the project (answering the "What?" question)
- This section in the
README.md
file should be brief. Only 1-2 paragraphs are sufficient. Details can be included in the final report/paper.
- Has a (optional)
Related Work
orBackground
section to briefly introduce the prerequisite reading if the audience needs knowledge before exploring the project. - Has at least sections to briefly discuss from
Step 1: Forming Trading Hypotheses
toStep 6: Out-of-sample Backtesting
(orStep 7: Paper Trading
) of the 9-Step process:- A section to discuss the
Trading (Algorithm) Hypotheses
(Step 1). - A section to discuss the
Data
(Step 2: Data Collection and Step 3: Data Processing) - A section to present the
Implementation
(orHow to Run
) of the trading algorithm - A section to discuss the
In-sample Backtesting
(Step 4) - A section to discuss the
Optimization
(Step 5) - A section to discuss the
Out-of-sample Backtesting
(Step 6) - A section to discuss
Paper Trading
(Step 7), if there is
- A section to discuss the
- The
Data
section should have two subsections:Data Collection
to discuss the Step 2Data Processing
to discuss the Step 3- Some questions need to be answered in this section:
- What is the data? What is the period of data, format, structure, and type?
- How to input the configuration?
- How to store the output data?
- The
Implementation
or (How to run
) should present:- How to set up the environment to run the source code and the required steps to replicate the results
- Discuss the concrete implementation if there are any essential details
- How to run each step from
In-sample Backtesting
, Step 4 toOut-of-sample Backtesting
, Step 6 (orPaper Trading
, Step 7). - How to change the algorithm configurations for different runs.
- In each section from the
In-sample Backtesting
to thePaper Trading
:- Specify the standard (or sample) set of parameters, input data, and the corresponding output.
- There should be a subsection
Result
to present and discuss the results.
- In this
README.md
, theResult
subsection of each step:- Should only briefly show the output results, such as tables and images. The link to the report for each step (4-7) should also be presented.
- The complete set of parameters, input data, and output of all the experiments examined in the project should be mentioned in a separate section but not in the README.md file. This information is preferred in the Final Report or Paper.
- Has a (optional)
Conclusion
section. - Has a
Reference
section to mention the references. - A link to the Final Report/Paper
- Show how to compile the document if it is written in a language like LaTex.
- Be reasonably easy to follow.
-
Apart from the
README.md
file, there can be a formal written report or paper further to discuss the methodology and results of the project. -
This document contains all the same sections as the
README.md
file but in more detail. Note that theRelated Work
(orBackrgound
) andConclusion
sections are NOT optional in the final report. -
If the final document was written in software such as LaTex, it should be included in the project's GitHub repository and the source to compile it.
-
The final document should contain adequate information to help the reader understand the project. It should contain documentation reproducing the result up to:
- Minimally, Step 6: Out-of-sample Backtesting
- Ideally, Step 7: Paper Trading
of the 9-Step process.
Several aspects are available to assess the projects. However, these aspects are not currently required to comply with the PLUTUS Standard. The non-exhausted list of aspects is presented here.
Data source and data information can be found here.
Three badge levels go with the Compliance Score:
is for a project's score ranging from 50% to 69%.
is for a project's score ranging from 70% to 99%.
is reserved for projects with a score of 100%, flagship projects to promote the PLUTUS Guidelines.
Furthermore, the
is given to projects that are selected to become PLUTUS Sample Project, featured in PLUTUS Standard Guideline
is given to projects in the
PROTO
algorithm series developed by ALGOTRADE.
Below is the list of sample projects which adhere to the PLUTUS Standard. Each project has link to the author/maintainer profile. Plutus compliance percentage show how much the project is currently aligned with the PLUTUS Standard.
There is also a repertoire of projects that adhere to the PLUTUS Standard, which comes from the educational program offered by ALGOTRADE, that can be explored here.
Listed are the projects from: