일주일, 월화수목금 중에서 그 주의 최저가에 주식을 사고 싶다고 합시다. 특정 요일의 가격이 그 주의 최저가일 확률은 당연히 1/5이니 20%입니다. 그렇다면 우리는 그냥 20%의 확률로 찍으면서 기도매매법을 실천해야 하는 것일까요?

간단한 전략을 통해 이 확률을 두 배 넘게 올려 보도록 하겠습니다. 우리의 전략은 "첫 k일 동안은 시장을 살펴보고, 그 다음날부터는 그때까지 중에 가장 싼 가격이면 사자"입니다. 미지수는 x로 써도 되지만 요즘 이름 앞에 k를 붙이는 게 유행이라 k라고 했습니다. 어쨌든 예를 들어보면 다음과 같습니다.

k = 0 이라면? 첫 0일 동안은 시장을 살펴보고 그 다음날, 즉 월요일부터는 그때까지 중에 가장 싸면 삽니다. 말이 꼬여 있는데 당연히 월요일에는 비교할 가격이 없으니 그냥 그날 바로 사겠다는 말이 됩니다. 이건 찍는 것과 다를 게 없습니다. 따라서 k= 0일 때의 성공률은 월요일이 최저가일 확률인 20%입니다.

k = 1 이라면? 이제 좀 재미있어질 겁니다. 첫 1일 동안은 시장을 살펴봅니다. 즉 월요일에는 네이버 주식 창 새로고침만 합니다. 살 게 아니니 15분 늦게 가격이 떠도 상관없습니다. 그리고 다음날인 화요일부터 그때까지 중에 가격이 가장 싼 날이면 주식을 삽니다. 만약 화요일 가격이 월요일보다 싸면 화요일에 삽니다. 물론 수요일에 더 떨어질 수도 있지만 하여튼 우리 전략이 그렇습니다.

만약 화요일 가격이 월요일보다 높다면? 그러면 수요일로 넘어갑니다. 그리고 수요일 가격이 월화수 중 가장 낮다면 삽니다. 그런데 수요일도 월요일보다 비싸다면? 그러면 목요일로 넘어갑니다. 목요일 가격이 월화수목 중 가장 싸다면 삽니다. 목요일도 월요일보다 비싸다면? 금요일로 넘어갑니다. 만약 금요일도 월요일보다 비싸다면? 월요일이 최저가였네요. 그러면 못 사게 됩니다.

정리해 보면 k = 1 일 때,
* 알고 보니 월요일이 최저가 -> 실패 (0)
* 알고 보니 화요일이 최저가 -> 성공 (1)
* 알고 보니 수요일이 최저가 -> 월요일이 화요일보다 싸야만 성공 (1/2)
* 알고 보니 목요일이 최저가 -> 월요일이 화, 수보다 싸야만 성공 (1/3)
* 알고 보니 금요일이 최저가 -> 월요일이 화, 수, 목보다 싸야만 성공 (1/4)

각 요일이 최저가일 확률은 똑같이 20% 씩이니 그 값을 균등하게 곱해주면 k = 1 일 때 우리 전략의 성공 확률은

20% x (0 + 1 + 1/2 + 1/3 + 1/4)
= 20% x 25/12
= 41.67%

가 됩니다. 벌써 성공 확률이 두 배 넘게 올랐습니다!

k = 2일 때도 한 번 계산해 보도록 하겠습니다. 이 때는 월, 화까지는 기다려보고 수요일부터 살지 말지를 결정합니다. k = 2 라면,
* 알고 보니 월요일이 최저가 -> 실패 (0)
* 알고 보니 화요일이 최저가 -> 실패 (0)
* 알고 보니 수요일이 최저가 -> 성공 (1)
* 알고 보니 목요일이 최저가 -> 월, 화 중에 수요일보다 싼 날이 있어야 성공 (2/3)
* 알고 보니 금요일이 최저가 -> 월, 화 중에 수, 목보다 싼 날이 있어야 성공 (2/4)

그러면 k = 2일 때 우리의 성공 확률은

20% x (0 + 0 + 1 + 2/3 + 2/4)
= 20% x 26/12
= 43.33%

아까보다도 더 높아진 43.33%가 되었습니다!

같은 방식으로 계산하면 k = 3 일 때의 성공 확률은 20% x (0 + 0 + 0 + 1 + 3/4) = 20% x 7/4 = 35%, k = 4일 때는 20% x (0 + 0 + 0 + 0 + 1) = 20% 가 됩니다. k = 4라는 것은 금요일 하루에만 살 수 있다는 것이니 찍는 것과 성공 확률이 똑같겠지요.

정리해봅시다!
* 월요일부터 그때까지의 최저가면 산다: 성공확률 20%
* 화요일부터 그때까지의 최저가면 산다: 성공확률 41.67%
* 수요일부터 그때까지의 최저가면 산다: 성공확률 43.33%
* 목요일부터 그때까지의 최저가면 산다: 성공확률 35%
* 금요일부터 그때까지의 최저가면 산다: 성공확률 20%

