Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Overview

Superalgos Beta 9 - Getting Started Guide

All procedures are the same for Windows, Linux, or Mac OS. Raspberry Pi terminal commands have been included for ease of use.

IMPORTANT: Minimalist hardware —both virtual and physical— is better suited for production deployments, where the use of the GUI is minimal. We highly recommend learning Superalgos in a local installation. Mastering the system takes time, and the use of the GIU to go through in-app tutorials is crucial during the learning process. Your experience will be orders of magnitude better if you follow this advice: leave minimalist hardware for when you are ready to start trading live.

superalgos-readme

Pre-Requisites

1. Node JS

If you don't have it yet, download and install Node.js.

Node JS is an open-source server environment required to run Superalgos.

a. Go to the Node JS download page.

b. Download your system’s installer. Select LTS Recommended for Most Users and click the big Windows or macOS Installer button. If you are on Linux, the installer is listed further down the page.

c. Run the installer with the default configuration — just click Next until Node.JS is fully installed.

NOTE FOR RASPBERRY PI USERS: You may install Node.JS just like you would on any other machine as per the above instructions. As an alternative, you may also try the following from the SSH Terminal. NOTE: It is best to use the most current and updated version of the FULL PiOS image.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

followed by

sudo apt-get install -y nodejs

It is recommended to install the Node Package Manager

sudo apt install npm

you may also type the following to verify the Node.js installation and version.

node -v

2. Git

Download and install Git.

Git is an open-source distributed version control system required to download and stay up to date with Superalgos.

a. Go to the Git download page.

b. Download the version for your Operating System.

c. Run the installer with the default configuration — just click Next until Git is fully installed.

IMPORTANT: The latest version of Git is required to handle the authentication with GitHub.com.

NOTE FOR MAC USERS: Depending on your setup, installing Git may be optional. The native XCode Command Line Developer Tools seems to work well. If you do install Git, we have tested Tim Harper's binary installer successfully.

NOTE FOR RASPBERRY PI USERS: Just like with Node.JS, you may follow the above instructions to install Git, or us the SSH Terminal command. The most recent version of PiOS has Git already installed, so this may give you an error. The error will not affect your installation.

sudo apt-get install git

3. Google Chrome or Safari

Use Chrome, or Safari on Mac. These are the only tested browsers.

a. Go to the Chrome download page.

b. Run the installer.

Before you begin, it is recommended that you set up Chrome/Safari as your default browser.

IMPORTANT: Use Chrome/Safari so that you have a similar environment as the dev team in case you need help. We are not testing on any other browsers, and it is a well-known fact that browsers behave differently.

Superalgos Client Installation

1. Fork the Superalgos Repository

A. Scroll the page all the way to the top. Find and click the Fork button to create your fork/copy of this repository. To fork Superalgos you need a Github account. If you don't have one, go ahead and create it.

NOTE: A Fork is required for your contributions to the project. The reason why Superalgos is free and open-source is that the project has set up a Collective Business in which all users may participate. The way to participate is to contribute to make Superalgos better. The project's token is distributed among contributors.

2. Clone Your Fork

A. Once the fork is created, you will land on the page of your fork. Copy the URL from your browser's address bar.

B. In your computer/laptop/server, open a command prompt or terminal. Make sure you are in a directory where you have write permissions (on most systems the terminal will open in your user’s home directory, so you’re good). Clone the git repository using the command:

git clone 

For example, if your Github username is John, the command will look like this:

git clone https://github.com/John/Superalgos

This creates the Superalgos folder in the current directory, which contains the whole installation.

The Usage section below explains how to run the app.

3. Installation Notes

A. You need to make a fork so that you may contribute work. Superalgos is a Community project and you are expected to contribute, like everyone else. You don't need to be a technical person to contribute. Fixing a typo in the docs or translating a paragraph into your native language are valuable contributions too. Superalgos has built-in features that make contributing easy. Help make Superalgos better and Superalgos will better serve you! Free-riding is not cool, particularly on free, open-source, Community-driven projects.

B. The software includes an in-app self-update command / feature. It will help you stay up-to-date with the latest version of the software. Updates are on-demand, so don't worry about undesired updates. The project moves very fast and new features become available regularly, particularly if you choose to run the software in the develop branch (you may switch branches from within the app).

C. Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or VPS for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app, and the GUI performs best in a local installation.

4. Migrating from Superalgos Beta 8

Refactorings

In order to migrate your own workspaces to Beta 9, you will need to open My Workspaces folder with an IDE like VS Code and do some refactorings. This is what you need to find and replace:

Find Replace With
Current Trading Current
current tradingCurrent
Last Trading Last
last tradingLast
Episode Trading Episode
episode tradingEpisode
Episode Counters Trading Episode Counters
episodeCounters tradingEpisodeCounters
Episode Statistics Trading Episode Statistics
episodeStatistics tradingEpisodeStatistics
Distance To Event Distance To Trading Event
distanceToEvent distanceToTradingEvent

Renaming of Exchange Folders

