University of Warsaw - Central Authentication System
Strona główna

Automatic Transactional Systems

General data

Course ID: 2400-QFU2TSA
Erasmus code / ISCED: 14.3 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0311) Economics The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Automatic Transactional Systems
Name in Polish: Automatic Transactional Systems
Organizational unit: Faculty of Economic Sciences
Course groups: (in Polish) Przedmioty obowiązkowe dla II roku Quantitative Finance
ECTS credit allocation (and other scores): 4.00 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: English
Type of course:

obligatory courses

Short description:

The general aim of this course is to familiarize students with development of trading strategies using Python language. Students are expected to become familiar with the mechanics of quantitative trading in the financial markets, characteristics of financial data and measures of trading strategies evaluation. The specific aim of this course is to give a practical background for the process of preparing advanced quantitative trading strategies

Full description:

Prerequisites:

Econometrics

Time Series Analysis

C++ in Quantitative Finance part I

Course content:

1. Short introduction to Python and its syntax. Preparation of the PyCharm environment/ Installation of Anaconda Python distribution. Organisational matters.

[1]:chapters 1,2,3

Python flow control: conditional expressions (if, else, elif), loops (for ,while), user-defined functions.

[1]:chapters 12,13

2. Object Oriented Programming (OOP) in Python part I (classes, methods, objects, complex built-in structures in Python: list, dictionary, tuple, set)

[1]:chapters 26,27

3. Object Oriented Programming (OOP) in Python part II (inheritance, multiple inheritance, operator overloading)

[1]:chapters 28,29,30

4. Advanced topics in Python: files operation (read/write),regular expressions, lambda function, time series visualisation with matplotlib, use of automatic http requests package.

[1]:chapters 33,34

[2]:chapters 8,

5. Linear algebra with NumPy +Data handling and wrangling with Pandas.

6. Solving mathematical problems in Python part I (root-finding algorithm, factorial calculation). Use of recursive functions.

7. Solving mathematical problems in Python part II (integral calculation). Use of Monte Carlo simulation.

8. Python for finance. The role of normal distribution (and its alternatives) in financial markets (normality tests on examples). Empirical properties of asset returns (stylized facts).

9. Option pricing models.

10. Back testing Minimum Variance portfolios, Maximum Sharpe Portfolio. Measures of trading strategy performance.

11. Trading systems based on Technical Analysis methods.

12. Strategies based on Machine Learning. Artificial Neural Network.

13. Strategies based on Machine Learning. Support Vector Machine.

14. Statistical Arbitrage strategies. Pair Trading.

15. Students presentations.

Bibliography:

[1.] Lutz, M. (2013), “Learning Python” 5-th edition , O’Reilly

[2.] McKinney ,W (2012), “Python for Data Analysis”, O’Reilly

[3.] Aldridge, I. (2009), “Measuring Accuracy of Trading Strategies”, Journal of Trading 4,

Summer 2009, pp. 17–25.

[4.] Alexander, C. and Johnson, A. (1992), “Are Foreign Exchange Markets Really Efficient?”,

Economics Letters 40, pp. 449–453.

[5.] Brock, W.A., Lakonishok, J. and LeBaron, B. (1992), “Simple Technical Trading Rules and

the Stochastic Properties of Stock Returns”, Journal of Finance 47, pp. 1731–1764.

[6.] Chan, E. (2008), Quantitative Trading: How to Build Your Own Algorithmic Trading

Business, Wiley Trading

[7.] Hvidkjaer, S. (2006), “A Trade-Based Analysis of Momentum”, Review of Financial

Studies19, pp. 457–491.

[8.] Kissell, R. and Malamut, R. (2006), “Algorithmic Decision Making Framework”, Journal of

Trading 1, pp. 12–21.

Learning outcomes:

Knowledge:

After finishing the course student knows the fundamentals of Python programming. Student knows how to use Python and its packages to prepare and analyze data to solve financial problems and build own investment strategies.

Skills

Student is able to prepare Python programming environment and install required packages.

Student is able to implement in Python own investment strategies.

Social Competence

Participant understands that the expert use of Python requires continuous practice and improvement of his own skills. This course gives him the skills to seek knowledge ,and update it to constantly changing Python libraries.

KW01, KW02, KU01, KU02

Assessment methods and assessment criteria:

Article Review: 10 points

Short tests: 20 points

Final Test (open-ended questions): 80 points (student must obtain >= 40 points to pass the course)

Project: 90 points [10 points for presentation +80 points for project and report]

Activity: up to 15 extra points

Total Score= (Article Review +Short tests + Final Test + Project+ Activity)/200 * 100%

The class attendance is mandatory. Four or more unjustified absences signify failure of

the course.

Grade Total Score % Description

5 +90% very good

4+ +80% better than good

4 +70% good

3+ +60% satisfactory

3 +50% sufficient

2 Less than 50% fail

( total number of points < 50% or final test score < 50 % or missed more than 4 classes)

Class attendance registration:

Students register their class attendance by signing on the attendance list and

submitting mandatory short tests.

Classes in period "Summer semester 2023/24" (in progress)

Time span: 2024-02-19 - 2024-06-16
Selected timetable range:
Navigate to timetable
Type of class:
Seminar, 30 hours more information
Coordinators: Robert Wojciechowski
Group instructors: Robert Wojciechowski
Students list: (inaccessible to you)
Examination: Course - Grading
Seminar - Grading
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)