즉 월, 화에는 시장을 지켜만 보다가 수요일부터 그 주의 그때까지의 최저가일 때 산다면 찍는 것에 비해 성공 확률이 배 이상 높은 43.33%가 됩니다! 단 이 경우 아예 못 살 확률이 40%이니 (월, 화 중에 최저가가 있는 경우), 주식을 좀 공격적으로 사 모으고 싶다면 화요일부터 이 전략을 적용하는 것도 좋겠습니다. 성공 확률은 41.67%로 비슷하고 주식을 아예 못 살 확률은 20% (월요일이 최저가인 경우)로 낮으니까요!

덧붙여 만약 주식을 팔고 싶은 경우라면 마찬가지 전략을 반대로, 즉 어느 날 이후에는 그때까지 중 가장 비싸다면 판다고 적용하면 되겠습니다.

자 그럼 성투하시기를 바라며 정성글은 춫천

- 끝 -

캘리포니아 2022 - 10. 세상이 굴러가게 하는 비용 5.5 달러


LA 시내를 돌아다니다가 블루보틀 매장에 들어갔다. 이게 그 유명하다는 푸른 병 카페란 말이지. 깔끔하고 한적한 매장에 들어가 5.5 달러 짜리 아이스 볼드 12온스 커피를 시켰다. 유명세 치고는 손님이 굉장히 적어서 대형 테이블을 나 혼자 쓰는 호사를 누렸다.

커피를 마시는데 매장 유리 밖으로 노숙자가 보였다. 지나가는 사람들과 신호에 걸린 차에게 계속해서 시비를 걸고 있었다. 한참을 그러고 있는 모습을 보며 거 참 난폭하네, 하고 생각을 하고 있는데 그 노숙자가 갑자기 카페 쪽으로 걸어왔다. 어?

순식간에 매장 안으로 들어온 노숙자는 손님들에게 시비를 걸지는 않았지만 대신 매장에 전시되어 있는 물건들을 괜히 건드리고 다녔고, 잠시 후 카운터로 가서 뭐라고 뭐라고 말을 하더니 커피 두 잔을 공짜로 받아서 양손에 들고 유유히 카페를 나섰다. 그러더니 지나가는 차에 커피를 뿌려대고 남은 커피는 땅에 쏟아버리고는 다른 곳으로 갔다.

그 광경을 본 후 고개를 숙여 내 커피를 보았다. 순간 나는 돈을 내고 커피를 사 마시는데 가게에 들어와서 난리친 사람은 커피 두 잔을 공짜로 받아갔다는 생각이 들어 피식 웃음이 나왔다. 카페 관리자 입장에서야 언제 올 지 모르는 경찰에게 신고하고, 기다리고, 그 동안 그 노숙자가 손님들에게 난동을 부리지 않을까 전전긍긍하느니 커피 두 잔 쥐어 보내는 것이 이득이었겠지. 그런데 그러면 나 같은 얌전한 손님들은 뭔가 억울하지 않나?

그런 생각을 잠시 하다가 그러거나 말거나 하고 한번 풋 웃어버리고는 남은 커피를 마저 마셨다. 창 밖에서는 또 다른 노숙자가 어디선가 나타나 길 건너편에 있는 멕시코 치킨집에 들어가서 소란을 피우는가 싶더니 잠시 후 치킨을 손에 들고 나오고 있었다.

반 년도 더 지난 지금 갑자기 그런 생각이 든다. 그 때 내가 냈던 5.5 달러는 그 곳에서 내가 남에게 폐를 끼치지 않으면서 커피를 마시기 위한 비용이었다고. 남에게 폐를 끼치지 않는 것은 좋은 일이지만 희한하게도 그 좋은 일을 하면 내가 상을 받는 것이 아니라 내가 돈을, 혹은 시간을, 혹은 정성을 써야 한다. 커피를 예로 들자면 남에게 폐를 끼치면 커피를 공짜로 받지만 얌전히 있으면 커피를 마시기 위해 돈을 내야 하는 것이지. 계산기를 두드려보면 행패를 부리는 게 이득이다. 하지만 세상은 이런 계산은 치워버리고 그러거나 말거나 규칙을 지키며 살아가는 사람들 덕에 굴러간다. 그렇게 나는 그 날 세상이 굴러가게 하는 비용 5.5 달러를 냈다.

파이썬에서 상속을 통해 클래스를 만들 경우 생성자 안에서 상위 클래스의 생성자를 호출해야 할 때가 있습니다. 그럴 때 아래 두 종류의 코드가 사용되곤 하는데요, 간단한 코드는 파이썬 3에서부터 지원되는 문법이고 복잡한 코드는 파이썬 2와 3에서 모두 지원됩니다. 기능은 동일합니다.

 

1. 간단한 코드

# 파이썬 3에서부터 지원됩니다.
super().__init__()

 

2. 복잡한 코드

# 파이썬 2와 3에서 모두 지원됩니다.
super(__class__, self).__init__()

 

참조: https://stackoverflow.com/a/61288819/1125721

+ Recent posts