2009년 2월 16일 월요일

커스텀 보조지표를 만드는 과정 (부제 : MACD를 깨부수자)

 

출처 : DC

지난번에는 단순히 '시가'와 '종가'간 평균의 차이로 추세의 흐름을 파악하는 지표를 만들었는데
이번에는 좀 더 세밀한 흐름을 파악 할 수 있도록, 고가, 저가, 시가, 종가를 모두 아우르는 수식을 바탕으로 추세지표를 만들어 보자.
이 네개의 가격은 캔들스틱에 고스란히 담겨 있는데 사람들은 이를 이용해 캔들의 꼬리가 길다느니
캔들 모양이 어떻게 생겼다느니 하며 주가를 예측하려는 시도를 하는 것을 볼 수 있다.
그런것을 말로만 하지 말고 로직(Logic)을 짜서 직접 보조지표를 만들어 보자.
추세지표로는 MACD가 가장 유명하기 때문에 최소한 쓸만한 놈이 되려면 MACD 보다 못하지는 않아야 하고
MACD 보다 더 효용성이 있다면 대성공이라 할 수 있겠다. MACD를 목표로 만들어 보자.
일단 고가, 저가, 시가, 종가간의 차이를 구해 선을 한 번 그어보고 주가와 무슨 연관이 있는가를 파악해보자.
H : 고가
L : 저가
O : 시가
C : 종가

아 시발 이렇게 보니까 선이 많아서 뭐가 뭔지 모르겠다-_-
두개씩 좀 나눠서 다시한번 보자.

이렇게 보니 고가에서 종가를 뺀것 (H-C)과 시가에서 저가를 뺀것 (O-C) 이 거의 동일한 흐름을 보이고
고가에서 시가(H-O) 그리고 종가에서 저가(C-L)를 뺀것이 역시 거의 동일한 흐름을 보이고 있다.
(어떻게 고가에서 종가를 빼고 종가에서 저가를 빼는등의 수식을 떠올리게 됐을까?에 대한 의문은 캔들 모양을 잘 보면 알 수 있다.
캔들의 모양이 추세와 무슨 연관이 있는가를 유심히 보고 스스로 해답을 얻어 보자.)
어쨌든 저렇게 비슷한 두 종류의 수식을 안 비슷한것과 묶어서 함께 봐보자.

이렇게 보니 상승추세일때는 종가에서 저가(C-L)뺀것과 고가에서 시가(H-O)를 뺀것이 더 큰 값을 가지고
하락추세일때는 시가에서 저가(O-L)를 뺀것과 고가에서 종가(H-C)를 뺀것이 더 큰 값을 가지는 것을 확인 할 수 있다.
이제 답은 거의 나온 셈이며 이것들을 잘 요리하기만 하면 그럴싸한 보조지표를 얻을 수 있을 것이다.
(누차 얘기하지만 시고저종가를 이용하여 추세지표를 만들겠다는 생각은
"캔들의 모양과 추세는 무슨 관계가 있을까?"에 대한 의문으로 부터 출발했으므로
왜 시고저종을 저런식으로 계산하는지 이해가 안되는 사람은 상승추세와 하락추세때의 캔들 모양을 보고 또 보고 또 보자.)

네가지의 수식중 결과값이 같아서 필요없는 것 하나를 제외한 세가지를 막대그래프로 표시해보니
흐름은 비슷하지만 미세한 차이를 보인다. 세가지를 모두 합쳐 그 값의 평균을 내면 보다 적절한 값을 얻을 수 있을 것 같다.
세가지를 합쳐서 신뢰도를 높이고 하나의 값을 얻어 보자.
수식 :
Z=eavg((C-L)-(H-C), Period);     // 종가에서 저가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z2=eavg((H-O)-(H-C), Period);  // 고가에서 시가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z3=eavg((H-O)-(O-L), Period); // 고가에서 시가를 뺀것에 시가에서 저가를 뺀 값을 빼기
(Z+Z2+Z3)/3                             // 각 계산값을 모두 더하고 3으로 나눠 하나의 값을 얻는다
지표조건설정 :
Period : 5 (임의값)

그런데 막대그래프가 뭔가 들쑥날쑥하고 저거 따라 매매하다간 깡통 찰 판이다.
여기서 지난번에 나왔던 스킬인 스무딩(Smoothing)을 써서 매끄럽게 만들어보자
스무딩은 산출한 값을 한 번더 평활화하여 값을 고르게 만들어 주는 작업이다.
수식 :
Z=eavg((C-L)-(H-C), Period);     // 종가에서 저가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z2=eavg((H-O)-(H-C), Period);  // 고가에서 시가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z3=eavg((H-O)-(O-L), Period); // 고가에서 시가를 뺀것에 시가에서 저가를 뺀 값을 빼기
eavg((Z+Z2+Z3)/3, Smooth)      // 지수이평 eavg 함수를 사용하여 스무딩 작업을 한다.
지표조건설정 :
Smooth : 3 (임의값)
위와 같이 수식을 작성한다면 바로 윗 스크린샷 보다는 부드러워 지지만 아직 좀 불만족 스러울 것이다.
이때는 간단히 한번더 스무딩을 해줘서 더 부드럽게 만들면 된다.
수식 :
Z=eavg((C-L)-(H-C), Period);     // 종가에서 저가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z2=eavg((H-O)-(H-C), Period);  // 고가에서 시가를 뺀것에 고가에서 종가를 뺀 값을 빼기
Z3=eavg((H-O)-(O-L), Period); // 고가에서 시가를 뺀것에 시가에서 저가를 뺀 값을 빼기
eavg(eavg((Z+Z2+Z3)/3, Smooth),Smooth2)      // 지수이평 eavg 함수를 두 번 사용하여 매우 매끄럽게 만들자
지표조건설정 :
Smooth : 3 (임의값)
Smooth2 : 3 (임의값)
자 이제 처음 목표였던 MACD 와의 비교를 통한 결과물을 한 번 보자.
오늘자 선지 5분봉이다.

MACD 에 비해 자잘한 Whipsaw가 적고 상방 추세시 진입 타이밍과 하방추세시 진입 타이밍이 한템포 더 빠른것을 알 수 있다.
그리고 파라메터를 타이밍 위주의 3,3,3에서 신뢰도 위주의  5,3,3 으로 바꿔서
다음과 같은 장에서 MACD와 비교해보면 더 확연해 진다.

MACD의 Whipsaw와 대비되는 모습.
최종 수식은 아래와 같다.
==============================================
지표명 : 주갤 추세지표 %Period%, %Smooth%, %Smooth2% by 말보로
수식 :
Z=eavg((C-L)-(H-C), Period);
Z2=eavg((H-O)-(H-C), Period);
Z3=eavg((H-O)-(O-L), Period);
eavg(eavg((Z+Z2+Z3)/3, Smooth),Smooth2)
지표조건설정 :
Period : 5 (신뢰도 위주) / 3 (타이밍 위주)
Smooth : 3 (임의값)
Smooth2 : 3 (임의값)
라인설정 :
막대
비교기준 ; 0기준선
==============================================
저런 장에선 추세지표만 따라갔어도 캐됒이가 된다.
추세장에서 반대로 타서 물리지 좀 말고 추세지표를 쓰자

댓글 1개:

당달이 :

그림이 안나와서 안타깝다.