Sunteți pe pagina 1din 3

EF4323 Algorithmic Trading Project

Semester A 2017/18
Instructor: Dr. ZHANG, Zhong

Introduction
In this project we are simulating the algorithmic trading business model in which a small group of
proprietary traders try to attract outside institutional investment by marketing their trading strategies and
performance.
As a group, you have to study the target market (in this case: PD3), design your strategies, write the VBA
codes, and test your strategies in the simulated market. You also need to collect the trading records, and
analyze the performance of your strategies giving different market conditions. In the end, each group has
to prepare a “Sales Presentation” that tries to grab the attention of potential investors.
Each group has to submit the following files to me through email before the deadline:
1. The Excel file that includes your VBA coded strategies;
2. A well-written document that explains your strategies and analyzes the performance (no more than 20
pages, including everything);
3. Your PPT slides for the presentation;
4. All the data you collected (Zip it if it’s too big).
The deadlines for each session are:
Monday Session: Nov 26, 2017, Sunday, 9PM;

The deadlines will be enforced strictly. I will reply and confirm the reception of your submitted files. If
you do not get my reply, it means your email did not get through. In that case, you may want to send it with
another email account to avoid any delay due to technical reasons.

Design and Implement your “Algo”


The “VBA API Documentation.pdf” and “RTD Documentation.pdf” provide detailed guidance about how
to set up your RIT client and Excel for algorithmic trading. Please read through them carefully. With your
knowledge in VBA coding, you can modify the example code for ALGO1 and ALGO2 cases (in
Canvas/Case Files folder), or design your own new code to implement the trading strategies. There is no
upper-limit in the complexity for your code, but make sure it works well and all group members can
understand it. I won’t be satisfied if you only use the sample codes or simply change some of its
parameters. Below is a VBA learning site from Microsoft. You should start here if you have no coding
experience before.
https://msdn.microsoft.com/en-us/library/xk24xdbe(v=vs.100).aspx
In general, case PD3 provides profit opportunity from the following three types of strategies.
Arbitraging between Stocks and ETF: In PD3, as the ETF is designed to be UB + GEM, and there’s no
restriction on short-selling, we have a perfect environment for arbitraging trades. After transaction fee,
whenever ASK(ETF) < BID(UB) + BID(GEM) or BID(ETF) > ASK(UB) + ASK(GEM), arbitraging
opportunity exists. You have to submit multiple orders at the same moment to capture these opportunities,
and control for the size of your orders too. You can either keeping the arbitrage position to the market
close when mispricing is cleared by settlement, or closing out your position when mispricing
disappears during the trading session. In principle, you want to take as many arbitrage opportunities as
possible. If your code is correct and fast, this strategy should be risk-free.
Arbitraging mis-valuation in Individual Stock: Similar to PD2, you can get a price interval estimate for
the final fair value from the news for the two stocks. Arbitraging opportunity may arise when individual
stock is traded out of the price interval.
Market Making: When there is no arbitrage opportunity, market making is a potential risky profit channel.
As a market maker, you make money when both your bid and ask are hit by others and you end up with
zero net position in any asset; you lose money when only your bid (ask) is hit, and then the market moves
down (up) and never comes back.
When designing your code, you can either include a lot of logic conditions in one “Super Algo” to take care
of all profitable strategies, or design many simpler Algos to deal with specific tasks. You should also try to
change the parameters in your code, for example, the aggressiveness of limit price, order size, etc. For each
individual setting, run it at least 10 times with the same parameters. If you have time, run as many times
as possible to collect performance data under different market conditions.

Collect and Analyze your Trading Record


You should design your VBA code so that it takes record of important performance metrics for each
simulation. You can grab (but not limit to) volume, profit, VWAP and other summary statistics for your
data analysis. Advanced VBA coders can also keep a record of transactions and prices second by second,
and then generate measures like volatility and price impact. In the end, you have to relate the strategies’
performance to these market conditions and analyze if there is any factors that drive the results.

Some Advice
1. Start working on this project as soon as possible! I suggest you using at least one week to design
and test your algorithm, using at least one week to run your code and collect enough data, and using
at least one week to analyze data and prepare report and presentation.
2. Share the work load optimally. It is efficient to divide the project into parallel tasks and distribute
among the group members.
3. Balance the effort and time between designing the strategies and collecting/analyzing the data,
these two dimensions are equally important to the quality of this project.
Prepare the PPT Slides and Formal Presentation
In the last meeting of this semester, each group have to do a formal “sales presentation” for their strategies.
Imaging you are trying to get external investment for establishing a proprietary trading firm based on your
quantitative strategies, and your audience are potential investors trying to pick a group to invest.
You have to impress your audience with nice performance, attractive slides, and communication skills
during the presentation. Each group will have 10 minutes for the presentation (only clarification questions
allowed in this period), and then 5 minutes for open Q&A with the entire audience. The audience should
pay close attention to other groups’ presentation and tries to question their results.
You are not allowed to read from notes during presentation!

Grading and Related Policies


The total weight of this project is 50%. In which 30% goes to the quality of your code and writing report,
and 20% goes to your presentation.
Grading of code and report:
First of all, I will read and run your code and check if it works the same as described in your report. So
please make sure your code is ready to run before submission. If I find your code cannot perform the
functions claimed in the report at all, you will not get any points for this project.
I will value the creativity of your strategy and the depth of your code. I will also value the organization of
your report. In general, your goal is to design the best strategies within your skill set, and to present your
performance in a very informative way. Your report must be “reader-friendly”, and clearly summarizes the
strength vs. weakness of your strategies.
Grading of presentation:
We are going to grade the presentations “democratically”. Each group will grade all other groups on a scale
from 0 (lowest) to 10 (highest). As the instructor, I will also grade all the groups on the same scale. Then I
will collect all the grading, remove the lowest grade for each group, and calculate the average grade as your
performance.

Policies:
1. Learn how to work as a team is an implicit task for this group project. It is your responsibility to
make sure the group works together toward the goal, and group members contribute comparably to
the results. I will not intervene matters within your group, and I will not act on any complaint about
free-riding or so.
2. You must design your own strategies and write your own code, with the help of the VBA examples.
You are NOT allowed to out-source the task from the internet or anyone out of your group. Such
activities, once found, will result in a FAIL final grade for EVERYONE in the group.

S-ar putea să vă placă și