In Beta 9, the exchange id is used at the code and folder names instead of the exchange name. To migrate to Beta 9 users running on case sensitive Operating Systems (like Linux) must rename their Data-Storage Exchange folders using the Id of the exchange (in the case of Binance, it's the same name, but with lower-case b: binance). If you are using a different exchange, look at its node configuration and use the value at the property codeName to name the folder.

Usage

1. Run the Client and GUI

A. To run Superalgos, go to the Superalgos directory/folder and run this command:

node run

The Client will run on your terminal and the GUI will launch on your default browser. If Chrome/Safari is not your default browser, copy the URL, close the browser, open Chrome/Safari, and paste the URL. Be patient... it takes a few seconds to fully load the GUI.

A Welcome Tutorial pops-up automatically. You must do this Tutorial to finish the setup and to learn the basics. It's the ultimate onboarding experience, superior to all other resources available, including videos and the Docs.

run-the-system-01

If you are running a headless Raspberry Pi (one without a screen) you may need to change directories first and run Superalgos with the minMemo and noBrowser options.

cd Superalgos

then

node run minMemo noBrowser

2. Usage Notes

We are testing the UI on Google Chrome and Safari on macOS only. It may work on other browsers as well — or not. If you are running on a different browser and ever need support, make sure you mention that fact upfront, or even better, try on Chrome/Safari first.

TIP: If your computer has 8 GB of RAM or less, use node run minMemo to run the system with minimal RAM requirements.

Running Superalgos on a Headless Linux Server as a Daemon

If you’re running Superalgos on a headless linux server like a Raspberry Pi, you might want to run it as a daemon so it isn’t attached to your current login session. The easiest, most standard way to go about this is probably using systemd. Most linux distributions use it as default init system/service manager.

Using systemd

Create a superalgos.service file looking like this (change to your user name and /path/to/Superalgos to your Superalgos folder, for instance /home/John/Superalgos):

[Unit]
Description=Superalgos client

[Service]
Type=simple
User=
WorkingDirectory=/path/to/Superalgos
ExecStart=/usr/bin/node run minMemo noBrowser

[Install]
WantedBy=multi-user.target

There is no need to run Superalgos as root so we’re running it as a user. The minMemo option assumes you’re running on a small machine like a Raspberry Pi, while noBrowser makes sense for running daemonized.

Now, as root (or using sudo), put the file superalgos.service you just created in /etc/systemd/system/ and issue the command

systemctl enable superalgos

This will install the service so that Superalgos is started on boot. To start it manually, do (again as root or with sudo)

systemctl start superalgos

To see the output of Superalgos, use

journalctl -u superalgos

or to follow the output,

journalctl -u superalgos -f

Uninstall

Superalgos writes nothing outside of the Superalgos folder. To completely uninstall the software, just delete the folder.

Welcome Tutorial

Once the app finishes loading, an interactive tutorial takes you by the hand and walks you all around the system while you learn the basic skills required to use the interface, mine data, backtest strategies, and even run a live trading session. It is highly recommended you follow the tutorial until the end, as it is carefully crafted to make your onboarding as easy as possible. Tutorials are the absolute best way to tackle the learning curve. You should do all tutorials before you start exploring other avenues on your own.

welcome-tutorial-00

NOTE: The tutorial uses Binance or Binance US as the exchange of choice. If you don’t have an account with Binance or Binance US, you will still be able to follow 100% of the tutorial. When you get to the live trading section, keep going even if you don't intend to run the session. You may learn how to work with other exchanges later on.

Docker Deployments

Docker container images can be found at https://github.com/users/Superalgos/packages/container/package/superalgos

If you wish to run Superalgos over docker platform, follow these steps.

1. Install Docker

Follow the link to install docker.

2. Run

You will need to create local storage directories beforehand, by example with mkdir Data-Storage Log-Files My-Workspaces

docker run \
  -d \
  --rm \
  --name superalgos \
  -p 18041:18041 \
  -p 34248:34248 \
  -v $(pwd)/Data-Storage:/app/Data-Storage \
  -v $(pwd)/Log-Files:/app/Log-Files \
  -v $(pwd)/My-Workspaces:/app/My-Workspaces \
  ghcr.io/superalgos/superalgos:latest

Now you can access to the Superalgos UI at http://127.0.0.1:34248

To see console logs you can use docker logs superalgos -f

When you're done just exec docker kill superalgos

Note: This has not been extensively tested yet. If you run into troubles, please contact us at the Superalgos Support Group.

What is Superalgos?

Superalgos is a platform to automate crypto-trading. It is implemented as a Node JS Client + Web App that runs on your hardware and scales from a single Raspberry Pi to a Trading Farm. Superalgos is Free and Open-Source.

Superalgos Features

  • A Visual Scripting Designer.
  • Integrated Charting System.
  • A Visual Strategy Debugger.
  • Coordinated Task Management across a Trading Farm.
  • Community-built strategies to learn and start from.
  • In-App Tutorials.
  • Complete In-App Documentation.

Superalgos Allows You To...

  • Visually design your trading strategies.
  • Visually debug your trading strategies.
  • Visually design your indicators.
  • Visually design your plotters to visualize indicators or mined data.
  • Visually design your data-mining operations.
  • Download historical market data from crypto exchanges.
  • Backtest your strategies against historical data.
  • Run live trading sessions.
  • Run arbitrary data-mining operations of any size.
  • Feed your trading strategies with the data mined.

Superalgos Development Pipeline

  • Ethereum Integration: will allow you to data mine your own Ethereum node and use the mined data in your strategies.

  • Machine Learning: will allow you to run a Reinforcement Learning Algorithm and feed it with mined data for it to learn how to make decisions relevant to your strategies.

Superalgos is User-centric

  • No ads, anywhere.
  • No sign up / logins.
  • No user/usage data collection of any kind.
  • Runs 100% on uncompiled code anyone can read and audit.

Superalgos for Developers

  • You are free to customize Superalgos for your customers. No royalties, no license fees.
  • Everything extra your customers may need may be coded by yourself or requested as new features.
  • You may use Superalgos as a platform or as a component of a larger system.
  • No proprietary code/libraries. All open-source and free.
  • Superalgos features a library of community-contributed plugins (workspaces, strategies, indicators, plotters, tutorials, etc.).

Superalgos Saves You Time

  • No need to code the download of historical data from crypto exchanges.
  • No need to code the streaming of market data from crypto exchanges.
  • No need to hardcode strategies. Use the visual designer for a more flexible approach.
  • No need to debug what went wrong, line by line, or dive into log files with tons of data. You can see each variable of the state of the Trading Engine at every candle by hovering the mouse over the charts.
  • No need to integrate a charting library, Superalgos features an integrated Charting System.
  • No need to manage task data or execution dependencies. Superalgos allows you to define Tasks and distribute them across a Trading Farm and takes care of the data and execution dependencies so that each task automatically starts when their dependencies are ready.

Superalgos is Permisionless

  • Don't like the UI?
  • Don't like the icons used?
  • Don't like the Charting System?
  • Don't like the Visual Designer?
  • Don't like the Visual Debugger?
  • Don't like the Docs?
  • Don't like the Trading Bot?
  • Don't like the Indicators?
  • Don't like the Plotters?
  • Don't like any other part of the system?

No problem, code or integrate libraries with your own version of any component and we promise we will merge your work and provide it as an alternative to users. We believe in Permissionless Innovation and that users, not team members, are the final judges and the ones who decide what they prefer to use. You are free to create an alternative for any part of the system that you believe that should work or should have been done in a different way. We will help you integrate your vision into the next release and enable a way for users to choose between different implementations of the same functionality. You will also be granted the title of maintainer of the functionality you provide and have decision power on how it evolves in the future.

Superalgos for Individuals

  • Superalgos is easy to install/uninstall.
  • Superalgos is easy to run.
  • Superalgos is easy to use.
  • Superalgos is easy to learn.
  • Superalgos is easy to debug.
  • Superalgos is well documented.
  • You have free online support via Telegram and Discord.

Superalgos Saves You Money

  • There are no paid plans or anything that costs you money.
  • There is no locked functionality. You may use the full capacity of the software.
  • There is no limit to the number of backtests you may run.
  • There is no limit to the number of live sessions you may run.
  • There is no limit to the number of historical data you may download.
  • There is no limit to the volume of data you may process.
  • You may use all the plugins available (indicators, plotters, strategies, etc.)
  • You may install Superalgos in as many machines as you wish.
  • Your installations may be used by as many people as required.
  • You may connect to as many crypto exchanges as you wish.

Superalgos Minimizes Risks

  • No one can know what strategies you design/run.
  • No one can front-run you.
  • No one can steal your trading ideas.
  • No one knows how much capital you trade.
  • No one can see your exchange keys.

Superalgos for Companies

  • No need to buy expensive software for monitoring crypto markets or trading execution.
  • All your employees can use Superalgos for free.
  • You can use Superalgos to its full capacity or just the features you are currently interested in.
  • Superalgos may be integrated into your existing operation, feeding to and from other systems.

Support

We just opened a brand new Discord server for Support and the Community.

We also meet on several Telegram groups, where it all started!

BEWARE OF IMPERSONATORS — SCAMMERS ARE LURKING! Superalgos Admins, the Core Team, and Community Mods will never contact you directly unless you contact them first. We will never ask you for API keys, coins, or cash. In fact, we will never ask you to trust us in any way. Our Community Safetey Policy explains why. In short, we want to make it clear that if someone contacts you directly claiming to work with or for the project, it is a scam. Please report scammers in the Community group so that they may be banned, and to increase awareness of the problem, but also block them and report them to Telegram if the option is available.

Via Telegram

Online support through our Superalgos User's Support Group.

In-App Integrated Documentation

Superalgos features interactive documentation built-in the system.

Video Tutorials

Subscribe to the Superalgos YouTube Channel.

In-App Tutorials

There are many interactive tutorials you may do and learn from.

Other Resources

Web Site

For an overview of what Superalgos can do for you, check the Superalgos Website.

Telegram

For official news, join the Superalgos Announcements Channel.

Meet other users in the Superalgos Telegram Community Group.

Meet developers in the Superalgos Telegram Developer's Group.

Users meet in other topic-specific Telegram Groups. There's a complete list of groups on the website.

Blog

Find official announcements and various articles on the Superalgos Blog.

Twitter

To stay in the loop, follow Superalgos on Twitter.

Facebook

Or follow Superalgos on Facebook.

Contributing

Superalgos is a Community Project built by users for users. Learn how you may contribute.

Top Contributors

Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Ira Miller, matbenitez, bearcanrun, nikolabjelo, 9808us, pmmax, suttridge, Basalt09, Mhnramin, 0xperez, infin1t3, benitezme, whtv, cozed-gh, Eduardo678-dotcom, Smidy13, teehanming, 64bittuning, joenij, apronotti, Noeljarillo, ssplatt, rico4dev, DougJCook, mane, Cordo-van-Saviour, CarnivalBen, Sil3ntLight, pisukesoramame, Edodi, harrellbm, CaptainJeff, Jeff Braun, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.

License

Superalgos is open-source software released under Apache License 2.0.

Comments
  • Docker container crashes on UI startup

    Docker container crashes on UI startup

    I'm trying to testdrive the system using the docker instructions provided in the README but as soon as I reach the Setting up docs search engine message, container crashes with the following message:

    [ERROR] Error reading current branch.
    Error: Error: spawn git ENOENT
        at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
        at onErrorNT (node:internal/child_process:480:16)
        at processTicksAndRejections (node:internal/process/task_queues:83:21)
        at GitExecutorChain.onFatalException (/app/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:61:87)
        at GitExecutorChain.<anonymous> (/app/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:52:28)
        at Generator.throw (<anonymous>)
        at rejected (/app/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:6:65)
    [ERROR] Client -> client-> unhandledRejection -> reason = {}
    [ERROR] Client -> client-> unhandledRejection -> p = {}
    

    The UI does load pass the docs search engine message, but images are broken because docker container is down. If I restart it, some images work but most not. I'm getting these errors:

    [ERROR] httpInterface -> respondWithImage -> onFileRead -> File Not Found: ./Projects/Foundations/Icons/en.png or Error = Error: ENOENT: no such file or directory, open './Projects/Foundations/Icons/en.png'
    [ERROR] httpInterface -> respondWithImage -> onFileRead -> File Not Found: ./Projects/Foundations/Icons/bullet/bullet-warning.png or Error = Error: ENOENT: no such file or directory, open './Projects/Foundations/Icons/bullet/bullet-warning.png'
    

    docker 18.09.7 on Ubuntu 18.04, but that shouldn't matter because this is docker after all.

    opened by jb33k 20
  • Unable to start Superalgos 1.2.x

    Unable to start Superalgos 1.2.x

    Windows 11 Running normal and admin. Both setup and portable versions. I am unable to get past the welcome screen of any of the 1.2.x versions of Superalgos. (It says "The UI is loading...") I am able to access the menus, and can call up the Console Logs, which report (at the end) "Superalgos Platform App is Running!" I can open it in my browser (same splash screen).

    Version 1.1.x seems to be running fine however.

    opened by wonder6oy 14
  • Improve the UI responsive when switching workspace

    Improve the UI responsive when switching workspace

    Context

    I have problem when switching workspaces in Superalgos. The context is that on the develop branch, after finishing the tutorial series on “Trading System Design Tutorials” workspace, I have switched to “Weak-hands Buster V2 plug-in” workspace. The Chrome UI is not responsive

    Operating System: Frontend runs on MacOs, Backend runs on Ubuntu.

    Software version: Develop branch, commit a3c07edc9

    Workspace version: “Trading System Design Tutorials” and “Weak-hands Buster V2”

    Reproducible: the issue may be reproduced.

    Explain your issue

    1. Explain what the problem seems to be.

    I guess that after running through the tutorial series, the “Trading System Design Tutorials” workspace has been filled with a lot of data. It may thus take more time to switch workspaces. It would be useful if Superalgos can inform this information on the UI (e.g., using some kinds of progressive UI/UX) so that the user knows that the switch workspace process is running in the backend.

    2. Clearly explain what you wish to accomplish.

    I can switch workspaces successfully.

    3. Explain, step by step, what you've done to achieve the goal. The Team will follow these steps to reproduce the issue, so be precise.

    1. Finish the tutorials in the “Trading System Design Tutorials” workspace.
    2. Switch to "Weak-hands Buster V2" workspace.

    4. Explain what is the result you expect from your actions.

    The workspace is successfully switched and the tutorial is displayed.

    5. Explain what happens instead of the expected results.

    Chrome is not responsive. switch_failed

    Restart Superalgos, the workspace seems have been broken. Screen Shot 2020-12-27 at 1 30 18 PM

    However, on a Superalgos fresh installation, I can switch to "Weak-hands Buster V2" in the first launch. fresh_workspace

    opened by anvd 14
  • set brokerid for okex

    set brokerid for okex

    use a static broker id for okex, overriding the default value provided by the CCXT library. This value can also be overriden in the workspace by adding a "brokerId" field to the API Key json.

    opened by ssplatt 13
  • Coinbase Pro getOHLCVs erroring with

    Coinbase Pro getOHLCVs erroring with "granularity too small for the requested time range"

    Operating System: Linux

    Software version: today's master branch

    Workspace version: default Workspace.json (Getting Started Guide)

    Reproducible: the issue may be reproduced.

    Explain your issue

    1. Explain what the problem seems to be.

    attempting to collect data from Coinbase Pro results in errors

    2. Clearly explain what you wish to accomplish.

    collect data from Coinbase Pro

    3. Explain, step by step, what you've done to achieve the goal. The Team will follow these steps to reproduce the issue, so be precise.

    Create Coinbase Pro data tasks, click start all data tasks.

    4. Explain what is the result you expect from your actions.

    data collected, candles created

    5. Explain what happens instead of the expected results.

    *********** ['2021-01-19T16:07:47.648Z',66,'Historic OHLCVs','[ERROR] start -> getOHLCVs -> Retrying Later -> err = ExchangeError: coinbasepro granularity too small for the requested time range. Count of aggregations requested exceeds 300
        at coinbasepro.handleErrors (/src/Superalgos/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbasepro.js:1071:23)
        at response.text.then (/src/Superalgos/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/Exchange.js:600:18)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:188:7)'] @ Masters-[object Object]-Historic-OHLCVs
    

    ref: https://docs.pro.coinbase.com/#get-historic-rates

    The granularity field must be one of the following values: {60, 300, 900, 3600, 21600, 86400}.

    opened by ssplatt 13
  • Could not Push from UI:

    Could not Push from UI: "fatal: could not read Username for 'https://github.com': No such device or address"

    Context

    Operating System: Linux (Raspberry Pi OS, latest updates) on Raspberry Pi 4

    Software version: today's develop branch

    Workspace version: default Workspace.json (Getting Started Guide)

    Reproducible: the issue may be reproduced.

    Explain your issue

    1. Explain what the problem seems to be.

    I followed the docs in order to make a pull request through the UI but could not due to an error.

    2. Clearly explain what you wish to accomplish.

    Allow a successful push and pull request to be made through the UI.

    3. Explain, step by step, what you've done to achieve the goal. The Team will follow these steps to reproduce the issue, so be precise.

    1. Install latest Raspberry Pi OS (though latest Debian/Ubuntu may do)
    2. Ensure up to date "sudo apt update && sudo apt upgrade"
    3. Install Superalgos dependencies, namely Node.JS 14.
    4. Fork Superalgos.
    5. Clone with "git clone https://github.com/kizniche/Superalgos"
    6. Run with "minMemo noBrowser"
    7. Create GitHub API key with repo access.
    8. Add user name and API key to GitHub API config in UI.
    9. Set both the Current Branch and Contributions Branch to the ~~develop~~ plugins-docs branch.
    10. Updated with "app.update"
    11. Restart both the backend and the UI.
    12. Make edit to docs.
    13. Run "docs.save"
    14. Run "app.contribute Grammatical and instructional fixes"
    15. See error.

    4. Explain what is the result you expect from your actions.

    Successful push to my fork and a pull request appear on the main Superalgos repo.

    5. Explain what happens instead of the expected results.

    Failed push and errors returned.

    6. Explain what errors you have found on-screen, on the browser console application, or in the Log-Files folder.

    Upon running "app.contribute Grammatical and instructional fixes" I received the error:

    Error Stack

     Error: Pushing to https://github.com/kizniche/Superalgos
    fatal: could not read Username for 'https://github.com': No such device or address
    
        at GitExecutorChain.onFatalException (/home/pi/Superalgos/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:61:87)
        at GitExecutorChain. (/home/pi/Superalgos/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:52:28)
        at Generator.throw ()
        at rejected (/home/pi/Superalgos/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js:6:65)
        at runMicrotasks ()
        at processTicksAndRejections (internal/process/task_queues.js:93:5)
    

    Error Code

    Property errorCode not found at the placeholder object. 
    

    Error Details

     {
        "task": {
            "commands": [
                "push",
                "origin",
                "develop",
                "--verbose",
                "--porcelain"
            ],
            "format": "utf-8"
        }
    }
    

    Additionally, when I clicked Next on the error page, it shows several more errors (screenshot below). Again, my github user name and API key were properly entered and successfully saved.

    Attach relevant log files and error screenshots

    screenshot-192 168 0 27_34248-2021 05 08-02_15_52

    Solution

    How I solved this was by editing Superalgos/.git/config and changing:

    [remote "origin"]
            url = https://github.com/kizniche/Superalgos
    

    to

    [remote "origin"]
            url = https://{MY_API_KEY}@github.com/kizniche/Superalgos.git
    

    Where {MY_API_KEY} was my API key.

    You can see PR #888 has two commits that were successfully pushed from the UI commands. The first commit was when I found the initial issue and the second was after searching for another issue in order to test if the issue presented itself if I reverted my config file change (it did).

    bug Web App UI stale 
    opened by kizniche 12
  • cannot update

    cannot update

    windows10, git, github, githubDesktop, node.js...

    So i followed the instructions - forked SA, cloned SA... Spent days getting to grips with all the above to get SA working... Spent days going through tutorials - loving what i saw - until it was time to actually start... found a video about using SA (ridiculously bad, by a person who clearly has never made instructions before) and they use a new version of SA... so updates:-------------------------------- node.js ---just install newer release ontop (this also updates python3 and VScode Tools) git ---open cmd>git update-git-for-windows gitdesktop, VScode, chrome ---done through software (eg: help->about->update)

    But update Superalgos ??? How ??? sorry, i just cant find the answer. everyone talks about pulling, pushing, merging local code with my online repository ?!?!?! Can someone please tell me how i can get the latest version of SA without losing my stuff ???

    opened by BigJonMMXX 11
  • Plugins (especially User Profiles) should not be stored in this repo (use submodule)

    Plugins (especially User Profiles) should not be stored in this repo (use submodule)

    Explain your issue

    1. Explain what the problem seems to be.

    This repository is growing, and in some areas is already creating bottlenecks. I think the most obvious case, as a frequent governance workspace user, is the user profiles and corresponding github profiles. Furthermore, as an observer of this repository, I see that a large percentage of the PRs are actually user registrations, or updates. This presents a noise and performance issue, particularly as an order of magnitude more users register.

    2. Clearly explain what you wish to accomplish.

    The simplest way to resolve this issue is to move the user profiles (and perhaps generically all plugins) into a git submodule, or other tracked, hashed, sub-folder. This would create a distinct storage area, and message / PR channel for each plugin space. Since these belong to users, not to developers, it makes sense to segregate the data and messages.

    improvement 
    opened by isysd-mirror 9
  • Can't start

    Can't start "Back WHB" Backtesting Session on remote Ubuntu 18.04 laptop

    I ran the Superalgos backend (develop branch) on a spare laptop running Ubuntu 18.04. Then I have successfully accessed the http://localhost:34247/ address from another laptop.

    I started the the "Backtesting WHB" task, then when starting the "Back WHB" Backtesting session, I received the message "Session cannot be run" session_cannot_run

    I have 6 sensors bot running pulling data from Binance exchange: 5 in Masters BTC/USDT task manager and 1 in Sparta BTC/USDT task manager. The image shows the status of bots in Masters BTC/USDT sensor_bots_status

    Checking the Chrome console, Superalgos tries to access file at “http://localhost:34247/Storage/Binance/BTC-USDT/TradingEngines/ ….” folder on the backend side Chrome_Console

    Checking the folder structure of Superalgos source code on the spare laptop, it seems "./Storage/Binance/BTC-USDT/TradingEngines/" folder doesn't exist? Superalgos_folder_structure

    Please help to check this. Thank you.

    question 
    opened by anvd 9
  • Minor Tips

    Minor Tips

    A couple of minor points i'd like to contribute...

    The interactive tutorials are great, thorough, detailed, pretty... but too much ! I've been through hours of them, but eventually just started clicking next, next, next.... And at the end of it all, i still dont know how to actually get the software up and running for a backtest situation of my specifications... MAybe its there and i missed it... you see my point.

    Fonts !!! I can only assume the designer of the tutorials has the biggest monitor in the world - i spend every page zooming in and out. i just have a typical windows desktop setup, and some linux laptops - and on all its not optimal. When i got it all running on linux laptop, i thought i messed up as i couldnt see the Next, Skip buttons on the tutorial - didnt cross my mind for hours that it was just a zoom issue... (edit - worth pointing out, everytime i zoom the current tutorial disappears, and i have to press Previous and Next to see everything again, with my new zoom settings - this gets very tiresome very quick)

    ON windows we start by RightClicking c:\gitrepos\superalgos -> git bash here -> type node platform --- is there away to create a desktop shortcut to do this ??

    When SA starts up (previous point) it automatically open firefox, where sa doesnt work. i have Chrome, and use it, but im certainly not making it default just for one app - how do we change this ??

    (just trying to help - thoughts from a noob)

    stale 
    opened by BigJonMMXX 8
  • Dependecyfilter And Remote Console Actions

    Dependecyfilter And Remote Console Actions

    Multiple Enhancements:

    Use of variable in for example the timeframe of an indicator It is possible with this addition to make formulas like this: chart[sessionParameters.userDefinedParameters.config.timeFrame].candle.close When the session parameter can be changed during the trading. So you can move timeframes with your strategy. For example if you use the same strategy, which also works on other (higher) timeframes, but do not want to recreate this whole strategy. you can set the variable when needed and return back to the start of you managed stage. The Dependecyfilter loads in all possibilities, so you are not missing any indicator if you want to change.

    Added Console actions. It is now possible to interact (limited) with SA by console. The advantage of this is that you can write scripts (Shell or Applescripts) to interact on a certain level with SA. These are the additions:

    remoteRunSession: remoteRunSession Call this, and you can initiate a backtest (or live trading) with the node id, example: UI.projects.algorithmicTrading.functionLibraries.tradingSessionFunctions.remoteRunSession("node-id-of-session")

    changeFormulaInNode: changeFormulaInNode Call this, and you can change the formula in a node example: UI.projects.algorithmicTrading.functionLibraries.tradingSessionFunctions.changeFormulaInNode("node-id" , "New formula")

    changeConfigInNode: changeConfigInNode, Works the same as changeFormulaInNode but then for a config of a node. For example the timeframe needs this: "UI.projects.algorithmicTrading.functionLibraries.tradingSessionFunctions.changeConfigInNode("node-id", "config" Where config can be: "{"label":"01-min"}

    RunremoteParentSession: RunremoteParentSession Runs a taks: UI.projects.algorithmicTrading.functionLibraries.tradingSessionFunctions.RunremoteParentSession("node-id-of-taks")

    Fix in Snapshots Apparently Snapshots couldn't handle double (( or )). Fixed with ReplaceAll There is stil a bug in combination with the ability of changing the timeframe dynamically, but is doesn't break SA

    opened by Ferrox85 8
  • Bump json5 from 1.0.1 to 1.0.2 in /DesktopReact

    Bump json5 from 1.0.1 to 1.0.2 in /DesktopReact

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
  • Token Bounty: 2.5M SA tokens: Twitter like UI  for Social Trading App Version 1

    Token Bounty: 2.5M SA tokens: Twitter like UI for Social Trading App Version 1

    Intro

    I am offering a 2.5M SA token bounty for any person or team that implements a UI for the Social Trading App which looks like as much as possible as Twitter, for the Version 1 of the Social Trading App.

    The Social Trading App in Superalgos is an Desktop / Mobile App that will allow users to:

    Follow / Unfollow other users, make text / image / video posts, repost, like (an other reactions) other's posts. It will also allow users to have social trading bots, that can broadcast signals or consume them and do copy trading.

    On its first version 1, we intend to reach the functionality only for humans users. In version 2, we will add the functionality for bots.

    The back end for version 1 and most of version 2 has already been implemented, though not well debugged. It consists of the Social Trading Client and the Superalgos Network Node with the Social Graph and Trading Signals network services.

    Scope

    The bounty scope is only for version 1 of the Social Trading App. It is expected that the winner team implements a UI for the current backend and debugs, fixes and completes the backend wherever is needed.

    The minimum list of features:

    1. Sing Up: this includes creating on the background of a Superalgos Profile and at least on Social Persona. This includes bio, profile picture and some other data (look at Twitter for reference).
    2. Managing your Social Personas / equivalent to Twitter accounts. Add / Edit / Delete.
    3. Managing of your API keys: github keys, exchange keys.
    4. Social Persona Timeline: Look at twitter for reference.
    5. Post / Tweet: text, images, videos, mix of them.
    6. Rpost / retweet.
    7. Comment on Posts / Tweets
    8. React on Posts (like, disklike, love, hate, etc) see already implemented reactions at the backend.
    9. Navigate posts / tweets like in Twitter.

    All these features are expected to work like in twitter, except for reactions that twtter only have likes, and we will have more.

    Backend

    At the backend we are going to have the concept of queries and events. Events are any changes of the social graph, for example: when social persona 1 follows social persona 2. When social persona 1 likes a post of social persona 2. Queries, are request of info that do no change the state of the social graph.

    The social graph is maintained at each network node running the Social Graph Network service. Each event is applied to the social graph at a Network Node and broadcasted to other nodes so that they can apply the event too. Some events also reach clients running the UI and the UI reacts to them on the fly.

    Winner Selection Criteria

    The winner team will be selected based on which UI is more similar to Twitter at the time the selection is made. This will be after the Easter holidays 2023.

    If no team manage to have the minimum set of features correctly working by them, we will set a new deadline. Teams are free to be setup as you wish, with as many members as you wish. The internal distribution of the reward is up on team members to decide.

    The selection of the winner will be by voting of whoever pledges tokens for the reward, proportionally.

    Bounty Reward

    I am pledging 2.5 Million SA tokens form my own stack. I invite other token holders to pledge more SA tokens to this project since it is without any doubt on the critical path for mass adoption of Superalgos as a whole. You can make your pledge by commenting in this post.

    Further Clarifications

    As interest of this bounty develops, we will be discussing and answering questions at the comments of this post. Some missing stuff might be added at the comments, including some missing feature I might have forgotten now.

    opened by Luis-Fernando-Molina 5
  • Different pairs have the same folder name that could lead users to trade in the wrong market

    Different pairs have the same folder name that could lead users to trade in the wrong market

    Context

    Operating System: Not depending on the OS

    Software version: Current SA - August 2022

    Workspace version: Not depending on workspace

    Reproducible: Yes

    Explain your issue

    1. Explain what the problem seems to be.

    There are 2 different main bugs:

    1) Different pairs have the same name in SA and then are saved in the same folder.

    Consider the screenshot below:

    image

    To reproduce the issue follow these steps:

    • Crypto Exchanges -> Add Centralized Exchange
    • Name the new exchange FTX
    • Under Exchange Asset add USD and a token, in my example is AMPL
    • Under Exchange Markets -> Add Missing Markets

    You will end having 2 pairs. One pair is AMPL/USD SPOT One pair is AMPL/USD PERPETUALS

    The issue here is that if you install both market, then for SA there is no difference and user will end up trading SPOT and never PERPETUALS

    2) Even if markets are correctly installed, users may trade in the wrong market

    As a consequence of the previous point 1), what may happen is that a user think to trade on Perpetuals maket when in reality he's placing orders on Spot market....

    Have a look at current code in SA, specifically HistoricOHLCV.js and ExchangeAPI.js.

    image

    As you can read from the code, at the moment the way SA "sends" the pair to ccxt for connection and ability to trade is in the following FIXED way:

    • Pair to use = Base Asset + / + Quoted Asset

    This is in contrast with the ccxt Unified API https://docs.ccxt.com/en/latest/manual.html#unified-api So using the above pair as example, what we will have following ccxt is:

    • AMPL/USD is SPOT
    • AMPL/USD:USD is PERPETUAL

    2. Clearly explain what you wish to accomplish.

    On the exchange there can be markets that can use the same pair but for different purposes. The issue seems to be more related to the way SA store and retrieve data from saved sessions that to ccxt that correctly identify the different markets.

    SA should find a way to differentiate the folders about same pairs but with different utility. As an example in this screesnhot I had to modify the folder name to avoid overwiting it.

    image

    In fact in the screenshot the folder "AMPL-USD" is where SPOT candles are saved, while the other renamed by me "AMPL-USD TO KEEP" is where a previous session saved PERPETUALS data. Obviously here users can't have both markets at the same time.

    3. Explain, step by step, what you've done to achieve the goal. The Team will follow these steps to reproduce the issue, so be precise.

    At the moment there is no solution as I'm not sure we users can modify the way SA constructs the folders to store/retrieve data. I tried to give different names to the exchanges, i.e. install the same exchange but with a different name (not the codeName!!) but there is no change.

    FINAL NOTES

    Here a link to Telegram chat where I explained the bug/issue https://t.me/superalgosdevelop/17528

    opened by 9808us 0
  • Profile Constructor - Build Profile with WalletConnect

    Profile Constructor - Build Profile with WalletConnect

    Operating System: Linux

    Software version: today's develop branch

    Workspace version: My custom workspace

    Reproducible: the issue may be reproduced.

    Explain your issue

    1. Explain what the problem seems to be.

    Build Profile with WalletConnect

    2. Clearly explain what you wish to accomplish.

    Create a wallet using walletconnect

    3. Explain, step by step, what you've done to achieve the goal. The Team will follow these steps to reproduce the issue, so be precise.

    Click - Build Profile with WalletConnect, then try to scan with WalletConnect. Tested with Trust Wallet, Coin Stats Wallet, and Coin98 Wallet.

    4. Explain what is the result you expect from your actions.

    A new profile connected with my wallet through WalletConnect

    5. Explain what happens instead of the expected results.

    None, after loading for a long time, the wallet apps say try again.

    6. Explain what errors you have found on-screen, on the browser console application, or in the Log-Files folder.

    No error in superalgos, but probably error time out for connecting the walletconnect

    opened by teehanming 0
  • Governance: Distribution Report

    Governance: Distribution Report

    The governance distribution process needs an improvement to make the distribution more transparent and accountable.

    At this point, all we know about past distribution events is that X number of tokens where distributed to Y addresses, and how many tokens each address got. To figure this out, one needs to go the token tracker page and research the transactions made by the treasury account.

    But it's impossible to trace why those addresses got the rewards.

    It'd be good if the distribution process exported the information on each of the Governance tables. That way, everyone could check if the distribution happened as expected.

    That will also allow us to keep and publish a historical record of all distributions.

    Ideally, the information would be posted or exported as CSV files, with a naming convention that allows populating a folder with all the files generated by recurrent distribution events.

    This would also allow us to populate the Sponsors Dashboard described on issue #4269 with historical information, for instance, the rewards obtained by a sponsor for the staking program in the previous distribution, and even accumulated rewards for each concept or program.

    improvement Governance 
    opened by julian-molina 2
