Skip to content

algotrade-course/plutus-guideline

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 

Repository files navigation

The PLUTUS Standard Guideline

0 Introduction

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 the README.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:

The requirements for the README.md file are presented in the section below.

1 The README.md Requirements

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 results
  • Implementation: The most important section shows how to run and replicate the project
  • In-sample Backtesting to Paper 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 or Background 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 to Step 6: Out-of-sample Backtesting (or Step 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 (or How 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
  • The Data section should have two subsections:
    • Data Collection to discuss the Step 2
    • Data 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 to Out-of-sample Backtesting, Step 6 (or Paper Trading, Step 7).
    • How to change the algorithm configurations for different runs.
  • In each section from the In-sample Backtesting to the Paper 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, the Result 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.

1.1 The Final Report/Paper (Optional)

  • 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 the Related Work (or Backrgound) and Conclusion 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.

1.2 Other aspects

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.

2 Data

Data source and data information can be found here.

3 Sample Projects

Three badge levels go with the Compliance Score:

  • Static Badge is for a project's score ranging from 50% to 69%.
  • Static Badge is for a project's score ranging from 70% to 99%.
  • Static Badge is reserved for projects with a score of 100%, flagship projects to promote the PLUTUS Guidelines.

Furthermore, the

  • Static Badge is given to projects that are selected to become PLUTUS Sample Project, featured in PLUTUS Standard Guideline
  • Static Badge 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.

ID Project Name Strategy Type Author/Maintainer Program PLUTUS Badge
1 PROTO:SmartBeta Smart-Beta Tạ Quang Khôi, Nguyễn An Dân ALGOTRADE PROTO Static BadgeStatic Badge
2 InstiFund Smart-Beta, ETF Front-Runner Strategy Đặng Minh Nhựt ALGOTRADE Internship 11.24 Static Badge
3 DynamicGrid Grid Võ Hoàng Phúc Khang, Nguyễn Thanh Thảo Ly, Nguyễn Tuấn Khanh CS408 - APCS, HCMUS - 2025 Static Badge
4 SearchingTA Momentum, Mean-Reversion Tống Thiên Phước ALGOTRADE Internship 6.24 Static Badge
5 FinTrip Smart-Beta Tạ Quang Khôi ALGOTRADE Internship 11.23 Static Badge
6 Statisical-Arbitrage Market-Neutral: Statistical Arbitrage Cao Quang Hiếu ALGOTRADE Internship 11.24 Static Badge
7 TruTrend Momentum Phạm Võ Quỳnh Như, Hồ Việt Bảo Long, Nguyễn Phúc Bảo Uyên CS408 - APCS, HCMUS - 2025 Static Badge
8 Intraday-Momentum Momentum Lâm Thành Duy ALGOTRADE Internship 11.24 Static Badge
9 DuoMA Momentum Nguyễn An Dân (Maintainer) CS408 - APCS, HCMUS - 2025 Static Badge
10 QuarterOscillate Mean-Reversion Đặng Đức Khiêm, Nguyễn Lộc An, Đặng Minh Triết CS408 - APCS, HCMUS - 2025 Static Badge
11 MomMean Mean-Reversion, Momentum Nguyễn Đức Hưng, Hoàng Thiên Đức, Hoàng Nghĩa Việt CS408 - APCS, HCMUS - 2025 Static Badge
12 SmartBeta Smart-Beta Lê Đức Phú ALGOTRADE Internship 11.24 Static Badge
13 scalping-strategy Scalping Trần Thị Phương Linh ALGOTRADE Internship 11.24 Static Badge
14 DeepMM Market-Making Lê Thanh Danh, Lương Thanh Anh Đức ALGOTRADE Internship 11.23 Static Badge
15

3.1 Other example projects

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:

About

Guideline to produce a standard PLUTUS project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published