6. 기술적 지표를 이용한 전략 - deri.co.krc1%a6_4_%c0%e5_%b1%e2... · 은 두 가지 fast...

13
6. 기술적 지표를 이용한 전략 기술적 지표를 이용해서 진입 전략을 구현하는 방법을 말한다. 즉 이동평균선 이 상승 중이면 상승추세, 스토케스틱 지표가 과매도권이면 매수를 고려하거 나, 여러 지표들을 중첩하여 같은 방향 신호가 발생하면 그 방향으로 매매하

Upload: others

Post on 13-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

6. 기술적 지표를 이용한 전략

기술적 지표를 이용해서 진입 전략을 구현하는 방법을 말한다. 즉 이동평균선

이 상승 중이면 상승추세, 스토케스틱 지표가 과매도권이면 매수를 고려하거

나, 여러 지표들을 중첩하여 같은 방향 신호가 발생하면 그 방향으로 매매하

Page 2: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

2

는 방법 등이 있다. 또한 기술적 지표들을 이용한 매매 전략은 작성하기 그리

힘들지 않다는 장점도 가지고 있다.

실제로 널리 사용되고는 있으나 그 실효성에 대해서 의문시된다는 의견이 많

다. 그 이유는 기술적 지표가 가지고 있는 변수 값이 미래에는 변화가 될 가

능성이 크다는 관점과 다양한 지표를 결합하여 사용하는 방법이 과 최적화 문

제를 피할 수 없다는 의견이다. 따라서 최소한의 지표만을 사용하거나, 필터

(Filter)로만 사용하기를 권장하기도 한다.

어쨌든 기술적 지표는 진입 방법에서 주요한 요소로 사용된다. 기술적 지표는

가격의 움직임을 계량화하여 추세 및 모멘텀을 파악할 수 있게 해주기 때문이

다.

우선 가격에 적용되는 다양한 기술적 지표 중에서 대표적인 지표들과 신 기술적

지표라고 하는 오실레이터 중 알아두면 유용한 지표들은 소개하면 다음과 같다.

<표 오류! 지정한 스타일은 사용되지 않습니다.-1> 기술적 지표

구분 지표

가격에 적용된 기술적 지표 이동평균선, 그물망 차트, 주가 채널,

볼린저 밴드, 파라볼릭 사, 일목균형표, LRI

가격 오실레이터 Price ROC, MACD, CCI, TRIX, STOCHASTIC, RSI, LRS,

DMI, R-SQUARED

거래량 오실레이터 Volume ROC, CO, MFI

<표 오류! 지정한 스타일은 사용되지 않습니다.-2> 기술적 지표 활용법

구분 사용 예

돌파 및 장단기 교차 가격이 이동평균선 돌파,

장단기 이동평균선 교차

신호선 교차 MACD 와 MACD Signal 선 교차

기준선 교차 Price ROC 가 0선 교차

과매수, 과매도 활용 RSI 지표가 30 및 70 선 교차

다이버전스(Divergence) 활용

가격은 저점을 낮추는데 지표는 저점을 높이는

Positive Divergence 및 가격은 고점을 높이는데 지

표는 고점을 낮추는 Negative Divergence 활용

Page 3: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

기술적 지표를 이용하면 다양한 전략개발이 가능하며, 변형 또한 무수히 많다.

어떠한 형태로 전략을 개발하든 돌파 확인 진입 방법이 되거나, 저가 매수 방

법으로 개발하게 된다. 청산 전략에서도 지표들이 자주 사용된다는 점을 명심

하고, 기술적 지표를 이용한 매매 전략에 대해 몇 가지를 알아보기로 하자.

(1) 이동 평균선

이동평균선을 이용한 매매전략을 말하는데, 상당히 많은 지표들이 이동평균선

를 이용하고 있다. 크게 두 가지로서 추세를 파악하여 매매를 제어하기 위한

필터(Filter) 형태로 가장 많이 사용되고, 두 번째로 실질적인 진입전략으로

사용된다. 여기서는 필터로 사용한 방법에 대해서 알아보자.

필터로 이동평균선을 사용하는 이유는 추세를 파악하기 위함이다. 즉 장단기

이동평균선들이 정배열되어 있다면 상승추세, 역배열되어 있다면 하락추세,

배열 관계가 불분명하다면 횡보추세로 구분하는 방법이 가장 일반적인 방법이

다. 앞서 설명한 RangeBreak전략을 이동평균선을 사용한 매수, 매도를 제어하

는 전략식으로 작성해 보자.

<수식 오류! 지정한 스타일은 사용되지 않습니다.-1> DD_indicator_MAFilter

영역: 전략