Releases(1.4.0-20230107)
Owner
Superalgos
Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot!
Superalgos
API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

null 3 Mar 6, 2022
LNMarkets.com trading bot using TradingView Technical Analysis to automatically trade

#Warning Educational only. Use it at your own risk. I am not responsible for any financial loss. LNMarkets_Trading_Bot LNMarkets.com trading bot using

RielBitcoin 6 Sep 16, 2022
Guide for modding the gamecube hardware/software

GC Mod Guide currently the language icon is disabled, this will be changed after a crowdin and all that shizz is setup disabled on line 90 of _include

Method 5 Mar 28, 2022
NatsirtMC is a lightweight app allowing you to connect to any Minecraft server without having Minecraft open

NatsirtMC the only way to grind without grinding NatsirtMC is a lightweight app allowing you to connect to any Minecraft server without having Minecra

tristan 3 Dec 26, 2022
A very lightweight and chatbot with multi language support

A very lightweight and chatbot with multi language support

Artificial Intelligence 6 Jul 25, 2022
TypeScript with a Borrow Checker. Multi-threaded, Tiny binaries. No GC. Easy to write.

TypeScript with a Borrow Checker. Multi-threaded, Tiny binaries. No GC. Easy to write.

David Alsh 1.4k Dec 19, 2022
Aplikasi pembelajaran Sekolah Gratis dan Open Source

