---
title: 'TWSIAM'
tags: lab
---
# AI and quantitative investing and trading
:::info
交大康明軒&鄧惠文教授研究團隊
- Created on 2021/7/12
- Latest update 2021/8/13
:::
---
#### tags: `AI` `FinTech` `machine learning`
---
## Overview: 8/20 Gathertown 海報報告
:::success
* [海報展演活動位置](https://gather.town/invite?token=Rscb12Av)
* 海報規格: 1920(W) x 1080(H)
* 10:00-12:00 為 poster 時段, 可以自由討論, 以下指定時段請該組同學一定要在自己 poster 前.
| 時間 | 組別 |
| -------- | -------- |
| 10:00-10:30 | 量子電腦投資組合最佳化 |
| 10:30-11:00 | 數位訊號與影像處理 |
| 11:00-11:30 | 數學建模與機器學習|
| 11:30-12:00 | AI 與量化投資交易|
:::
### 利用hackMD整理工作成果
:::success
1. [hackMD tutorial book](https://hackmd.io/c/tutorials/%2Fs%2Flink-with-github)
2. 用 powerpoint 做海報,挑個喜歡的模板,改裡面的內容。
:::
---
### 參與成員
| 姓名 | Email | HackMD | Backup |
| -------- | -------- | -------- | ---|
| 王宣瑋 |[:email:](tiffany.nycu01.sc09@nycu.edu.tw) | [:link:](https://hackmd.io/@tOcOYk2uSKyDq-IaFI8RNQ/HyjVdL3Tu) | [TWSIAM3](https://hackmd.io/WlNQU0WbRhC04l6gy55iOQ)
| 李國誠 |[:email:](kev776522.mg08@nycu.edu.tw)|[:link:](https://hackmd.io/@Kevin888e213/twsiam)| [TWSIAM4](https://hackmd.io/Q2UinjLxR_GEAzY_lwaK8g)
| 蔡博凱 | [:email:](bradytsai0112@gmail.com)|[:link:](https://hackmd.io/@bradytsai/TWSIAM)| [TWSIAM2](https://hackmd.io/hwpwYWsKRIusC-CLYtxVqA)|
| 戴晨洋 |[:email:](dai.chen.yang.1121@gmail.com)|[:link:](https://hackmd.io/@diamondSheep/HytDPKYTu)| [TWSIAM1](https://hackmd.io/7ecXrjdfT8GYETCQctYcPQ)|
---
### Infrustructure
|Index | Content|
|-----|-----|
| 1| Facebook messanger |
| 2 | Line|
| 3| Goolge meet|
| 4 | [Gathertown](https://gather.town/app/EtGSMfNb6dx3ZJiY/TengKangLab)|
| 5 | [Google shared folder](https://drive.google.com/drive/u/0/folders/0AKiiT88WqlK9Uk9PVA)|
| 6 | [HackMD](https://hackmd.io/@M795nx6MR4G-KeT3RD4pBQ/SJQmaftp_)|
---
### Time frame
* 10 am, Monday
* 10 am, Wednesday
* 10 am, Friday
1. Multichart
2. Fundamenatal analysis
3. Technical analysis
4. Chip analysis
5. Reinforcement learning
6. Final presentation
```mermaid
gantt
title Weekly plan
section Target
w1 :a1, 2021-07-12, 7d
w2 :after a1 , 7d
w3 :a3, 2021-07-26, 7d
w4 :after a3, 7d
w5 :a4, 2021-08-9, 7d
w6 :after a4, 7d
```
---
## Week 1. Multichart
---
### 目標
#### 1. multichart
認識multichart以及如何開戶
---
#### 2. Demo如何用multichart做回測交易。
請給一個**具體**的交易策略,請挑三隻,回測時間10年
- 指標: movAvg(均線),MACD,RSI
- 訊號: L, S, E, X
---
### Extension
1. Demo如何用multichart做實際交易
---
## Week 2. Fundamental Analysis
### 目標
#### 1. Summary of vedios
整理重要財務指標
1. [8 steps on how to analyze a stock](https://www.youtube.com/watch?v=mTqmOQLLl1U)
2. [NYU Professor](https://www.youtube.com/playlist?list=PLUkh9m2BorqnKWu0g5ZUps_CbQ-JGtbI9)
#### 2. Python project
Apply the arbitrage pricing theory to build a linear regression model to explain stock return. Consider three stocks of your interests and apply the [Fama-French three factor model](http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html) to the stock.
##### 2.1 EDA
For returns and factors, list descriptive statistics, pairwise scatterplots, heatmap of correlations. Need to summarize your results in a succinct way
Variable descriptions
| Stock/Fund | Descriptions |
| -------- | -------- |
| Text | Text |
Summary statistics
| Stock/Fund | mean | sd | skewness | kurtosis |min | median | max |
| -------- | -------- | -------- | -------- | -------- | -------- |-------- | -------- |
| Text | Text | Text |
##### 2.2 In-sample analysis
Show the estimated coefficients and $R^2$. The linear regression model is:
$$(r_t-r_f) = \beta_1 + \beta_2(r_m-r_f)+\beta_3 HML_t +\beta_4 SMB_t + e_t,$$where the error is assumed to be independently normally distributed $e_t\sim N(0,\sigma^2)$. Let $S_t$ the stock price at day $t$. $r_t$ is calculated by the formula of single return:
$$r_t = \frac{S_{t}-S_{t-1}}{S_{t-1}}. $$
Note that all the data is in daily basis.
To compare various models, we report $R^2$.
| Stock/Fund | $R^2$ |
| -------- | -------- |
| Model 1 | Text |
| Model 2 | |
##### 2.3 Model diagnostics
Calculate the residual, $\hat{e}_i$:
\begin{align}
\hat{e}_t&=& (r_t-r_f) - \hat{\beta}_1 - \hat{\beta}_{2}(r_m-r_f)-\hat{\beta}_3HML_t-\hat{\beta}_4 SMB_t.
\end{align}
We will check if residuals follow like iid normal.
| Type | Plot | What to check |
| -------- | -------- | -------- |
| 1 | time series plot of residuals | discernible patterns |
| 2| histogram of residuals| bell-shape|
|3| QQ plot of residuals| a straight line|
|4 | ACF and PACF of residuals | AR-MA effect|
|5 | ACF and PACF of squared-residuals, $\hat{e}_t^2$ | GARCH effect|
:::warning
*Things to improve*
1. Choose Amazon, Dow Jones index, SP500 index, Nasdaq index.
2. Show the time series plot of
*accumulative returns*.
3. In return-risk plan, we use *annualized
return (%)*:
yaxis: -10% to 35%
x-axis: 0 to 35%
4. Use the same period:
2018/5/29-2021/5/27.
5. **Because 3-factor model use percentage, we use percentage for the daily return.**
:::
### 延伸閱讀
#### 1. [Quatitative Trading](https://www.amazon.com/Quantitative-Trading-Algorithms-Analytics-Optimization/dp/1498706487) [下載點](https://1lib.net/book/3496321/3d73cc)
#### 2. Pythons examples
- Beginner of python (lec2) cheatsheat
- EDA (lec2) MLFinTech_EDA.ipynb
- Time series (lec4) lab_PortfolioManagement.ipynb
- Linear regression (lec6) MLFinTech_Regression.ipynb
---
## Week 3. Technical Analysis
### 目標
#### 1. Summary of a vedio and a paper
1. [The Only Technical Analysis Video You Will Ever Need... (Full Course: Beginner To Advanced), 3 millions 次, 1:17:34](https://www.youtube.com/watch?v=eynxyoKgpng)
2. [Foundations of technical analysis (2000), *Journal of Finance*](https://www.cis.upenn.edu/~mkearns/teaching/cis700/lo.pdf)
---
#### 2. Write you own python codes to test a trading strategy.
:::info
**Strategy A**: We use TWSE index from 2018/5/29-2021/5/27.
Indicator: MA (5, 20),
signal策略: 黃金交叉時做多, 死亡交叉時平倉
k = 30
:::
Assume 50,000 NTD, buy one 1 share each time.
1. col1: price
2. col2: MA(5)
3. col3: MA(20)
4. ma_sign
5. signal: 1= buy, 0 = no action, -1= sell
6. nShare: number of shares at current time
7. cash: cash at current time
8. MarketValue: 浮動市值 market value of stocks
9. TotalValue: tatal account value
10. accReturn (compared with TWSE accumulative return)
A simplified example
| Date | Price | Signal | cash | MarketValue | TotalVAlue | accReturn (%)|
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|1 | 16000 | 0| 50000 | 0 | 50000 | 0|
|2 | 15000| 1| 35000| 15000 |50000 | 0|
|3 | 15500| 0 | 35000 | 15500 | 50500 |1|
|4 | 17000| 0 | 35000 | 17000 | 52000 | 4 |
#### 3. Try a different strategy, strategy B.
自由發揮:可以考慮兩口買賣,或多口買賣。
Plot accumulative return among Strategy A, B, and TWSE.
#### 4. Question from 國誠
假設手上有5萬塊現金,在大盤2萬放空一張的話,過了五天大盤漲到2萬五。我實際上是虧五千,但market value用當天收盤計價會顯示25000,可是我實際賣掉只會拿回15000
| Date | Price | Signal | cash | MarketValue | TotalVAlue | accReturn (%)|
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| 1 | 18000| 0 | 50000| 0| 50000| 0|
| 2 | 20000 | -1 | 70000| -20000 | 50000| 0 |
| 3 | 25000 | 0 | 70000 | -25000 | 45000 | -10 |
| 4 | 25000 | 1 | 45000 | 0 | 45000 | -10|
#### My solution(by國誠):
$$\mbox{Teng's total value} = \mbox{cash} + \mbox{market value}.$$
1.
#### My solution(by國誠):
$$\mbox{total value} = \mbox{cash} + \mbox{margin} + \mbox{unrealized profit}.$$
| Date | Price | Signal | Cash | margin (保證金) | Market Value | Unrealized Profit | Total Value |
| ----- | ----- | ------ | ----- | --- | ------------ | ----------------- | ----------- |
| Date1 | 18000 | 0 | 50000 | 0 | 0 | 0 | 50000 |
| Date2 | 20000 | -1 | 30000 | 20000 | 20000 | 0 | 50000 |
| Date3 | 25000 | 0 | 30000 | 20000 | 15000 | -5000 | 45000 |
| Date4 | 25000 | 1 | 45000 | 0 | 0 | 0 | 45000 |
### 延伸閱讀
- [Introduction To Technical Analysis for CFD And Forex Trading](https://www.youtube.com/watch?v=aePv-bo18QU)
- [Introduction to Technical Analysis for Beginners, 1,117,082次, 41:34]
---
## Week 4. Chip Analysis and Reinforcement learning
### 目標
1. Summarize 籌碼分析
2. Specify an indicator and propose a strategy and do backtest. 陽明 2019/1/1 - 2021/7/31.
三大法人: 外資,投信,自營商。
1. 陽明accumulative return
2. shares in hand
3. 500萬,keep 整數張(一張1000股)。
### 閱讀資料
1. [籌碼分析,市場先生](https://rich01.com/blog-pos-16/)
2. [8分鐘搞懂籌碼分析:如何搭上千張大戶順風車](https://www.youtube.com/watch?v=WHsaZN-DETs)
3. [8分鐘搞懂籌碼分析:分點資訊,我找到了主力的蹤跡](https://www.youtube.com/watch?v=L4uJTblDM5w)
:::info
input: price $p_t$, volume $v_t$
signal: $s(p_t, v_t)$
strategy: $a(s(p_t, v_t), \theta)$: +\theta, -1, 0.
portfolio value at $t$: $V_t$
Target
$$\max_{ s, a, \theta} \quad V_T $$
:::
:::warning
*** 陽明
*** 台積電
*** 富邦
*** 雄獅
國誠:
signal:
$$p_{t+h}| max(c_{t-1},c_{t-5}), $$
action: +1, -1, 0
Technical: $p_t$, $v_t$,
Chip: $c_t$
Technical + chip
MV(3) = (p_{t-1}+p_{t-2}+p_{t-3})/3
|Strategy |Signal| Action|
| -----| -----| -----|
|1 | MV(3) |$I_{MV(3) > MV(5)}$ |
博凱:
$$p_{t+h}| I_{c_{(t-1)}>0} I_{c_{t-3}>0}, $$
晨洋
signal: $c_{t} > threshold$
:::
---
## Week 5. Reinforcement learning
### 目標
:::info
1. Explain what is reinforcement learning
2. Reformulate a strategy under the framework of reinforcement learning. And do a backtest.
:::
### Reference
:::info
1. [Markov Decision Process, Wiki](https://en.wikipedia.org/wiki/Markov_decision_process)
2. [Reinforcement learning, Wiki](https://en.wikipedia.org/wiki/Reinforcement_learning)
3. [李宏毅](https://www.youtube.com/watch?v=kk6DqWreLeU)
4. [Reinforcement Learning for Trading Practical Examples and Lessons Learned by Dr. Tom Starke](https://www.youtube.com/watch?v=c0gpgCyjTM8)
5. [The mathematician who cracked Wall Street | Jim Simons](https://www.youtube.com/watch?v=U5kIdtMJGc8&t=324s)
:::
### Summary
#### 1. Markov chain*
:::info
Let $S$ denote the state space. Let $s_t$ and $a_t$ denote a random variable at time $t$, and let $s$, $s'$, $a$, denote realizations. At each time step, the probability of moving to state $s'$ from state $s$ can be characterized by a transition probability matrix
$$P(s, s') = Pr(s_{t+1}=s'|s_t=s).$$
For example, let $S = \{1,2\}$ to denote a state space of two states. A transition probability matrix is
$$\left[\begin{matrix}0.3 & 0.7 \\ 0.1 & 0.9\end{matrix}\right].$$
:::
#### 2. Markov Decision Process (MDP)
:::info
A MDP is a 4-tuple ${\displaystyle (S,A,P_{a},R_{a})}$, where:
1. $S$: a set of states called the state space,
2. $A$: a set of actions called the action space,
3. $P_{a}(s,s')=\Pr(S_{t+1}=s'\mid s_{t}=s, a_{t}=a)$: the probability that action $a$ in state $s$ at time $t$ will lead to state $s'$ at time $t+1$,
4. $R_{a}(s,s')$: the immediate reward received after transitioning from state $s$ to state $s'$, due to action $a$.
For simplicity, we assume the transition probability is independent of the action,
\begin{align}
P_{a}(s,s')&=\Pr(s_{t+1}=s'\mid s_{t}=s, a_{t}=a)\\
&= \Pr(s_{t+1}=s'\mid s_{t}=s)\\
&= P(s,s').\end{align}
:bear: We need to find a policy $\pi(\cdot)$ that maps $s$ to $a$, to maximize
$$E\left[\sum _{t=0}^{\infty }{\gamma ^{t}R_{a_{t}}(s_{t},s_{t+1})}\right],$$
$$s_{t+1}\sim P(s_{t},s_{t+1})$$
where $\gamma$ is the discount factor satisfying $0\leq \ \gamma\leq 1$.
:::
:::success
*Toy example 1: (MDP)*
陽明海運,only 1 period, two two state
1. S = {1 = 漲, 2 = 跌}
2. A ={1, -1}, 1 = 買,-1 = 賣.
3. Transition probability:
$$ Pr(s'|s) =\begin{pmatrix}0.570 & 0.430 \\ 0.516 & 0.484 \end{pmatrix} $$
4. Reward (勝的次數)
| $a$ | R_a(s, s') |
| -------- | -------- |
| 1 | $R_1(1,1) = 1$, $R_1(1,2)=0$ |
| -1 | $R_{-1}(1,1)=0$, $R_{-1}(1,2) = 1$ |
5. Policy:
不管怎樣就是買:
$\pi_1$:
$$\pi_1 = \begin{pmatrix}1 & 0 \\ 1 & 0 \end{pmatrix}$$
$\pi_2$: 不管怎樣都賣
$$\pi_2 = \begin{pmatrix}0 & 1 \\ 0 & 1 \end{pmatrix}$$
$\pi_3$: 看到漲就買,看到跌就賣
$$\pi_3 = \begin{pmatrix}1 & 0 \\ 0 & 1 \end{pmatrix}$$
$\pi_4$: 看到跌就買,看到漲就賣
$$\pi_4 = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix}$$
6. Return: Start from $t$ = 2, assume we only trade for consecutive 8 days. Fake stock prices
action = 1, 今天盤後用收盤價買,明天盤後用盤後價賣調。
$\pi_1$
|Time| 1| 2| 3| 4| 5| 6| 7| 8| 9|
|---|-|-|-|-|-|-|-|-|-|
|price| 10| 12| 13| 14| 20| 15| 20| 18| 21|
|State| Na| 1| 1| 1| 1| 2| 1| 2| 1|
|Action| Na | 1 | 1| 1| 1| 1| 1|1|1|
|Expected Reward| Na | 0.57 | 0.57 | 0.57 | 0.57 | 0.516 | 0.57| 0.516 | 0.57|
|Expected Return | Na| 0.57 | 1.14 | |
|Realized Reward | Na | 1 | 1 | 1 | 0 | 1 | 0 | 1| Na |
|Realized Return | |
:heart: Complete these tables for the four strategies ($\pi_1$, $\pi_2$, $\pi_3$, $\pi_4$)
:heart: Complete these four tables using the real four stocks 陽明 (start from day 2 till the last day)
:star: try a 混和型策略
:star: try a more realistic state space to include the idea of moving average 均線
:::
:::info
*3. Reinforcement learning*
Terminologies: Agent: the investor
1. $S$: state space, environment
2. $A$: action space,
3. $R$: reward
4. $P(s'|s, a)$: transition probability
5. $\pi(a|s)$: a policy
\begin{align}
&\pi :A\times S\rightarrow [0,1],\\
&\pi (a|s)=\Pr(a_{t}=a\mid s_{t}=s)
\end{align}
6. Return: $U_t = R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+\cdots = \sum_{i=0}^{\infty}\gamma^{i}R_{t+i}$.
7. Action-value function: $Q_\pi(s_t, a_t) = E[U_t|s_t,a_t].$
8. Optimal action-value function: $Q^*(s_t,a_t) = \max_\pi Q_\pi(s_t,a_t).$
9. State-value function: $V_\pi(s_t) = E_A[Q_\pi(s_t, A)]$.
:::
:::success
*Toy example 2 (reinforcement learning)*
$s_t = 1$ if $p_t>p_{t-1}$
1. $S = \{1, 2\}$: 1 = 漲, 2= 跌
2. $A = \{1, 2, 3\}$: 1 = 賣一張,2 = 不動,3 =買一張。
3. $R_t = \{1, 0, -1\}$: 1 = 當下為勝,0 = 不動, -1 = 當下為負0
$R_1(1|1) = 1$, $R_1(2|1) =-1$, $R_1(1|2) = 1$, $R_1(2|2) =-1$,
$R_2(1|1) = 0$, $R_2(2|1) = 0$, $R_2(1|2) = 0$, $R_2(2|2) = 0$,
$R_{3}(1|1) = -1$, $R_{3}(2|1) = 1$, $R_{3}(1|2) = -1$, $R_{3}(2|2) = 1$
4. Our policy is indeed a matrix: $$\pi =\begin{pmatrix}\pi_{1,1} & \pi_{1,2} & \pi_{1,3} \\
\pi_{2,1} & \pi_{2,2} & \pi_{2,3}\end{pmatrix}$$
We have constrains: $\pi_{i,j}\geq 0$, $\sum_{j=1}^{3}\pi_{i,j}=1$.
:::
---
:::success
RL.v2 (2021/8/13)
| No | Column 2 | Column 3 |
| -------- | -------- | -------- |
| 1 | $S$ | How do you modify your states? 五個(大漲,小漲,平盤,小跌,大跌)。 |
| 2 | $A$ | -1: 賣, 0: 不動, 1: 買 |
| 3 | $R$ | 考慮兩種: 勝率,投資總報酬 |
| 4 | $P(s,s')$ | |
:::
## Week 6. Final presentation
### 目標
> Multiple choice 單選下面一個路線即可
1. Propose a trading strategy and convince the public that it will work
2. Extensive empirical analysis on an existing strategies.
Things to write in your hackMD.
:::info
1. State:
1. Plot the histogram of the return (or price difference)
2. Define the 5 states
ex. 平盤: -0.2sig <= return <= 0.2sig
3. Report the marginal distributions of the five states
4. Report transision probability matrix
2. Action:
3. Reward:
:::
---
## Appendix
---
### Appendix A. Supervised learning
:::info
Multiple linear regression:
$$y = \beta_0+\beta_1 x_1 + \cdots + \beta_p x_p + \varepsilon = f(\beta, x) + \varepsilon, $$
where $f(\cdot)$ is a linear function.
:::
:::info
Machine learning (supervised-learning) generalizes multiple linear regression using a non-linear function $f(\cdot)$. Examples:
1. neural network
2. regression tree
3. support vector machine
4. boosting
:::
---
### Appendix B. Mathematical formulation of quantitative Trading
:::success
Suppose that, at time $t$, $x_t=(x_{t,1},\ldots,x_{t,p})$ denotes the explanatory variable that can predict the price of an asset $y_t$. Suppose the original value is $V_0$ in NTD. We would like to set up a strategy, $\theta_t$, at time $t$, so that the account value equals the cash value plus the market value:
$$V_t = (V_0 - \theta_t y_t) + \theta_t y_t $$
|Date | price | Cash account | \theta | Market Account | Total value|
|1 | $p_1$| $V_0$ | 0 | 0 |
|2 | $p_2$ | $V_0 - p_2$ | 1 | $p_2$ |
|3 | $p_3$| $V_0-p_2$ | 1 | $p_3$ | $V_0-p_2 + p_3$ |
|4 | $p_4$| $V_0-p_2$
If it is a margin trade, we modify the above setting as follows. Then, the strategy
$$\theta_t = a(s(p_{t-1}, v_{p-1})). $$
:::