## 10 August 2017, Index Futures on HOSE

Trước giờ Hợp Đồng Giao Sau Chỉ Số chính thức đi vào hoạt động.

1. VN30 đầu ngày 741.36, cuối ngày 743.42.

Trần – Sàn – Tham Chiếu – Cuối Ngày

VN30F1708 – 811 – 705 – 758 – 745.9

VN30F1709 – 809.3 – 703.5 – 756.4 – 749.1

VN30F1712 – 804.7 – 699.5 – 752.1 – 755

VN30F1803 – 800.4 – 695.8 – 748.1 – 758

Open Interest dịch là Khối Lượng Tích Luỹ dễ hiểu.

2. Ngoài áp lực chốt lãi T+ equity thường có thì giờ còn có áp lực đến ngày đáo hạn (maturity / expiry) của Futures.

3. Value at Risk VN30 Futures theo yêu cầu Basel III = VND 3,696,661

Rất thấp do implied volatility.

Có 4 phương pháp cổ điển tính VaR: (1) Linear Probabilistic (2) Complementary Error Function erfc (3) Normality (4) Monte Carlo Simulation. Pseudo-code cuối bài.

4. 3 yếu tố ảnh hưởng chính đến VN30 Futures: lãi suất, dividend yield, thời gian đến đáo hạn (time to maturity).

Mối liên quan đơn giản nhất là: F = Se^[(r-q)t]

VN30 = SIGMA(PiSifi) / Cap(i) * Zi

Tử số là tổng giá trị vốn hoá của các cổ phiếu tham gia sau khi điều chỉnh free float.

Z: điều chỉnh trường hợp vượt quá tỉ trọng cho phép.

5. Dividend yield hiện tại đang là 2.81%.

6. PE 12.88

7. Vốn hoá VND 1,147,725,989,265,190

Index Point đang được thị trường định giá VND 1,548,135,843,942

8. Dữ liệu lịch sử VN30:

Mean = 0.00048807

Standard Error = 0.000283514

Median = 0.0007096

Mode = 0

Standard Deviation = 0.013124581

Sample Variance = 0.000172255

Kurtosis = 1.920261699

Skewness = -0.060551087

Range = 0.103634608

Minimum = -0.056110646

Maximum = 0.047523962

Count = 2143

Confidence Level (99.0%) = 0.000730935

Mean dương là do horizon bias.

9. Sau 17 năm, lần đầu tiên chúng ta có sản phẩm đánh xuống (Bearish) hợp pháp và công khai và chính thức.

Dùng dữ liệu lịch sử chắc chắn bị chúng khinh là chưa chắc dự đoán được tương lai. Mà lỡ không biết làm thế nào cho hay mà đang bị dí báo cáo thì có nhiêu sống bấy nhiêu thôi.

/** Linear Probabilistic */ for (i = 0 ; i < n-1 ; i++) { r[i] = p[i+1] / p[i] - 1; sumr += r[i]; } muyr = sumr / n; for (i = 0 ; i < n-1 ; i++) { varianceNum += (r[i] - muyr) ^ 2; } vol = sqrt(varianceNum / (n-2)); VaR = getCriticalValue(confidence) * sqrt(multiplyMatrix(multiplyMatrix(w[n]*vol[n], varCov[n][n]),transposeMatrix(w[n]*vol[n]))) * sqrt(BaselForecast / tradingDays); /** Complementary Error Function */ for (i = 0 ; i < a ; i++) { while(probability[i][0] < p) { probability[i][0] = 1/2 * erf((rmean[i][0] + ln(value) - ln(value - var[i][0])) / (volatility[i][0] * sqrt(2 * 1))); var[i][0] += 1; } var[i][0] = var[i][0] * (goBackDays - 1); } /** Normality */ for (i = 0 ; i < numberOfAssets1 ; i++) { weight[i][0] = securityValue1 / (pdt[startPeriod1][i]); } for (i = 0 ; i < a ; i++) { pdtdfu = pdtdf[(startBack1+i):(startPeriod1+i)][]; pdtdfuv = variance(pdtdfu); pdtdfuvf = weight' * pdtdfuv * weight; meanp = meanc(pdtdfu); var = (-1 * horizon) * weight' * (meanp') - (zValueOnePercent * sqrt(horizon*pdtdfuvf)); realv = ( (pdt[startPeriod1+i][]) * weight) - ( (pdt[startPeriod1+i+horizon][]) * weight ); efficiency = -realv / var; fprint(file, var,"\t",realv,"\t",efficiency,"\n"); } /** Monte Carlo Simulation */ for (i = 0 ; i < numberOfAssets1 ; i++) { weight[i][0] = securityValue1 / (pdt[startPeriod1][i]); } for (i = 0 ; i < numberOfTradingDays ; i++) { for (b = 0 ; b < repeatB ; b++) { portrl = pdt[startPeriod1+i][] + pdtdf[startBack1+i+(ranu(1,1)*scaleMultiplier)][]; for (j = 0 ; j < repeatDeltaP ; j++) { portrl += pdtdf[startBack1+i+(ranu(1,1)*scaleMultiplier)][]; } portrlv[b][0] = weight' * (portrl)'; } portq = quantilec(portrlv, mq); var = ((pdt[startPeriod1+i][]) * weight) - portq[0][0]; realv = ((pdt[startPeriod1+i][]) * weight) - ((pdt[startPeriod1+i+horizon][]) * weight); efficiency = -realv / var; fprint(file, var,"\t",realv,"\t",efficiency,"\n"); }