February 28, 2023

How to install VSCode on Cloud

 Welcome back to our series on Setting up Your Live Algorithmic Trading Environment from Scratch! In this sixth video of the series, we'll be showing you how to set up Visual Studio Code (VSCode) on your cloud environment for efficient coding and development.

VSCode is a popular code editor that offers a range of powerful features and extensions for programming, including support for multiple languages and version control systems. In this video, we'll cover the steps required to set up VSCode on your cloud environment, including how to install and configure VSCode, connect to your environment using SSH, and install useful extensions for trading.

By the end of this video, you'll have a fully functional and optimized development environment on your cloud server, ready for algorithmic trading. Don't forget to watch our other videos in this series, including how to set up your VPS server, create and configure your virtual machine instance, install an SSL certificate, and more.

Thanks for watching, and be sure to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips! Don't forget to watch the next video in our series, where we'll cover how to create swap space on your server for improved performance.

How to create SWAP Space

 


Welcome back to our series on Setting up Your Live Algorithmic Trading Environment from Scratch! In this fifth video of the series, we'll be walking you through the process of creating SWAP space on your virtual machine (VM) instance.

SWAP space is a crucial component of any algorithmic trading environment, as it provides an additional buffer for your system's memory, which can help improve performance and prevent crashes during periods of high demand.

In this video, we'll cover the steps required to create SWAP space on your VM instance, including how to determine the appropriate size for your system and how to configure your settings for optimal performance.

By the end of this video, you'll have a solid understanding of how SWAP space works and how to set it up for your algorithmic trading environment. Be sure to watch the next video in our series, where we'll cover how to install and configure the necessary software to start developing your trading algorithms.

Thanks for watching, and don't forget to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips!

Deploy Algorithmic Trading Strategy: SSH into VM Instance | Part 4

 

Welcome to our video series on Setting up Your Live Algorithmic Trading Environment from Scratch! In this fourth video of the series, we'll show you how to remotely access your virtual machine (VM) instance using SSH.

We'll cover the steps required to configure SSH, including the necessary credentials and settings. We'll also provide some tips to ensure that your connection is secure and your data is protected.

By the end of this video, you'll have the knowledge you need to remotely connect to your VM instance and start exploring the capabilities of your algorithmic trading environment.

Don't forget to check out the next video in our series, where we'll cover how to install the necessary software and tools to start developing your algorithmic trading strategies.

Thank you for watching, and please don't forget to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips.

Algorithmic Trading - Create an VM Instance



Welcome back to our series on Setting up Your Live Algorithmic Trading Environment from Scratch! In this third video of the series, we'll be showing you how to create a virtual machine (VM) instance on your preferred cloud provider.

A VM instance is a key component of any algorithmic trading environment, as it provides the computational resources necessary to develop and test your trading algorithms. In this video, we'll cover the steps required to create a VM instance, including how to select your preferred operating system and configure your settings for optimal performance.

By the end of this video, you'll have a fully functional VM instance up and running, ready for use in your algorithmic trading environment. Be sure to watch the next video in our series, where we'll cover how to set up and configure your SSH connection to your new VM instance.

Thanks for watching, and don't forget to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips!

Setup Always free VPS Server


 

Welcome back to our series on Setting up Your Live Algorithmic Trading Environment from Scratch! In this second video of the series, we'll be showing you how to set up an always free virtual private server (VPS) on your preferred cloud provider.

An always free VPS is an excellent option for anyone looking to set up a reliable, cost-effective trading environment. In this video, we'll cover the steps required to set up your always free VPS, including how to select your preferred operating system and configure your settings for optimal performance.

By the end of this video, you'll have a fully functional VPS server up and running, ready for use in your algorithmic trading environment. Be sure to watch the next video in our series, where we'll cover how to create and configure a virtual machine (VM) instance on your new VPS server.

Thanks for watching, and don't forget to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips!

Setting up Your Live Algorithmic Trading Environment from Scratch, p1: Why Cloud?




Cloud computing offers a range of benefits for traders, including flexibility, scalability, and cost-effectiveness. In this video, we'll cover the advantages of using cloud computing for your trading environment, including how it can help you manage risk, access real-time data, and improve your trading performance.

By the end of this video, you'll understand the benefits of cloud computing and why it's an ideal solution for algorithmic traders. Don't forget to watch our other videos in this series, including how to set up your VPS server, create and configure your virtual machine instance, install an SSL certificate, and more.

