The Business Plan, the Entrepreneur and the Junior Investment Analyst

By , July 30, 2014 3:53 am

It’s a delicate ritual.

Ideally, no-one does the business plan better than the entrepreneur/owner. In reality, most business owners from emerging markets couldn’t be bothered with a written plan; they feel comfortable with the business idea in their head. So, it is naturally the job of the JIA to write the business plan.

Here, the JIA who most likely come from finance/economics background may need to rewrite vision & mission, perform market research, technical product evaluation, strategic planning, develop sales & distribution strategy, marketing plan, human resource capability grading, business risk management, define new KPIs, and a plethora of things s/he never learned during the last internship, nor finance school.

However detailed and elaborate a plan is, I found from my experience the essence of an effective business plan boils down to the following points:

  1. Describe the problem and the product in one slide.
  2. Describe the business model in one diagram.
  3. List the key competitive advantages in 3 sentences.

Business plans are staged in milestones; milestones depending on the business model, R&D, market, and when certain product/service/practice is legalized. Why? Because for many investments, committed capital is only disbursed after the firm has reached a milestone.

The difference between the business plan done for investors and the plan used for operations is the former is usually quarterly and the later weekly.

It is normal to temporarily focus more on industry KPIs in the short-term than on standardized accounting benchmarks, but it will catch up when the auditors come.

Most SME business owners only want to deal with investors and investment managers themselves without involving their managers. However, I found effective CEOs delegate. For example, the Sales plan is best done when the JIA sits down with the Business Development Director. The benefit of such practice is two folds. One, the Sales Lord knows best. Second, when the Business Development Director is involved, s/he is formally committed to the plan.

Things will never work according to plan, but a plan is still needed nevertheless because without a plan it can get even more chaotic.

Lastly, students who participate in business plan competitions may find this note not very useful for the simulated environment the competition takes place.

Tutorial cơ bản: phát triển và sử dụng Value-at-Risk

By , May 9, 2014 2:46 pm

 

Viết theo yêu cầu sếp ACB và Techcombank

1. Nhu cầu sử dụng

Tình hình là Tổng công ty Đầu tư và kinh doanh vốn nhà nước SCIC có dùng, vài ngân hàng thương mại dùng.

Cần tính VaR cho:

* Danh mục cổ phiếu (equity portfolio)

* Danh mục công cụ nợ (fixed-income portfolio) phụ thuộc lãi suất (interest rate risk)

* Fixed-income portfolio phụ thuộc rủi ro tín dụng (credit risk)

* Ngoại hối Fx

* Các sản phẩm money markets

* Hàng hoá commodities

* Vàng (đủ quan trọng để tách khỏi hàng hoá), vì tính pháp lý của vàng vật chất ở VN nên lấy tạm hợp đồng vàng giao sau (gold futures) để xét

* Các công cụ phái sinh (derivatives)

2. Sự cân bằng khi phát triển mô hình VaR

Tính toán VaR liên quan mật thiết đến 2 thứ quan trọng là chôn vốn (capital lockup) vào quỹ (reserve / provisions), và information signal.

Thế nên phát triển mô hình tính VaR phải cân bằng được độ an toàn cho phép nhưng không ước lượng quá mức (overestimate).

3. Cách tác giả tiếp cận tính VaR

Có 4 cách tính VaR chính cho equity (1) tuyến tính linear (2) complementary error function erfc (3) sử dụng dữ liệu hiệp phương sai quá khứ historical variance-covariance (4) giả lập tương lai dùng Monte Carlo engine.

Trước khi làm bất cứ gì thì viết một hàm dùng web spider để crawl và SQL để lấy dữ liệu giá mỗi ngày đưa vào array p[n].

Sau đó tính array r[n-1].

a. Cách tuyến tính linear

Cái này cơ bản nhất, chạy regression để có volatility, lấy critical value từ lognormal distribution (hoặc normal distribution) rồi tính VaR.

Pseudo-code như sau:

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);

b. Complementary error function

Đầu tiên viết hàm tính tích phân để ra giá trị erfc

Sau đấy đổ dữ liệu thị trường vào

Đặt a = số ngày giao dịch trong năm

VaR được tính từ:

Pseudo-code cho cách này

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);

}

c. Normality using historical variance-covariance

Đầu tiên viết các hàm sau:

Nhân ma trận

Chuyển vị (transpose) ma trận

Cách này tính variance-covariance matrix, rồi dùng quan hệ đó để tính VaR như sau:

Đoạn pseudo-code để thực thi

for (i = 0 ; i < numberOfAssets1 ; i++)

{

weight[i][0] = securityValue1 / (pdt[startPeriod1][i]);

}

file = fopen(fileName,"a");

for (i = 0 ; i < a ; i++)

