Archive for » November, 2009 «

Sunday, November 29th, 2009 | Author: salbang

이번에는 Convex Quadratic Programming(CQP)에 대해서 다뤄보려고 한다. CQP란 2차 다항식의 목적함수에 선형 제약조건을 갖는 최적화 문제를 말한다. 먼저 어떻게 생긴 문제인지 살펴보도록 하자. 모든 등식은 부등식 두 개, 예를 들어 x = 1x \le 1x \ge 1,로 쪼갤 수 있으므로 부등식 제약조건만을 가진  CQP에 대해서 다루도록 하겠다. 꼭 두개로 쪼개지 않더라도 제약조건을 표현하는 행렬의 Nullspace를 이용해서 부등식에 껴 넣을 수 있다.

표준형은 다음과 같다.

</p>
<p>\begin{align}<br />
&\min_{\mathbf{x}} \, \frac{1}{2} \mathbf{x}^T \mathbf{H} \mathbf{x} + \mathbf{c}^T\mathbf{x}\\<br />
s.t. & \mathbf{A}\mathbf{x} \ge \mathbf{b}.<br />
\end{align}<br />
여기서 \mathbf{A}m \times n의 행렬이고 \mathbf{x} \in \mathbb{R}^n, \mathbf{b} \in \mathbb{R}^m, \mathbf{c} \in \mathbb{R}^n의 벡터들이다.

이렇게 표현해 놓으니까 뭔지 잘 와닿지 않을 것 같다. 좀더 쉬운 예를 들어보도록 하겠다. 다음과 같은 문제를 한번 보자.

<br />
\begin{align}<br />
&\min_{x_1, x_2} x_1^2 - 2x_1 + x_2^2 - 2x_2\\<br />
s.t.& x_1 \ge -3,\\<br />
& x_2 \ge -2,\\<br />
& x_1 \le 6,\\<br />
& x_2 \le 6.<br />
\end{align}<br />

이 문제를 한번 초딩처럼 모눈종이에 그려봐? ^^

CqpSimpleEx

퍼런 부분이 제약 조건 네개로 이루어진 영역이고 동그라미 들은 목적함수의 등고선(contour)이다. 감좀 잡았나?  이거 고등학교 3학년(?) 때 하던 선형 계획의 확장 판이다. ^^ 수능에 자주 등장하는 그 문제.

그럼 이 문제를 어떻게 풀 것인가? 어떻게 푸는지 파해쳐 주려고 쓰는 것 아닌가? 우선 원래 문제의 Lagrangian을 구한다. 다음과 같다.

<br />
\begin{align}<br />
\mathcal{L}(\mathbf{x}, \mathbf{\lambda}) :=<br />
\frac{1}{2} \mathbf{x}^T \mathbf{H} \mathbf{x} + \mathbf{c}^T\mathbf{x}</p>
<p>-\mathbf{\lambda}^T(\mathbf{A}\mathbf{x} - \mathbf{b}).<br />
\end{align}<br />

해가 있는 곳은 다음과 같다.

1. Lagrangian의 Gradient가 \mathbf{0}이 되는 곳, (이면서)

2. 제약조건과 \mathbf{\lambda}의 Complementarity가 성립되는 곳, 즉 \mathbf{\Lambda}(\mathbf{A}\mathbf{x}-\mathbf{b}) = \mathbf{0} for  i = 1,...,m, \mathbf{\Lambda} := \text{diag}(\lambda_1,...\lambda_m), \mathbf{\lambda} \ge \mathbf{0}, and \mathbf{A}\mathbf{x}-\mathbf{b} \ge \mathbf{0}.

즉, 다음이 성립되는 곳에 해가 있다.

<br />
\begin{align}<br />
&\mathbf{Ax} - \mathbf{s} - \mathbf{b} = \mathbf{0},\\<br />
&\mathbf{Hx}-\mathbf{A^T\lambda} + \mathbf{c} = \mathbf{0},\\<br />
&\mathbf{\Lambda}\mathbf{s} = \mathbf{0},\\<br />
&\mathbf{\lambda},\,\mathbf{s} \ge \mathbf{0}.<br />
\end{align}<br />

이를 KKT (Karush-Kuhn-Tucker) 조건이라 한다. 여기서 \mathbf{s}는 사실상 \mathbf{Ax} \ge \mathbf{b}를 등호 조건으로 변경하기 위해 도입한 변수라 slack 변수라 부른다.

KKT condition의 Geometry 해석은 다음 그림과 같다.

(그림)

이 KKT 조건 문제를 해결하면 최적화 문제이 답을 찾게 되는데 원래 문제의 답만 찾는게 아니라 다음과 같은 Dual 문제의 답도 찾게 된다.

Wednesday, November 25th, 2009 | Author: salbang

Song for the Gamma Long을 함 뒤집어 봤습니다 ^^.

Yesterday,
My P&L was higher than today,
Cause the market opened with such a big bloody gap.
Oh I believe in yesterday.

Why it went so low
I don’t know.
I coun’t catch the gap.
I am theta long
And now I long
For yesterday.

Suddenly,
I’m not half the NAV I used to be
With this theta hanging over me
Oh I believe in yesterday

The index moves too fast
And more I lose,
To my dismay,
Now my premium’s gone
And so I long
For yesterday.

Wednesday, November 25th, 2009 | Author: salbang

[원본 링크]

Yesterday,
My P&L was higher than today,
Cause I have this bloody time decay.
Oh I believe in yesterday

Why it went so low
I don’t know.
I did no trades.
I am gamma long
And now I long
For yesterday

Suddenly,
I’m not half the NAV I used to be
With this gamma hanging over me
Oh I believe in yesterday

The index never moves
And more I lose,
To my dismay.
Now my premium’s gone
And so I long
For yesterday.

[해석]
어제만해도,
내 손익은 오늘보다 좋았다네,
왜냐면 이 빌어먹을 시간가치 하락 덕분이지.
아 젠장 어제 였으면 좋겠네.

도대체 손익이 왜 엉망이 됐을까?
젠장 모르겟다.
난 거래를 하지도 않았단 말야.
그저 어제로 돌아갔으면 좋겠구만.

순식간에
내 포지션의 순자산가치(Net Asset Value)가 반토막이 났다네,
다 이 빌어먹을 감마 때문이여.
어제였음 좋겠네.

지수는 미동도 않고 있어.
그럴수록 난 더 잃고 있다네,
빌어먹을 ㅠㅠ,
내 프리미엄 다 날라갔네.
그래서 어제 였으면 좋겠단 말야.

—————————————————————————————

이 시를 이해하기 위한 포인트:
롱감마 포지션으로 어떻게 돈을 벌지를 이해해야 함. 롱감마 포지션은 변동성을 먹는 포지션이고 변동성으로부터의 이익은 주가의 급격한 움직임을 잡음으로서 실현됨. 주가가 가만히 있으면 시간가치로 깨지고 변동성에 의한 이익은 하나도 없음.

이 글(누가 내 치즈를 옮겼지?) 참조