sergshabal / rebalance

Backtest 1000's of simulations and rebalance your portfolio with the same algorithm.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rebalance

Contributors: Chris Wallwork, Carter Carlson

Project Goals

  • React front end
  • Display coin transactions and summaries in a clean, easy to understand format
  • Functional product to rebalance personal funds or simulate rebalance
  • Allow users to select which coins/dates they want to simulate

Current Project Status

So far, we're able to simulate purchasing 5 coins and rebalancing them over a specific period of time. More to come. Current front end


Introduction

This repository merges two similar repositories:

  • crypto-simulations
    • Simulates rebalancing a randomly selected basket of 5 coins 250 times and records the total value of the portfolio over the course of the simulation.
    • Compares overall hodl performance to rebalanced performance.
  • transaction-log
    • Rebalances a specific basket of coins and captures details of the transactions
    • Can be simulated or used for personal rebalancing

Repository Comparison

While the two repositories have similar purposes, they were made separately and have different code structures.

  • Code Structure

    • crypto-simulations:
      • Utilizes many separate lists
      • Zips the lists together
    • transaction-log:
      • Portfolio object
      • Methods for portfolio class are outside the class in functions
  • Pros

    • crypto-simulations
      • Optimizes simulation speed for a large number of backtests
      • Compares rebalancing periods and the performance of randomly selected coin portfolios
    • transaction-log:
      • Documents relevant data of every transaction over the simulation period for a specific portfolio
      • Can be used to rebalance a real portfolio on an exchange
  • Cons

    • crypto-simulations:
      • Only simulates rebalancing: can't be used for personal rebalancing
      • Unable to store data from transactions
      • Code is lightweight, making it hard to follow
    • transaction-log:
      • Cannot scale to multiple backtests
      • Portfolio methods should be inside the class, not outside functions

About

Backtest 1000's of simulations and rebalance your portfolio with the same algorithm.

License:MIT License


Languages

Language:Python 55.8%Language:JavaScript 36.5%Language:CSS 4.2%Language:HTML 3.5%