{

                pdtdfu = pdtdf[(startBack1+i):(startPeriod1+i)][];             // price change

                pdtdfuv = variance(pdtdfu);       // variance of price change, sigma hat

                pdtdfuvf = weight’ * pdtdfuv * weight; // xT * sigma * x

                meanp = meanc(pdtdfu);

                var[0][0] = (-1 * horizon) * weight’ * (meanp’) – (zValueOnePercent * sqrt(horizon*pdtdfuvf));

                realv[0][0] = ( (pdt[startPeriod1+i][]) * weight) – ( (pdt[startPeriod1+i+horizon][]) * weight );     // value at T – value at T+n

                efficiency[0][0] = -realv[0][0] / var[0][0];

                fprint(file, var[0][0],"\t",realv[0][0],"\t",efficiency[0][0],"\n");

}

fclose(file);

d. Giả lập Monte Carlo simulation

Cách này giả lập một số lượng lớn kịch bản sẽ xảy ra trong tương lai. Vì dùng lập trình nên có thể ra hàng tỷ tình huống cũng được. Đặt số tình huống là S.

Một tỷ tình huống sẽ cho ra một tỷ giá trị danh mục giả định trong tương lai. Sau đó sắp xếp một tỷ giá trị này thành histogram.

Khi này, VaR sẽ tìm được bằng cách lấy quantile α. Critical value fα* sẽ nằm giữa giá trị thứ αS và αS+1.

Pseudo-code cho cách này

for (i = 0 ; i < numberOfAssets1 ; i++)

{

                weight[i][0] = securityValue1 / (pdt[startPeriod1][i]);     // value holding for each security

}

file = fopen(fileName,"a");

for (i = 0 ; i < numberOfTradingDays ; i++)             // one year

{

                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)][];        // add simulated price (delta). P*(1,T+n)

                                }

                                portrlv[b][0] = weight’ * (portrl)’;             // realised loss value = realised loss * weight

                }              // after b loop, b values stored to portrlv

                portq = quantilec(portrlv, mq);  // use quantilec command to calculate quantile

                var[0][0] = ((pdt[startPeriod1+i][]) * weight) – portq[0][0];          // weight * price – quantile

                realv[0][0] = ((pdt[startPeriod1+i][]) * weight) – ((pdt[startPeriod1+i+horizon][]) * weight);        // weight & price T – weight * price T+10 (next 10 days)

                efficiency[0][0] = -realv[0][0] / var[0][0];

                fprint(file, var[0][0],"\t",realv[0][0],"\t",efficiency[0][0],"\n");

                }

fclose(file);

}

e. Fixed-income VaR on interest rate

Đối với fixed-income thì quan hệ chính là từ yield curve. Trong đó quan tâm short term, medium term và long term rates.

Fixed-income cũng dùng Monte Carlo được.

f. Derivatives VaR

Cách ít tốn kém để dùng VaR cho derivatives là dùng Greeks, cụ thể là Δ và Γ

Quan hệ giữa thay đổi trong giá trị của underlying asset δS và giá của derivatives contract δV là

Ví dụ đối với Call Option và Put Option lần lượt như sau:

Biến thiên của portfolio:

Biến thiên của giá Option:

Lấy đạo hàm

VaR lấy lower quantile mà ra.

4. Đánh giá mô hình

Linear và erfc có vấn đề là thiếu dynamic.

Không cần chạy test, chỉ cần nhìn tên mô hình Historical data là biết mô hình này sẽ trục trặc ngay chính lúc cần nó để quản trị rủi ro nhất là khi đứng trước biến động lớn.

Simulation quá nhạy với biến động, tuy nhiên vì vậy mà khá hiệu quả với thị trường. Simulation còn không giả định quan hệ quá khứ, cũng không giả định phân phối distribution.

a. Back testing

Cách ít động não nhất để back testing là download dữ liệu xưa nhất có thể, ví dụ từ khi IPO của các stock, hoặc 50 năm lịch sử lãi suất. Để mô hình của mình chạy trên dữ liệu, nếu số violation vượt quá quy định của Basel (1%) thì chém ngay.

Sau đó làm gì thì là một sự tinh tế. Có thể đổi mô hình, có thể cải tiến mô hình manually (nhưng hay hơn là build in một Artificial Intelligence engine để nó tự sửa chính nó), hoặc đổi GIẢ ĐỊNH!

b. Stress testing

Nếu mô hình vẫn phụ thuộc vào quan hệ quá khứ hoặc phụ thuộc giả định distribution thì buộc phải tự chọn dữ liệu từ các đợt sập sàn (market crashes), khủng hoảng, sốc kinh tế (economic shock).

Đối với stress testing thì tác giả thích dùng simulation hơn vì có thể tăng ga cho engine đến kịch kim và test được rất nhiều tình huống. Khi này, stress testing sẽ làm một multivariate model, thảy vài quả bomb vào các driving factor xem có thoả được Basel không. Nếu muốn vẽ chart đẹp thì làm multi-dimensional sensitivity analysis luôn.