Thanks for watching, and be sure to like, comment, and subscribe to our channel for more algorithmic trading tutorials and tips! Don't forget to watch the next video in our series, where we'll cover how to create a virtual machine instance on your cloud server.

January 7, 2023

How to Deploy Django with Nginx Gunicorn and Supervisor on Ubuntu 22.04

Learn how to deploy a Django application with Nginx, Gunicorn, and Supervisor on Ubuntu 22.04. Get step-by-step instructions for setting up a secure, reliable web server using best practices that will help you keep your web application.

Django with Nginx Gunicorn and Supervisor on Ubuntu 22.04

Create Separate User and Group

sudo groupadd --system project-group

Add New User

sudo useradd --system --gid project-group --shell /bin/bash --home/projectroot project-user 

Create a Root Folder for the project

mkdir ~/projectroot
cd ~/projectroot

Then create a virtual environment for the Project

virtualenv app1

Go to the environment folder and activate the virtual environment

cd app1
source bin/activate

Create the requirements.txt file for the Django or flask project

sudo vi requirements.txt

Add the packages then save the file.

Create a log folder in the environment folder

mkdir logs

Now clone the Django or flask project from the GitHub repository

git clone url.git

change the ownership permission for the project and other files

sudo chown -R project-user:project-group .

Create a gunicorn script in bin folder

sudo vi bin/gunicorn_start

Paste the below script into the file

#!/bin/sh

NAME='Project Name'
DJANGODIR=/projectroot/app1/django_project
SOCKFILE=/projectroot/app1/run/gunicorn.sock
USER=project-group
GROUP=project-user
NUM_WORKERS=3
DJANGO_SETTINGS_MODULE=django_project.settingsprod
DJANGO_WSGI_MODULE=django_project.wsgi
TIMEOUT=120

cd $DJANGODIR
source ../bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --timeout $TIMEOUT \
  --user=$USER --group=$GROUP \
  --bind=unix:$SOCKFILE \
  --log-level=debug \
  --log-file=-

then make this file Executable

chmod +x bin/gunicorn_start

Now install the Supervisor

sudo apt install supervisor

Create a new config file in the supervisor

sudo vi /etc/supervisor/conf.d/django_project.conf

then add the below script and save

[program:django_project]
command = /projectroot/app1/bin/gunicorn_start
user = project-user
stdout_logfile = /projectroot/app1/logs/supervisor.log
redirect_stderr = true
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8
supervisorctl reread
supervisorctl update
supervisorctl status

Now create the nginx configaration for the project

sudo vi /etc/nginx/sites-available/django_project.conf

paste the below configaration.

upstream django_project_app_server {
server unix:/saulroot/saul_3_6_4/run/gunicorn.sock fail_timeout=0;
}

server {
listen 80;
server_name example.com;
access_log /projectroot/app1/logs/nginx-access.log;
error_log /projectroot/app1/logs/nginx-error.log;

location /static/ {
alias /projectroot/app1/django_project/static/;
}

location /media/ {
alias /projectroot/app1/django_project/media/;
}

location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_redirect off;

if (!-f $request_filename) {
proxy_pass http://django_project_app_server;
}
}
}

Restart Nginx

sudo nginx -t
sudo systemctl restart nginx

open the browser http://example.com

January 5, 2023

How to Install Arduino IDE 2.0(AppImage) on Ubuntu 22.04

In his article we will discuss how to install Arduino IDE 2.0 AppImage Ubuntu 22.04. The following has been performed with the following versions:

    • Ubuntu 22.04 64bits

    • Arduino IDE 2.0.3

Note that you can install the Arduino IDE from Ubuntu Software, but this is not the last version (1.8.19 while the last version is 2.0.3). Arduino IDE can also be installed with the AppImage, but its integration in Ubuntu is not nice. For example, adding the app in your launcher is not easy.

Download

First, download the AppImage file from the Arduino official website.

arduino IDE 2.0.3 AppImage

Install files

Open a terminal in the folder where the AppImage file has been download. change the file permission with following command:

cd Downloads
chmod +x arduino-ide_2.0.3_Linux_64bit.AppImage

Then Extract the file with the following command:

./arduino-ide_2.0.3_Linux_64bit.AppImage --appimage-extract

Create a folder in home

mkdir ~/arduino

copy and rename the extracted above AppImage files to arduino directory