이름: DD_indicator_MAFilter

Input: s1(0.37), s2(2.7), s3(0.37), malen1(3), malen2(8), malen3(15)

Var1=highd(1)-lowd(1)

Cond1= tdate=exitdate(1) And position(1)=1

Cond2= tdate=exitdate(1) And position(1)=-1

If malen1*1.5 <=malen2 And malen2*1.5<=malen3 Then

Var10=mov(close,malen1,S)

Var11=mov(close,malen2,S)

Var12=mov(close,malen3,S)

Page 4: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

4

Cond10=var10>var11 And Var11>var12

Cond11=var10<var11 And Var11<var12

If ttime<1500 Then

If Cond10 Then

If Cond1=False Then

Call buy("매수",Atstop,Def,opend+var1*s1)

End If

End If

If Cond11 Then

If Cond2=False Then

Call sell("매도",Atstop,Def,opend-var1*S1)

End If

End if

If Cond10 =False And Cond11 =False Then

If Cond1=False Then

Call buy("매수",Atstop,Def,opend+var1*s3)

End If

If Cond2=False Then

Call sell("매도",Atstop,Def,opend-var1*S3)

End If

End If

End If

End If

If position<>0 Then

Call exitlong("매수추적스탑",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*S2)

Call exitshort("매도추적스탑",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2)

End If

<수식 4-35>는 세가지 장단기 이동평균선이 정배열일때는 매수만, 역배열일때

는 매도만 하고, 정배열도 역배열도 아닐 경우에는 양 방향으로 매매하도록

구성된 식이다. 적용된 그림을 보자.

Page 5: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

<그림 오류! 지정한 스타일은 사용되지 않습니다.-1> DD_indicator_MAFilter

주) 단순 이동평균선 3, 8, 15 적용

<그림 4-32>를 보면 9월 17일은 역배열이 발생함으로서 매도 진입이 발생한

것을 보여주고 있고, 9월 18일은 이동평균선이 정배열도, 역배열도 아닌 시점

에서 매도가 발생한 사례이다. 이러한 필터 방법은 ADX, RSI, MACD 등 대부분

의 기술적 지표를 이용할 수 있다.

(2) 오실레이터(Oscillator)

오실레이터는 일정 구간이나 기준선을 중심으로 순환 반복하는 지표를 말하는

데, 대부분의 오실레이터 지표는 가격 모멘텀을 잘 표현한다. 다양한 오실레

이터가 있는데 여기서는 스토케스틱 지표를 이용한 매매 전략을 만들어 보자.

Page 6: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

6

<수식 오류! 지정한 스타일은 사용되지 않습니다.-2> DD_indicator_Stoch

영역: 전략

이름: DD_indicator_ Stoch

Input: len1(25), len2(6), s1(0.37), s2(2.7), level(50)

Var1=slowk(len1,len2) If tdate<>tdate(1) Then Var10=9999999 Var11=0 Var50=currententrynum Cond1=False Cond2=False End If If crossup(Var1,level) Then Var10=high End If If crossdn(Var1,level) Then Var11=low End If Cond1=crossup(Var1, level) Cond2=crossdn(Var1, level) If currententrynum-var50=0 Then If ttime<1500 Then If opend< closed(1) Then Call buy("매수",Atstop,Def,Var10) End If If opend> closed(1) Then Call sell("매도", Atstop,Def,Var11) End If If Var1>level Then Call buy("매수1",Atstop,Def,opend+(highd(1)-lowd(1))*s1) End If If Var1<level Then Call sell("매도1",Atstop,Def,opend-(highd(1)-lowd(1))*s1) End If End If End If If position<>0 Then Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1) - atr(20)*s2) Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2) End If If Cond2 Then Call exitlong("지표청산",Atstop,llv(1,low,3)) End If If Cond1 Then Call exitshort("지표청산",Atstop,hhv(1,high,3)) End If

Page 7: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

<수식 4-36>은 스토케스틱 지표가 일정 수준(50)을 돌파하는 시점의 고가, 저

가를 이용해서 전일 종가보다 금일 시가가 적으면 매수 방향으로, 전일 종가

보다 금일 시가가 크면 매도 방향으로 매매를 하도록 구성되어 있다. 또한 하

루 중 일정 수준 이상 계속 유지되는 경우에도 매매가 발생하도록 돌파 전략

을 동시에 사용하였다.

청산 전략에는 추적 스탑 이외에 일정수준(50)을 교차할 때 3봉 고저를 이용

한 청산 전략을 함께 적용하였다. 적용된 그림을 보자.

<그림 오류! 지정한 스타일은 사용되지 않습니다.-2> DD_indicator_Stoch

