PYTHON

 

Basics of Python Programming




Python is undoubtedly one of the most popular programming languages in today’s world. With its quickly updated libraries and the ease to code, Python has managed to make its place in the rapidly growing technology era.

You can refer to the Python handbook that has everything from basic learning to gaining knowledge about Pandas along with a lot of direct examples. With this book, you can learn the most relevant information before starting to practically use the Python language. This book is also meant for those programmers who want to quickly refresh their knowledge on Python for data analysis. One of the best parts is that it is available for FREE.

What is Python programming?

Python is a programming language that places weight on coding productivity and code readability. Python makes use of coding which looks like written English. Moreover, the coding is done in words and sentences, rather than characters.

An example of a simple Python code goes as follows:

# Adding
x = 2
y = 3
sum = x + y
print(sum)


Output:

5

In trading, Python provides several benefits. Let us find out what are those points that make Python popular.

Benefits of Python in trading

Python is known to be a preferred language for developing trading strategies by programmers/developers since it provides benefits such as:

  • Python has certain APIs and libraries for machine learning as well as data science that make the analysis smoother as compared to other languages.
  • It helps the trader with quick and easy coding for importing data and for data visualization in the form of graphs.
  • Most quant traders prefer Python as it helps them build their own data connectors, execution mechanisms, backtesting, risk and order management, walk forward analysis and optimization testing modules.
  • First updates to Python trading libraries are a regular occurrence in the developer community.

Next, let us find out about applications of Python in trading.


Applications of Python in trading

Python, like any other programming language, can help an algorithmic trader to trade in the stock market with minimum human intervention. Python helps you program the trading system with the Python codes (set of instructions) for executing the trade orders. With the help of different codes, you can program the system to do the data analysis, find out the best entry and exit positions and then execute the trade.

Hence, apart from Python’s extensive use in other fields like medicine, marketing etc. it is used for algorithmic trading across the globe.

Technically speaking, Python has a huge significance in the overall trading process as python codes are used to develop quantitative models for trading strategies.

Python trading has gained traction in the quant finance community as it makes it easy to build intricate statistical models due to the availability of sufficient scientific libraries like Pandas, NumPy, scikit-learn and more.

Take a look at the areas where Python is applicable during algorithmic trading:

Quantitative data analysis

For executing the trade order, the first step consists of acquiring the data for the particular stock and then conducting a quantitative data analysis. Quantitative analysis is the process that helps to find out the performance of the strategy in the market by using statistical tools such as machine learning, neural networks, etc.

Developing trading algorithms

Developing trading algorithms implies converting trading hypotheses into trading algorithms based on specific rules of entry/exit. These algorithms are developed with the help of coding in Python.

Backtesting

It has never been easier to backtest your trading strategies as much as it is with Python. With just a few lines of code, Python backtests your trading strategies on historical data. A platform like Blueshift can help you take your trading strategies live after converting the strategy in event-driven type.

Evaluating trading strategies

Next step is to evaluate the trading strategies after the backtest. Now Python coding aids by helping to find out how beneficial the strategy will be after being deployed. For evaluating the trading strategy we can calculate metrics such as annualised return, annualised volatility, sharpe ratio etc. On the basis of these figures, you can measure the possible return and risks of deploying the trading strategy. We have covered the explanation of each in detail in our blog article on Python for Trading: An Introduction.

Further, Python also helps with integration of the strategy code with broker API for taking the strategy live.

Going forward, let us take a look at how the Python scripts are run.

Running of Python scripts

For running the scripts in Python, a Python environment is needed. An environment consists of an interpreter for Python standard libraries and pre-installed packages. Anaconda is this environment where Jupyter is the framework using which you can code in Python and run your scripts for the desirable output. Also, Spyder is an IDE or Integrated development environment which is used for running python codes as well.

For installing Anaconda and setting up a Python environment, you can refer to the blog on setting up Python.

Let us take a look at the example below:

How would you make Python print "Hello World" for you? Well, it's never been this easy, just use the print command:

print("Hello World!")
view rawHello.py hosted with ❤ by GitHub

Output:

Hello World!

# Second variation
print("I am new to programming!")
print("Python is cool!")
view rawPython.py hosted with ❤ by GitHub

Output:

I am new to programming!

Python is cool!

Running the Python scripts is simple and fun! Since you do not need an extremely strong computer science background for Python programming, it is a favoured language for almost all beginners.

Going forward, let us find out about syntax in the next section.

What is syntax?