Nguyên tắc là vậy thôi. Vấn đề thật sự là interpret kết quả thế nào, và làm gì với nó mà không bị rời mắt khỏi mục tiêu là giảm capital lockup.

5. Vấn đề cần quan tâm khi sử dụng VaR

* Quan hệ giữa các VaR cho các portfolio khác nhau, vì chúng không hoàn toàn độc lập (autocorrelated).

* Thừa kế mô hình và không hoàn toàn làm chủ nó.

* Thay đổi pháp lý.

* Tính VaR chỉ là vấn đề kỹ thuật, Quant nào cũng làm được. Vấn đề thuyết phục tổ chức sử dụng VaR, và các phức tạp phát sinh sau đó.

* Nhân lực quản trị VaR và các công cụ tương tự: tối thiểu Master in Financial Engineering, hoặc combo Master in Finance + Bachelor in Engineering. Số người làm được thì không ít, nhưng không đủ cung ứng cho các ngân hàng, tổ chức tín dụng, công ty đầu tư ở VN.

Tutorial cơ bản: Smart Beta là gì

By , April 27, 2014 5:58 pm

Disclaimer: Tác giả vừa làm giảng viên ĐH vừa làm quản lý đầu tư nên bài này không hoàn toàn academic mà có nhiều yếu tố từ thị trường chưa qua academic peer review.

Viết theo yêu cầu sếp Goldman Sachs.

1. Ứng dụng của β trong hoạt động quản lý đầu tư tổ chức (institutional investment management)

β được dùng rộng rãi trong các công ty đầu tư cho 2 mục đích lớn: tính rủi ro, và dùng để thiết lập chiến lược đi theo thị trường.

Ứng dụng của chiến lược dùng β là phân bổ trọng số (weight) vào các danh mục (portfolio) tuân thủ 2 hướng đi chính:

i. Tập trung vào các mã β ổn định. Không nhất thiết phải chọn β gần 1.

ii. Phân bổ weight của portfolio mình gần với weight của các mã trong index lớn mà mình muốn theo. Điều này đảm bảo portfolio của mình sẽ dịch chuyển gần với dịch chuyển của index.

Một cách làm là: dự báo vĩ mô => dự báo toàn thị trường, mà các indices là proxies của thị trường => dự báo xu hướng các portfolio và các mã trong portfolio.

β là theo hướng passive management, cho rằng thị trường hiệu quả (efficient market) và chọn cách đi theo thị trường.

2. Những vấn đề nảy sinh khi dùng β theo cách này

i. Cách tính β. Có vài cách tính β ra kết quả hơi khác nhau. Ngoài ra, chọn thời gian cắt dữ liệu khác nhau sẽ ra β khác nhau.

ii. β để sót mất các thông tin gì? Có một nghiên cứu kết luận rằng β dự đoán được khoảng 80% trong điều kiện thị trường bình thường. Fama French là công trình nổi tiếng nhất cải thiện vấn đề này, đem lại Nobel 2013.

iii. Phân bổ weight của portfolio mình gần với weight của index có hiệu quả không? Đặt ra vấn đề này chính là thấy khói mới đi tìm lửa.

Đánh giá lại cách phân bổ này thì thấy một vấn đề fundamental là time drag. Beta stock không chỉ đi theo thị trường, mà còn tương hỗ đẩy thị trường vì stock chính là một phần trong cách tính index. Khi tìm được các stock đang dẫn dắt thị trường để đổ weight vào nó thì chính ra stock đó đã đang tăng đến độ overpriced rồi. Ngược lại, ít chú ý đến các stock đang nằm yên chưa động tĩnh gì trong khi chính nó sẽ dẫn dắt thị trường trong tương lai gần.

3. Một lựa chọn khác với β: alpha α

Mô hình đơn giản nhất đụng đến α là Single Index Model.

α đi theo hướng active management, cho rằng thị trường không hiệu quả (inefficient market) và chủ động quản lý portfolio để tìm ra các lỗi định giá (mispricing) của thị trường mà đánh.

Vì α chủ động nên phí quản lý tài sản cao. Vấn đề nặng hơn phí quản lý tài sản là rất khó để một người quản lý đầu tư có α dương trong thời gian dài vì thị trường thay đổi liên tục, không chiến lược nào dùng được quá lâu.

4. Smart β

Smart β là sản phẩm của các công ty quản lý đầu tư hướng đến giải quyết các vấn đề ở 2iii và 3. Giải quyết (3) bằng cách không chơi active, và giải quyết 2iii bằng cách cố gắng cải tiến weight.