주) 지표: 스토케스틱 적용

<그림 4-33>을 보면 3월 31일 스토케스틱 지표가 50선을 하회하고 있어 돌파

진입(매도)이 발생하였고, 4월 1일에는 전일 종가 보다 낮은 상태에서 50선

돌파(수직선)로 매수가 발생한 사례를 표시하였다.

그러면 여기서 두 가지 스토케스틱 지표를 이용하는 돌파 전략을 작성해보자.

Page 8: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

8

<수식 오류! 지정한 스타일은 사용되지 않습니다.-3> DD_indicator_DualStoch

영역: 전략

이름: DD_indicator_DualStoch

Input:, len1(7), len2(10), ob1(90), os1(10), ob2(70), os2(30), level(0.01), s2(2.7)

Var1=fastk(len1)

Var2=fastk(len2)

Cond1=var1>ob1 And Var2>ob2 '과매수

Cond2=var1<os1 And Var2<ob2 '과매도

Cond50= tdate=exitdate(1) And position(1)=1

Cond49= tdate=exitdate(1) And position(1)=-1

If ttime<1500 Then

If Cond50=False Then

If Cond1 Then

If opend<close Then

Call buy("매수",Atstop,Def,high+Atr(20)*level)

End If

End If

End If

If Cond49=False Then

If Cond2 Then

If opend>close Then

Call sell("매도",Atstop,Def,low-Atr(20)*level)

End If

End If

End If

End If

If position<>0 Then

Call exitlong("추적스탑",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*s2)

Call exitshort("추적스탑",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2)

End If

Page 9: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

<수식 4-37>은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매수권에

진입하면 매수, 과매도권에 진입하면 매도하는 전략식이다. 적용된 그림을 보자.

<그림 오류! 지정한 스타일은 사용되지 않습니다.-3> DD_indicator_DualStoch

주) 지표: 스토케스틱(fast)

<그림 4-34>를 보면 Fast Stochastic지표가 각각 70, 90이하로 진입하게 되면

매도하게 되는데, 이틀 동안 과매도 권에서 두 번의 매도 진입이 발생하여 수

익이 발생한 것을 알 수 있다. 이러한 오실레이터 전략들은 지표들 마다 기본

개념이나 계산식이 유사하기 때문에 RSI, CCI 등 다른 지표를 이용해서 다양

한 전략들을 개발 할 수 있다

(3) 다이버전스(Divergence)

다이버전스는 오실레이터를 활용하는 방법 중 가장 중심이 되는 것이라 할 수

있다. 오실레이터가 모멘텀을 나타내고 있기 때문에 모멘텀의 강화 및 약화

현상인 다이버전스를 자주 활용하게 된다. 즉 상승 다이버전스는 가격의 저점

이 낮아지는데 지표의 저점은 높아져 곧 추세가 상승으로 전환할 것이라는 것

을 설명해주고, 하락 다이버전스는 가격의 고점이 높아지는데 지표의 저점이

Page 10: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

10

낮아져 곧 하락 전환할 것이라는 것을 나타내준다. RSI지표의 다이버전스 특

성을 이용한 전략을 작성해보자.

<수식 오류! 지정한 스타일은 사용되지 않습니다.-4> DD_indicator_SDIV

영역: 전략

이름: DD_indicator_SDIV

Input: len1(14), len2(50), delay(4), level(0.16), s1(0.37), s2(2.7)

Var1=rsi(close,len1)

If Var1>llv(1,Var1,len2) And low<=llv(1,low,len2) Then

Var11=1

Else

Var11=-1

End If

If Var1<hhv(1,Var1,len2) And high>=hhv(1,high,len2) Then

Var12=1

Else

Var12=-1

End If

Cond1=hhv(1,Var11,delay)=1 And Var1>llv(1,Var1,len2) And Var1<60

Cond2=hhv(1,Var12,delay)=1 And Var1<hhv(1,Var1,len2) And Var1>40

If tdate<>tdate(1) Then

Var50=currententrynum

End If

If currententrynum-var50=0 Then

If ttime<1500 Then

If Var1>40 And Cond2=False Then

Call buy("매수1",Atstop,Def,opend+(Highd(1)-lowd(1))*s1)

End If

If Var1<60 And Cond1=False Then

Call sell("매도1",Atstop,Def,opend-(Highd(1)-lowd(1))*s1)

End If

End If

End If

If currententrynum-var50<=2 Then

If ttime<1500 Then

If Cond1 And opend-(highd(1)-lowd(1))*level < close Then

Page 11: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

Call buy("매수",Atstop,Def,hhv(1,high,2))

End If

If Cond2 And opend+(highd(1)-lowd(1))*level>close then

