Assets-Loop - https://assetsloop.com
Assets Loop is a free Open Source web application (built with Python + JavaScript) designed to assist in trading across cryptocurrency exchanges, currency markets, and banks using an arbitrage strategy. It is intended to search for all possible transaction chains and display them on the website's homepage. Currency exchange rates are continuously and concurrently parsed through a network of open and closed APIs using Tor network, proxys and direct, ensuring the rates are always up-to-date.
Sponsorship | Structure | Supported marketplaces | Technologies | Requirements | Quick start | Support | Disclaimer | License | Author | Copyright
This project requires financial support for its development and maintenance, primarily to cover server costs. If I could afford to pay for the server from donations, I could add many more banks, currency markets, and crypto exchanges. I'm aware that many people are parsing data from my resource, and I'm pleased that the project is helpful. However, if you could consider donating 5-10$ monthly, it would go a long way in supporting the project.
Assets Loop is not supported by any company and is developed in my spare time, and the server is paid from my personal funds.
- Wise balance by my mail [email protected]
- Binance balance Pay ID: 366620204
- Tinkoff balance
- Patreon
- Boosty
. ├── .github/workflows ─ Workflow for Git Actions CI ├── arbitration ─ Django project │ ├── arbitration ─ Django settings module │ ├── banks ─ Banks & Currency Markets creation module │ ├── core ─ View module │ ├── crypto_exchanges ─ Crypto Exchanges creation module │ ├── parsers ─ Business logic module │ ├── static ─ css, javascript, favicon │ └── templates ─ HTML pages └── infra ─ Project infrastructure setup
Supported crypto exchanges and supported deposit/withdrawal methods between crypto assets and fiat currencies:
This is a web application project using Docker Compose for containerization. The project includes several services such as a Tor proxy to bypass parsing locks, Redis, PostgreSQL database, Nginx web server, Certbot for SSL certification, and Celery workflows for parsing, parsing and computing data. These services are connected to the user's network.
- Python 3
- Django, Django REST framework
- Celery, Celery Beat,
- Redis
- Docker, Docker-Compose
- PostgreSQL
- NGINX, Certbot, Gunicorn
- JavaScript, jQuery
- DataTables, Ajax
- Bootstrap, Select2, Twix
- CI/CD, Git Actions
- Digital Ocean
The clock must be accurate, synchronized to a NTP server very frequently to avoid problems with communication to the exchanges.
To run this service I recommend you a cloud instance with a minimum of:
- Minimal (advised) system requirements: 2GB RAM, 1GB disk space, 2vCPU
- git
- Docker & Docker Compose
- Python >= 3.9
- pip
- virtualenv (Recommended)
- Install Docker and Docker Compose on the server or local (for ubuntu):
sudo apt install curl # installing a file download utility
curl -fsSL https://get.docker.com -o get-docker.sh # download script for installation
sh get-docker.sh # running the script
sudo apt-get install docker-compose-plugin # install docker compose
- Clone repository:
git clone https://github.com/Nezhinskiy/Assets-Loop.git
- Go to the infra directory:
cd Assets-Loop/infra/
-
Create an .env file in the infra directory and fill it with your data as in the example.env file.
-
Create and run Docker containers, run command:
docker-compose -f local-docker-compose.yml up
- After a successful build, run the migrations:
docker compose exec arbitration python manage.py migrate
- Collect static:
docker compose exec arbitration python manage.py collectstatic --noinput
- Clone repository:
git clone https://github.com/Nezhinskiy/Assets-Loop.git
- Go to the infra directory:
cd Assets-Loop/infra/
- Copy the prod-docker-compose.yml file and the nginx directory and the certbot directory from the infra directory to the server (execute commands while in the infra directory):
scp prod-docker-compose.yml username@IP:/home/username/Assets-Loop/ # username - server username
scp -r nginx username@IP:/home/username/Assets-Loop/ # IP - server public IP
scp -r certbot username@IP:/home/username/Assets-Loop/
- Go to your server, to the Assets-Loop directory:
ssh username@IP # username - server username
cd Assets-Loop/ # IP - server public IP
-
Create an .env file in the Assets-Loop directory and fill it with your data as in the example.env file.
-
Create and run Docker containers, run command on server:
docker-compose -f prod-docker-compose.yml up
- After a successful build, run the migrations:
docker compose exec arbitration python manage.py migrate
- Collect static:
docker compose exec arbitration python manage.py collectstatic --noinput
-
In the .env file, you specified the path in the REGISTRATION_URL variable. Follow it to populate the database with the necessary data.
-
In the .env file, you specified the path in the START_URL variable. Follow it to start the service.
- To work with GitHub Actions, you need to create environment variables in the Secrets > Actions section of the repository:
DOCKER_PASSWORD # Docker Hub password
DOCKER_USERNAME # Docker Hub login
DOCKER_PROJECT # Project name on Docker Hub
HOST # server public IP
USER # server username
PASSPHRASE # *if ssh key is password protected
SSH_KEY # private ssh key
TELEGRAM_TO # Telegram account ID to send a message
TELEGRAM_TOKEN # token of the bot sending the message
For any questions not covered by the documentation, or for more information about the service, write to me in Telegram.
Feel like the service is missing a feature? I welcome your pull requests!
Please, message me on Telegram, before you start working on any new feature.
This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Assets Loop is owned and maintained by Mikhail Nezhinsky.
You can follow me on Linkedin to keep up to date with project updates and releases. Or you can write to me on Telegram.
Copyright (c) 2022-2023 Mikhail Nezhinsky