Syntax implies the set of rules which define how the program will be written and interpreted.

For example, this is the Python syntax:

print (“Welcome, John!”)

In the above example, syntax implies the characters such as opening and closing brackets () and the inverted commas “” as well as the keyword “print”.

Output:

Welcome, John!

Next, let us find out what indentation is.

What is indentation?

Python uses indentation to identify the different blocks of code. The white space indicates the indentation. All the codes with the same spaces on the left belong to the same block of code. Usually, the number of spaces on the left are four.

Take a look at the example below:

# Python to calculate the square of number
num = 8
num_sq = num ** 2
print (num_sq)
view rawSquare.py hosted with ❤ by GitHub
# Removing the indent
num = 8
num_sq = num ** 2
print (num_sq)

Output:

64

In the example above, since the second line of code is a separate expression, the indentation is not correct. Hence, when you run the code it throws an error. But when you remove the space/indentation, the correct output is shown.

Next, we will learn about the basic coding requirements which are variables and operators.

What are variables and operators?

Variables

Variables are characters or words that are given a user-defined value. Variables, as the name suggests can be varied during the execution of the code. They are allocated a space in the computer memory based on their data type. Python doesn't require explicit declaration of the data type for a variable.

Example 1

# Age of Alex
age = 45
# Salary
salary = 1456.8
# Name
name = "Alex"
print(age)
print(salary)
print(name)
view rawVariable.py hosted with ❤ by GitHub

Output:

45

1456.8

Alex

Example 2

# Creating the variable
number = 100
# Display
print(number)

Output:

100

Changing the value of a variable

# Creating the variable
number = 100
# Display
print("Original value: ", number)
# Change the value
number = 120.3
print("Updated value:", number)

Output:

Original value:  100

Updated value: 120.3

Operators

Operators are used on the values and variables in Python for performing certain operations.

Take a look at different types of operators:

  • Arithmetic operators
  • Relational operators
  • Logical operators
  • Operator precedence

Arithmetic operators

Arithmetic operators are used to perform mathematical operations like addition, subtraction, multiplication, division, modulus, exponentiation and floor division.

For example:

x= 8
y= 4
# Addition of two operands
add = x+ y
print(add)
# Subtraction of two operands
sub = x-y
print (sub)
# Multiplication of two operands
multiplication = x*y
print (multiplication)

Output:

12

4

32

Relational operators

Relational operators compare the values of two expressions and return true or false.

For example:

# Let us assume a & b
a = 13
b = 33
# a > b is False
print("Is a greater than b?:" a > b)
# a < b is True
print("Is a smaller than b?:" a < b)
# a == b is False
print("Is a equal to b?:" a == b)
# a != b is True
print("Is a not equal to b?:" a != b)
# a >= b is False
print("Is a greater than or equal to b?:" a >= b)
# a <= b is True
print("Is a smaller than or equal to b?:" a <= b)

Output:

Is a greater than b?: False

Is a smaller than b?: True

Is a equal to b?: False

Is a not equal to b?: True

Is a greater than or equal to b?: False

Is a smaller than or equal to b?: True

Logical operators

Logical operators perform Logical AND, Logical OR and Logical NOT operations.

For example:

If A, B and the combinations are as follows:

Case

A

B

A and B


print(A and B)

A or B


print(A or B)

Not A


print(Not A)

Not B


print(Not B)

1

True

False

False

True

False

True

2

True

True

True

True

False

False

3

False

True

False

True

True

False

4

False

False

False

False

True

True

In the table above, you can see how AND, OR and NOT are giving output.

Operator precedence

This is used in an expression with more than one operator to find out as to which operation to perform first.

Take a look at the table below to find out all the operators of different precedence:

Operator in characters

Name of the operator

()

Parentheses

**

Exponent

* , /, %

Multiplication, division, modulus

+-

Addition, subtraction

<<=

>>=

Relational less than/less than or equal to

Relational greater than/greater than or equal to

is, is not

in, in not

Identity

Membership operators

not

Logical NOT

and

Logical AND

or

Logical OR

For example:

# Precedence of 'or' & 'and'
name = "John"
age = 0
if name == "John" or name == "Peter" and age >= 2 :
print("Hello! Welcome.")
else :
print("Good Bye!!")
view rawPrecedence.py hosted with ❤ by GitHub

Output:

Hello! Welcome.

Next comes the section explaining conditional statements and loops.

Conditional statements and Loops