Call sell("매도",Atstop,Def,llv(1,low,2))

End If

End If

End If

If position<>0 Then

Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*S2)

Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2)

End If

<수식 4-38>을 보면 RSI지표가 50봉 최저 RSI값보다 높아지는데, 가격은 50봉

최저가를 유지하는 경우 상승 다이버전스라 인식하게 된다(반대의 경우 하락

다이버전스). 상승 다이버전스가 발생하면 매수하고, 하락 다이버전스가 발생

하면 매도하는 전략을 구사하게 된다. 단, 하루 첫 매매는 RSI지표가 40보다

크고 다이버전스가 발생하지 않았으면 매수하고, RSI 지표가 60보다 적고 다

이버전스가 발생하지 않았으면 매도하는 전략을 병행하였다. 적용된 그림을

보자.

<그림 오류! 지정한 스타일은 사용되지 않습니다.-4> DD_indicator_SDIV

주) 지표: DD_indicator_SDIV

Page 12: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

12

<그림 4-35>에서 우선 하단에 있는 지표인 DD_indicator_SDIV를 보자. RSI지

표에 일정 기간 동안의 최고,최저 선이 작성되어 있으며 히스토그램으로 표시

된 부분은 상승다이버전스와 하락 다이버전스를 표시하고 있다. 8월 27일을

보면 시초가 이후 하락 다이버전스가 발생하기 전에 매수 조건이 성립되어 매

수하였다. 반면, 8월 28일 시초가는 50봉 최고가을 형성하였으나, 지표는 최

고가를 형성하지 못하여 하락 다이버전스가 발생하여 매도하였다. 단기 모멘

텀 괴리를 이용한 전략이라 할 수 있다.

그러면 여기서 테스트 결과를 보자.

<표 오류! 지정한 스타일은 사용되지 않습니다.-3> 테스트 결과 비교(이동평균, 스토케스틱)

평가 항목 DD_indicator_MAFilter DD_indicator_Stoch

총 손익 94,005.80 79,781.32

평균 손익 101.19 93.75

최대 손실 -1,132.98 -891.14

총 매매수 929 851

연속 이익 매매수 10 6

연속 손실 매매수 7 11

최대 자본 인하액 -2,941.89 -3,697.06

승률 49.84 47.83

손익비 1.74 1.69

평균손익비 1.75 1.84

보상 비율 31.95 21.58

변수 값 0.37,2.7,0.37,3,8,15 25,6,0.37,2.7,50

주) 필수적으로 보유해야 할 바수: 100

Page 13: 6. 기술적 지표를 이용한 전략 - deri.co.krC1%A6_4_%C0%E5_%B1%E2... · 은 두 가지 Fast Stochastic을 이용해서 서로 다른 수준의 과매 수권에

<표 오류! 지정한 스타일은 사용되지 않습니다.-4> 테스트 결과(듀얼 스토케스틱, 단기다이버전스)

평가 항목 DD_indicator_DualStoch DD_indicator_SDIV

총 손익 80,806.84 81,967.62

평균 손익 72.34 83.73

최대 손실 -1,014.50 -987.45

총 매매수 1,117 979

연속 이익 매매수 7 7

연속 손실 매매수 8 8

최대 자본 인하액 -5,146.98 -3,459.40

승률 46.73 45.86

손익비 1.47 1.54

평균손익비 1.67 1.82

보상 비율 15.70 23.69

변수 값 7,10,90,10,70,30,0.01,2.7 14,50,4,0.16,0.37,2.7

주) 필수적으로 보유해야 할 바수: 100

테스트 결과 DD_indicator_MAFilter가 상대적으로 높은 수익과 적은 위험 수

준을 보이고 있다. 이동평균선 필터가 진입방향을 잘 제어하고 있다는 것을

알 수 있다. 나머지 결과 모두 유용한 결과를 보였으나, DD_indicator_DualStoch 경

우 다소 위험이 큰 구조임을 알 수 있다.

지금까지 돌파 전략에서부터 수렴 돌파, 모형, 패턴분석 전략 및 기술적 지표

를 이용한 진입전략들을 설명 하였다.

위의 진입 전략들만이 유용한 진입 전략의 전부는 아니다. 위의 전략들을 기

초로 하여 실전매매 경험이나, 또 다른 이론을 추가하여 더 유용한 결과를 만

들어 내기 위한 원천 정도로 생각하기 바란다. 예를 들어 위 스토케스틱 전략

을 다른 지표들로 응용하여 더 좋은 결과를 만들거나, 돌파 전략들을 복합적

으로 활용하여 더 유용한 전략으로 발전 시켜야 한다.