SekolahYuk SekolahYuk adalah Aplikasi Pembelajaran Online untuk sekolah2 di Indonesia. Dimana Guru bisa memberikan tugas, soal ujian, dan murid bisa m

Zahir Hadi Athallah 32 Dec 2, 2022
It's open source alternative to services like: integrately, ifttt, zapier, n8n

ozyifttt It's open source alternative to services like: integrately, ifttt, zapier, n8n Currently, it's support: telegram, github, jira You can add to

null 6 Oct 28, 2022
🐡 A simple open source phishing platform for red teams

?? A simple open source phishing platform for red teams

Christos Kaltsas 5 Apr 14, 2022
A cool Discord bot to manage tickets on your server 🎫

Discord Tickets Bot A cool Discord bot to manage tickets on your server ?? Project under construction... follow the progress on the Discord server. If

null 11 Oct 10, 2022
A high-performance, dependency-free library for animated filtering, sorting, insertion, removal and more

MixItUp 3 MixItUp is a high-performance, dependency-free library for animated DOM manipulation, giving you the power to filter, sort, add and remove D

Patrick Kunka 4.5k Dec 24, 2022
An improved discord bot for my discord server.

Ancalagon Bot Description Hello! This is a discord bot for my personal discord server. It's more of a remaster of my DragonBot but it's written in Jav