Conditional statements in Python are mainly handled by IF and else statements. They help to perform different operations on the basis of the nature of the output. Basically, the output is decided by evaluating True or False for the condition followed by the “if” keyword.

Source: Wikimedia

In Python, the syntax for an ‘if else' conditional statement is as follows:

if (condition_1):
   print("statement_block_1")
else:
   print("statement_block_2")

Take a look at the example below:

stock_price_ABC = 300
if (stock_price_ABC > 250): # if condition 1 is true then....
# this block of code will be executed
print("We will sell the stock and book the profit")
else:
print("We will keep buying the stock")
view rawConditional statement1.py hosted with ❤ by GitHub

Output:

We will sell the stock and book the profit

If you change the value of the variable 'stock_price_ABC' to...

stock_price_ABC = 200 # then...
if (stock_price_ABC > 250): # if condition 1 is false then....
print("We will sell the stock and book the profit")
else:
# this block of code will be executed
print(" We will keep buying the stock")
view rawConditional statement2.py hosted with ❤ by GitHub

Output:

We will keep buying the stock

Loops are a part of conditional statements. Loops execute a set of statements repeatedly till the given condition is satisfied in the code. Once the condition becomes false, we exit the loop and move to the next block of code.

For example:

for i in (1,2,3):
print (i)
view rawLoops.py hosted with ❤ by GitHub

Output:

1

2

3

Moving to the next section let us find out about functions.

What are functions?

A function is a reusable block of code that does the same thing each time it is executed (or technically speaking, "called"). A function can take multiple inputs, called parameters, or no inputs at all. It can also be used to return a certain value.

The syntax for constructing a function is:

def function_name (parameter-list):

              Statements, i.e function body

              return a value, if required

For example:

def my_function(x, n):
output = x ** n
return output
view rawDefine function.py hosted with ❤ by GitHub

Since code above has already defined the function, you can insert the values for x and n for getting x raised to n in the output every time by calling the function.

Let us see how:

# 10 raised to 3
print(my_function(10,3))
# 5 raised to 3
print(my_function(5,3))
view rawMy function.py hosted with ❤ by GitHub

Output:

1000

125

Next, let us find out about modules, packages and libraries in Python.

Modules, Packages and Libraries

Modules

A module is a file consisting of Python definitions and statements. A module basically defines functions, classes and variables. Also, a module can include a code that can be run in the Python environment. Modules help to keep the codes organized in one place.

Why do we need modules?

As a code gets longer, we may want to split it into several small files for easier maintenance. Also, we may want to use a handy function that we have written in several programs without copying its definition into each program. To support this, Python has a way to put a code definition in a file and use them in another script or directly in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or in the program that we code.

Packages

A package is basically a directory with Python files and a file with the name __init__ . py.

Hence, each directory inside of the Python path, which contains a file name __init__ . py, will be a package in Python.

Packages can be considered as a collection of modules. It is a way of structuring Python’s module namespace by using "dotted module names". For example, the module name matplotlib.pyplot designates a submodule named pyplot in a package named matplotlib.

As we know Python is an open-source project. The Python developers community make their codes available for others in the form of packages under the open source license.

Libraries

Libraries are a collection of reusable modules or functions which can be directly used in our code to perform a certain task without the necessity to write the code from scratch.
Python has a huge collection of libraries which can be used for various functionalities like computing, machine learning, data visualization, etc. However, we will talk about the most relevant libraries required for coding trading strategies.

We will be required to:

  • Import financial data,
  • Perform numerical analysis,
  • Build trading strategies,
  • Plot graphs, and
  • Perform backtesting on data

For all these functions, here are a few most widely used libraries:

  • NumPy – NumPy or NumericalPy, is mostly used to perform numerical computing on arrays of data. The array is an element which contains a group of elements and we can perform different operations on it using the functions of NumPy.
  • Pandas – Pandas is mostly used with DataFrame, which is a tabular or a spreadsheet format where data is stored in rows and columns. Pandas can be used to import data in various file formats to perform data analysis and manipulation of the tabular data.
  • Matplotlib – Matplotlib is used to plot graphs like bar charts, scatter plots, histograms etc. It consists of various functions to modify the graph according to our requirements.
  • TA-Lib – TA-Lib or Technical Analysis library is an open-source library and is extensively used to perform technical analysis on financial data using technical indicators such as RSI (Relative Strength Index), Bollinger bands, MACD etc.

You can learn more on Python programming with courses such as Python for trading:Basic and Python for Trading!. These courses provide you with a deeper insight into Python programming and its basics.


0 Comments