Smart β thay đổi cách phân bổ weight vào portfolio, không chỉ đi theo giá trị vốn hoá (market capitalization) nữa. Về mặt nguyên tắc, bất kỳ cách phân bổ weight có tính toán nào cũng có thể gọi là smart β, còn khả năng của từng mô hình thì phải đánh mới biết được.

Vài yếu tố các mô hình smart β tính đến:

  • Phân bổ đều equal weight
  • Phân bổ theo các chỉ số fundamental (giá trị sổ sách book value, cổ tức dividends, doanh số revenue, dòng tiền cash flow). Theo fundamental kiểu này có không dưới 30 chỉ số có thể tính đến, dùng chung với các bộ chỉ số asset pricing được.
  • Phân bổ theo nhóm rủi ro risk profile cluster
  • Phân bổ theo phương sai nhỏ nhất (minimum variance) dựa trên tính toán variance-covariance matrix of returns
  • Phân bổ theo subadditive, dùng diversification
  • Phân bổ theo các alternative indices, tức là giả định smart indices rồi cứ bám theo

5. Các vấn đề cần xem xét về smart β

Phân bổ kiểu nào lợi nhất? Muốn biết thì phải test, mà test xong là cơ hội qua mất rồi và tương lai sẽ không giống quá khứ.

Tìm được smart β phù hợp rồi thì chắc gì nó sẽ dùng được hoài.

Tái cơ cấu danh mục (rebalancing) để đi theo weight mục tiêu phát sinh chi phí giao dịch (transaction cost), bao gồm: phí môi giới (brokerage fee) khi phải rebalancing portfolio liên tục, thuế thu nhập, phí cho sở giao dịch chứng khoán (exchange fee) thường được tính vào phí môi giới, chi phí cơ hội (opportunity cost), và chi phí khi chính các trade của mình đẩy thị trường theo hướng bất lợi cho mình.

Acquire công ty smart β thì chắc là lấy 3 thứ: mô hình, khách hàng, và momentum.

Flappy Bird through the eyes of a financier

By , February 15, 2014 7:01 pm

Since I believe Flappy Bird is a Black Swan case, I tried not to give an opinion about the game. What’s more I don’t think I’m qualified to give comments on mobile games since I had never coded a proper game (besides projects for my bachelor).

But an investor recently asked me about Flappy Bird and I felt I had to give an opinion anyhow. Attracting investment is my job, after all.

So here it is, Flappy Bird through the eyes of an investment person.

Is it easy to create a game like Flappy Bird?

No, Dong Nguyen claimed he coded the game singly-handedly in 3 days. But we never got to see the conceptual process behind the games he creates.

Is it easy to create mobile games?

No. It took Rovio close to a decade of resilience before Angry Birds.

Mobile games are very hard to make because

  1. All gameplay, visual, audio need to be better than good.
  2. Technical constraint: mobile phone resources cannot afford being wasted by unoptimized code.
  3. Fragmentation of Android: there are so many models with different screen sizes it is very hard to make games or apps that work on all models.
  4. The battle to the top of the app store: it is a Big Head, only a few top games attract 95% attention. Marketing to reach the top is costly and uncertain.

Why is Flappy Bird so successful?

Luck, a typical Black Swan case. But besides luck let me give you the best explanation I can think of in one diagram.

Besides, Dong Nguyen already explained his secrets on his Twitter.

What about marketing?

I personally believe Dong Nguyen’s story that no pre-burst marketing was involved. It was all viral via influencers and peer recommendation.

Why aren’t clones successful?

Clones are only successful if they are local clones: local language, local community. All Facebook and Twitter clones are dead except Chinese clones. Mobile games are nothing local.

But why can’t people just play the clones now that Flappy Bird is dead?

I guess I have to blame authenticity and originality. Everyone talks about Flappy Bird, if you play a clone, you may fear being judged.

Secondly, it is hard to replicate every exact detail of the game. Horizontal spacing, vertical spacing, movement, arc, the algorithm of sewer generation, haptic response. One tiny subtle difference and the whole experience is altered. It is just not the same.

What the case of Flappy Bird means to me, personally

By , February 12, 2014 10:56 am

Cathexis

The case is a validation of the notion that success is stochastic, or in other word more random than we want to believe.

Procint for success, believed by many, is not as random. It takes decades of resilience, self-improvement and blind hope.

Anti-nikhedonia

The opposite, unfortunately, is not true. Years of hard work and wishful thinking don’t necessarily guarantee success.

Manqué

In my humbly short career of investment management, I’ve lost count of the times being humiliated by entrepreneurs. But this fanatical case of bootstrap is doubtlessly a prodigious insult.

Extramundane

The worlds beyond Blizzard, Square-Enix, Valve and EA is a vast uncharted and barbaric universe.

Gawdelpus

Nobody can really be certain about j-u-s-t a KPI. Right, the analyst is left alone in the jungle again, helpless.

Panorama Theme by Themocracy