cp -r squashfs-root/* ~/arduino/

Launch IDE

Go to the installation folder:

cd ~/arduino

Launch the Arduino IDE with the following command:

./arduino-ide

The IDE should open.

arduino IDE 2.0.3

Create the app desktop shortcut

To add the Arduino IDE to the launcher, create a new file arduino.desktop in the folder ~/.local/share/applications.

cd ~/.local/share/applications
sudo vi arduino.desktop

Paste the following command and change Exec and Icon path according to your folder path structure.

[Desktop Entry]
Version=1.0
Type=Application
Name=Arduino IDE 2.0
Icon=/home/username/arduino/arduino-ide.png
Exec=/home/username/arduino/arduino-ide
Comment=The Arduino Software IDE
Categories=Development;IDE;
Terminal=false
arduino IDE 2.0.3 Launcher

Happy Coding :)












December 24, 2022

Introduction to MQTT Client Tools using CLI

MQTT (Message Queuing Telemetry Transport) is a machine to machine internet of things connectivity protocol. It is a Publish-Subscribe  very lightweight transport protocol and it is a useful protocol where the bandwidth is a premium. 

In this tutorial we are going to use Mosquitto broker, will see how to install it and use its very important tool mosquitto-clients. 

Installing Mosquitto:

To install Mosquitto in Ubuntu open terminal and type following command 

> sudo apt install mosquitto 

Mosquitto broker will install it on your system. You can check it in the cd /etc/mosquitto directory. 

Now to install client tools type following command

> sudo apt install mosquitto-clients 

Installation part is done now we will to look at some examples of using this mosquitto-client tools 
for publishing and subscribing.

Now lets check that our mosquitto broker is installed properly or not for that type command

> sudo service mosquitto status 

You will see mosquitto is active (running). If not then try typing ‘start’ instead of ‘status’ in the previous command. 

Use of Mosquitto Client tools:

We will start with Subscriber first because MQTT Broker requires it to forward  messages to the clients that are subscribed to a topic/topics. 

Now type the following command to connect with the broker as a subscriber. (-d debug flag set ) and subscribe to topic ‘test/topic’

> mosquitto_sub -h localhost -t test/topic -d

Once entered, the client will always be in listening mode to exit press ctrl+c. 

Useful Flag Options: 

-p → set port number default is 1883
-h → ip address or host name
-t →Topic name 
-u →username
-P →password
-i →provide client id
-r →sets retain flag
-n →sends Null message useful for learning retain message
-q →for Quality of service (0,1,2)
-k →keep alive 
For more info use > mosquitto_sub –help

Now using mosquitto_pub we will publish message to topic ‘test/topic’ .

> mosquitto_pub -h localhost -t test/topic -m "first message" -d

After publishing message publisher client will disconnect automatically. 

Subscribers will receive message on topic ‘test/topic’. 

Publishing using username and password

> mosquitto_pub -h localhost -t test/topic -u nimesh -P passwd -m "first message" -d

Remember that -P (capital P) is for password and -p is for port number.

Publish with Retain Flag and QoS Flag:

use of -r and -q flag

In PUBLISH packet you will notice that q1, r1 flag will be set. 

Retain flag will help to inform the broker to keep the last message on that topic. This feature allows you to store a single message per MQTT topic on broker and send it to all current and future subscribers. 

To save a retained message, simply set a retained flag when publishing it to the broker.

Publish with Client Name:

This option is useful when testing client restrictions using prefixes or client names with ACLs. Uses -i option. You could also use the -I option if you just needed prefixes.

> mosquitto_pub -h localhost -t test/topic -i client_01 -m "first message" -d

Publishing JSON Data: 

Json data always has a key-value pair. When we want to publish data using mosquitto_pub always keep in mind one think that dont use quotes. 

Eg. don’t use {“LED_Status”:”ON”} but instead use: {\”LED_Status\”:\”ON\”}.


If you are publishing multiple datas then you need to put the entire string in quotes: 

Eg. "{\"temp1\":22,\"temp2\":45}" 

Subscribe using -C flag:

A useful option is the -C flag which will disconnect after receiving a certain number of messages. 

> mosquitto_sub -h localhost -t test/topic -C 3 

While publishing with -l flag publisher will not disconnect and we can enter message on terminal. 

Subscribe using -v flag : 

-v means verbose. It will show the topic name as well as the message.

There are more options available that you can try. In the end let's conclude that mosquitto_sub and mosquitto_pub client utility is an excellent tool for troubleshooting and testing purposes for MQTT and Broker.