DragonWF 3 Jul 6, 2022
Bot managing the Devos Code Discord server

Bot managing the Devos Code Discord server

Pierre-Alexis 8 Dec 17, 2022
A PHP Laravel web application that uses most of Laravel technologies to build that gym system

A PHP Laravel web application that uses most of Laravel technologies to build that gym system.The System is based on rules. Admin, City Manager, Gym Manager. All Crud operations running using data tables.

Ashraf Eldawody 9 Dec 29, 2022
This is my old discord bot source (NoTaBot)

Discord-Bot This is my old discord bot source (NoTaBot) Requires Node.js Discord.js 12 Puppeteer (library) How to use? Download the code Change the to

Galvins 3 Nov 14, 2021
A simple server application that allows you to perform Wake-on-LAN remotely with a web interface

WoL Helper A simple server application that allows you to perform Wake-on-LAN remotely with a web interface. Usage Install: npm install -g wol-helper

Hongbo 5 Jul 27, 2022
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

JavaScript Algorithms and Data Structures This repository contains JavaScript based examples of many popular algorithms and data structures. Each algo

Oleksii Trekhleb 158k Dec 31, 2022
Gmail-like client-side drafts and bit more. Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters.

Sisyphus Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters. Descriptio

Alexander Kaupanin 2k Dec 8, 2022
Lazy-loading images with data-* attributes

Echo.js Echo is a standalone JavaScript lazy-loading image micro-library. Echo is fast, 2KB, and uses HTML5 data-* attributes for simple. Check out a

Todd Motto 3.7k Dec 30, 2022