2. 수렴돌파전략 수렴돌파전략은가격수렴이발생한다음에돌파하는방향으로매매하는전략으로서앞서설명한돌파전략과유사한매매전략이다. 하지만수렴이발생하는것을전제로한다는차이점이있다. 그러면가격의수렴이란구체적으로무엇을의미하는가? 수렴은가격흐름에추세가없고쉬는구간을의미한다. 즉횡보추세를의미하는데, 이횡보추세가발달하면그다음은추세구간 ( 상승이나하락 ) 을기대할수있다. 따라서수렴이발생한다음지지 / 저항선을돌파하는방향이추세가된다. 따라서돌파전략의진입제어인필터 (Filter) 로서유용하게사용되며, 독립적인전략으로도사용가능하다. 수렴은 Congestion, Consolidation 등으로표기되며주로가격이밀집되는구간이나변동성이축소되는구간이라설명할수있다. 기술적분석을통해수렴국면을찾는다양한방법이있는데, 실제로눈으로찾기는쉬우나코딩을통해수렴구간을표현하기에는어려운점이많다. 우선기술적분석에서수렴구간을표현할수있는방법을정리해보자.
< 표오류! 지정한스타일은사용되지않습니다.-1> 기술적분석을통한수렴구간의표현구분항목설명 모형분석 기술적지표 패턴분석 삼각형 (triangle) 사각형 (rectangle) ATR, Range, 표준편차, 역사적변동성등볼린저밴드그물망일목균형표의선행스팬주가채널 DMI, ADX 지표인사이드 (inside day=id) Narrow range(nr) 상승추세선과하락추세선의교차형태상승추세선과하락추세선의평행형태변동성이적은구간밴드폭이좁은수렴구간장단기이동평균선이수렴하는구간선행스팬1과선행스팬2의밀집구간채널폭이좁은구간 Adx 지표가일정수준이하전일고가 > 고가 and 전일저가 < 저가 ID1: 1 봉인사이드 ID2: 2 봉인사이드 Range( 고가 -저가 ) 가적은형태 NR2: 2 봉수렴 NR3: 3 봉수렴 위와같이다양한방법으로수렴구간을설정할수있다. 그러나모형분석에있어한가지명심해야할점은깃대형이나깃발형또한수렴패턴의일종이지만, 이것들은상승이나하락후조정 (retracement) 패턴으로발생하므로저가진입이라는관점에서직전추세와같은방향의진입을기초로한다는점이다. 수렴돌파전략은낮은위험을가진진입 (low risk entry) 이라는큰장점을가지고있다. 수렴이발생하면변동성이작아낮은위험상태에서진입할수있다. 또한되돌림시점에서진입하는전략이므로돌파전략보다유리한가격및낮은위험에서진입을하게된다. 따라서많은계약수로진입할수있게되는장점을확보하는전략형태이다. 그러면다양한수렴돌파전략 (DD_CongestionBreak) 을작성해보도록하자. 2
(1) ATR, Range 이용 ATR, Range로수렴국면을설정하는방법부터알아보기로하자. 변동성을대표하는지표인 ATR과 Range를이용해서변동성이축소되었을때만매매를하는전략을고려할수있다. 여기서우선기억해야할것은 ATR은시가갭을포함한전략식이고, Range는시가갭을포함하지않은가격의진폭만으로변동성을측정하는차이가있다는것이다. 즉 ATR의경우아침시간대에변동성이크게나타나는현상이 Range를이용하면해결이된다. 또하나고려해야할것은 ATR를사용할경우과거데이터의처음값부터참조하기때문에오프라인과온라인모드에서매매신호에차이가발생할수있다. 진입과청산전략모두에서 ATR을사용할경우매매신호에차이가발생할수있는데, 그이유는온라인모드의데이터길이가짧기때문이다. 따라서매매신호가왜곡될수도있다. 이러한데이터길이에따른매매신호왜곡가능성은지수이동평균 (Exponential Moving Average) 도마찬가지이다. 이러한차이점을인식하고 ATR, Range를동시에적용할수있는전략식을작성해보자. < 수식오류! 지정한스타일은사용되지않습니다.-1> DD_CongestionBreak( 방법 1) 영역 : 전략 이름 : DD_CongestionBreak( 방법 1) Input: len(10), len1(70), len2(0.37), s1(2.7), method(1), delay(8) If method=1 Then Var1=atr(len) Var2=atr(len1) Elseif method=2 Then Var20=high-low Var1=mov(Var20,len,s)
Var2=mov(Var20,len1,s) Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<var2 Then Var10=1 Else Var10=0 If hhv(1,var10,delay)=1 Then If ttime<1500 Then If Cond1=False And high<opend+(highd(1)-lowd(1))*len2 Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*len2) If Cond2=False And low>opend-(highd(1)-lowd(1))*len2 Then Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*len2) If Cond1=False And high>opend+(highd(1)-lowd(1))*len2 Then Call buy(" 매수 1",Atstop,Def,hhv(1,high,delay)) If Cond2=False And low<opend-(highd(1)-lowd(1))*len2 Then Call sell(" 매도 1",Atstop,Def,llv(1,low,delay)) End if If position<>0 then Call exitlong(" 매수청산 ",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*s1) Call exitshort(" 매도청산 ",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*s1) 4
< 수식 4-11> 은 method = 1을입력하면 ATR을이용하게되며 method = 2를입력하면 Range를이용하게된다. 수렴구간의설정은단기 ATR이장기 ATR보다적은구간으로설정하였고, 진입방법은 RangeBreak와일정기간고정돌파를사용하였다. 적용그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-1> DD_CongestionBreakt( 방법 1) 주 ) 지표 : DD_CongestionBreakt( 방법 1) 적용, 신호 : 진입, 청산적용 그림을보면단기변동성이장기변동성이이하에서일정기간지속되면변동성수렴구간이되며이구간에서 Rangebreak 이나일정기간고저돌파 ( 위그림은 8봉최저가하향돌파 ) 로시장에진입하는것을보여주고있다. ATR 및 Range 테스트결과는 < 표 4-12> 와같다.
< 표오류! 지정한스타일은사용되지않습니다.-2> DD_CongestionBreak 전략적용결과비교 DD_CongestionBreak( 방법 1) DD_CongestionBreak( 방법 1) 평가항목 Method = 1 Method = 2 총손익 88,370.01 93,058.37 평균손익 102.16 108.46 최대손실 -1,132.98-1,132.98 총매매수 865 858 연속이익매매수 10 10 연속손실매매수 6 7 최대자본인하액 -4,143.31-3,120.68 승률 50.64 51.52 손익비 1.80 1.86 평균손익비 1.75 1.75 보상비율 21.33 29.82 변수값 10, 70, 0.37, 2.7, 1, 8 10, 50, 0.37, 2.7, 2, 7 주 ) 필수적으로보유해야할바수 : 100 둘다유용한결과를나타냈다. 특히 Range를이용한경우에보상비율이 29.82로서높은수익에적은위험구조를갖게되었다. 위와같이변동성이적은구간에서매매를하는방법을통해시스템의위험을줄일수있다는것을알수있다. 그러면이제부터 < 표 4-11> 에서설명한다른기술적지표들을이용해서수렴구간매매전략을작성해보도록하자. (2) 볼린저밴드 (Bollinger Band) 볼린저밴드란이동평균선에가격의표준편차를더하거나빼서밴드를표시하는것으로서, 추세의확장및수렴을잘설명하는지표이다. 3가지선으로구성된다. 6
< 표오류! 지정한스타일은사용되지않습니다.-3> 볼린저밴드 구분 내용 상단선 (Upper band) 중심선 + N 일간종가의표준편차 * 승수 중심선 (Middle Band) N 일간종가단순이동평균선 하단선 (Lower Band) 중심선 - N 일간종가의표준편차 * 승수 밴드폭 ( 상단선 - 하단선 ) 이넓다는것은가격변동성이크다는것을나타내고, 밴드폭이좁다는것은가격변동성이적다는것을나타낸다. 또한중심선은이동평균선으로서상승하면상승추세, 하락하면하락추세를나타내어추세및변동성을동시에파악가능한지표이다. 여기서는수렴구간에대한데이트레이딩전략으로만한정해서전략식을작성하면다음과같다. < 수식오류! 지정한스타일은사용되지않습니다.-2> DD_CongestionBreak( 볼린저밴드 ) 영역 : 전략 이름 : DD_CongestionBreak(BBand) Input: len(40), len1(1), len2(30), multi(5), delay(5), s1(0.37), s2(2.7) Var50=bbandtop(close,len,len1,s) Var49=bbandbot(close,len,len1,s) Var1=var50-var49 Var2=high-low Var3=mov(Var2,len2,s)*multi Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<var3 Then Var10=1 Else Var10=0 If hhv(1,var10,delay)=1 then If ttime<1500 Then If Cond1=False And bbandmid(close,len,len1,s)>bbandmid(close,len,len1,s,1) Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) If Cond2=False And bbandmid(close,len,len1,s)<bbandmid(close,len,len1,s,1) Then
Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) 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) < 수식 4-12> 를보면밴드폭이평균 Range의일정배수이하일경우에수렴구간으로판단하고, 이구간에서만밴드중심선이상승하면 RangeBreak 매수전략을, 중심선이하락하면 Rangebreak 매도전략을구사하게된다. 지표및적용된그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-2> DD_CongestionBreak( 볼린저밴드 ) 주 ) 신호 : 진입, 청산가격, 지표 : DD_CongestionBreak(BBand) 적용 < 그림 4-8> 은변동성수렴 ( 밴드폭 < Range) 이발생한구간에서매도방향으로매매가발생하여수익이발생한사례를표시한그림이다. 9월 22일에는변동성확대가지속되고있어매매가발생하지않게된다. 테스트결과는나중에 8
보기로하고이제부터그물망차트를이용한수렴구간매매전략에대해서알아보자. (3) 그물망차트 (Multi Moving Average Indicator) 그물망차트란이동평균선의변수값을점진적으로증가시키면서중첩하여표시한지표이다. 예를들어초기이동평균값이 20이고이동평균개수가 10, 증감은 2라고하면, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40 이동평균선 11 개를동시에표시하는지표이다. 이렇게표시를하게되면이동평균선들의수렴과확장이잘표시된다. 볼린저밴드와함께수렴국면파악에유용하게사용되는지표이다. 여기서는역시수렴국면파악만을이용한전략을작성하는데수렴국면은이동평균선들이밀집되는구간으로서최대값을가진이동평균선과최소값을가진이동평균선의차를이용한다. < 수식오류! 지정한스타일은사용되지않습니다.-3> DD_CongestionBreak( 그물망 ) 영역 : 전략 이름 : DD_CongestionBreak 그물망 ) Input :len(20), cont(10), stepp(2), multi(2), delay(5), s1(0.37), s2(2.7) Var50=mov(close,len,s) Var49=mov(close,len,s) For i = 1 To cont If Var50<mov(close,len+stepp*i,s) Then Var50=mov(close,len+stepp*i,s) If Var49>mov(close,len+stepp*i,s) Then Var49=mov(close,len+stepp*i,s) Next Var1=var50-var49 Var2=high-low Var3=mov(Var2,len,s)*multi Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<var3 Then Var10=1 Else Var10=0
If hhv(1,var10,delay)=1 And hhb(1,var10,delay)=delay-1 Then If ttime<1500 Then If Cond1=False Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) If Cond2=False Then Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) 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) < 수식 4-13> 을보면 20봉이동평균에서 40봉이동평균선까지작성하고각봉마다최대값과최소값의차인변동성폭과 Range의가격변동성폭을비교해서그물망의폭이적을경우에데이트레이딩돌파전략을구사하는전략식이다. 적용한그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-3> DD_CongestionBreak( 그물망 ) 10
주 ) 신호 : 진입, 청산가격, 그물망차트, 지표 : DD_CongestionBreak( 그물망 ) < 그림 4-9> 를보면그물망변동폭이 Range보다적어져서 5봉 (delay=5) 이지나면수렴구간으로판단하고, 돌파전략이작동하기시작한다. 여기에대한테스트결과도일목균형표를설명한뒤함께보기로한다. (4) 일목균형표 ( 一目均衡表 ) 일본에서개발된일목균형표는현재우리나라에서인기가많은지표로서엘리어트파동이론이나갠이론등과함께종합분석 ( 패턴, 비율, 시간 ) 이가능한기술적지표이다. 여기서는일목균형표의선행스팬1과선행스팬2로구성된구름대의폭만을이용해서수렴구간을설정하는전략을만들어보자. < 수식오류! 지정한스타일은사용되지않습니다.-4> DD_CongestionBreak( 일목 ) 영역 : 전략 이름 : DD_CongestionBreak( 일목 ) Input: len(9), len1(24), len2(20), multi(2), delay(8), s1(0.37), s2(2.7) Var50 = (hhv(1, high,len) + llv(1, low,len)) / 2 Var49 = (hhv(1, high,len1 ) + llv(1, low,len1) ) / 2 Var48=(Var50+var49)/2 Var47 = (hhv(1, high, len1*2) + llv(1, low, len1*2) ) / 2 Var46=var47(len1-1) ' 선행스팬 2 Var45=var48(len1-1) ' 선행스팬 1 Var1=abs(Var45-var46) ' 구름대폭 Var2=high-low Var3=mov(Var2,len2,s)*multi Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<var3 Then Var10=1 Else Var10=0
If hhv(1,var10,delay)=1 Then If ttime<1500 Then If Cond1=False Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) If Cond2=False Then Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) 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) < 수식 4-14> 를보면최적화를통해서기본적으로사용하는변수값 ( 선행스팬 1(9,26봉 ), 선행스팬2(52)) 과다소다르게선행스팬 1은 9, 24, 선행스팬 2는 48을사용하였다. 이구름대의폭이 Range보다적으면수렴구간으로간주하고돌파전략을구사한다. 적용한그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-4> DD_CongestionBreak( 일목 ) 12
주 ) 신호 : 일목균형표 ( 구름대 ), 지표 : DD_CongestionBreak( 일목 ) < 그림 4-10> 을보면구름대폭이 range폭보다적은구간 ( 히스토그램 ) 에서데이트레이딩전략중 Rangebreak의진입방법을이용해서매도를두번시행한구간을표시하고있다. 앞서설명한볼린저밴드와그물망차트, 일목균형표를이용한수렴돌파전략의테스트결과를동시에보기로하자. < 표오류! 지정한스타일은사용되지않습니다.-4> 테스트결과 ( 볼린저밴드, 그물망, 일목균형표 ) 평가항목볼린저밴드그물망일목균형표 총손익 79,483.71 89,154.10 83,626.37 평균손익 106.12 100.29 98.85 최대손실 -953.22-1,132.98-1,120.12 총매매수 749 889 846 연속이익매매수 8 8 8
연속손실매매수 8 7 8 최대자본인하액 -2,917.82-3,993.36-4,197.29 승률 50.33 49.83 49.76 손익비 1.82 1.73 1.73 평균손익비 1.80 1.74 1.75 보상비율 27.24 22.33 19.92 변수값 40,1,30,5,5,0.37,2.7 20,10,2,2,5,0.37,2.7 9,24,20,2,8,0.37,2.7 주 ) 필수적으로보유해야할바수 : 100, 단위 : 천원, %, 배 세가지전략모두평균손익이 10 만원전후로유용한결과를보였다. 특히볼린저밴드의경우총손익이가장낮은반면, 최대손실및최대자본인하액이가장낮은수준으로보상비율은 27.31로가장높게나타났다. 또한일목균형표보다는그물망차트가수익과위험측면에서좀더좋은결과를나타냈다. 14
(5) 주가채널 (Price Channel) 주가채널은일정기간동안의최고가채널선과최저가선으로구성된지표이다. 이동평균선과함께가장기본적인기술적지표로서, 여기서는수렴돌파형태로만전략식을작성해보도록하자. < 수식오류! 지정한스타일은사용되지않습니다.-5> DD_CongestionBreak( 주가채널 ) 영역 : 전략 이름 : DD_CongestionBreak( 주가채널 ) Input: len(15), multi(6), delay(5), s1(0.53), s2(2.7) Var1=hhv(1,high,len)-llv(1,low,len) Var2=high-low Var3=mov(Var2,len,s)*multi Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<var3 Then Var10=1 Else Var10=0 If hhv(1,var10,delay)=1 then If ttime<1500 Then If Cond1=False Then Call buy(" 매수 1",Atstop,Def,lowd+(highd(1)-lowd(1))*s1) If Cond2=False Then Call sell(" 매도 1",Atstop,Def,highd-(highd(1)-lowd(1))*s1) 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-15> 를보면주가채널의폭이 Range의일정폭이하일경우에수렴국면이라판단하고, 수렴구간이발생하면돌파진입전략을구사하는전략식
이다. 적용된그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-5> DD_CongestionBreak( 주가채널 ) 주 ) 신호 : 진입, 청산가격, 지표 : > DD_CongestionBreak( 주가채널 ) < 그림 4-11> 을보면가격에는주가채널 (price channel) 이적용되어있다. 이상한폭이 Range의일정수준이하면수렴국면이라판단하고돌파형태의진입전략을구사하게되는데, < 그림 4-11> 의경우매수방향으로매매가발생하였다. 테스트결과는 DMI지표와함께확인하고이제 DMI지표를활용하여수렴돌파매매방법에대해서알아보자. (6) DMI 지표이용 DMI(Directional Movement Index) 지표는가장빈번하게사용되는수렴구간파악지표로서 +DI, -DI, ADX, ADXR 의 4가지선으로구성되어있다. 여기서는자세한공식의전개를피하고간단하게각각의선의의미만을파악해보자. 16
우선 +DI지표는상승 (uptrend) 추세를나타내며 DI 지표는하락 (downtrend) 추세를나타낸다. 따라서 +DI > -DI 이면상승추세가진행중이고, 반대이면하락추세가진행중임을파악할수있게된다. ADX지표는변동성을나타내는지표로서 ADX가일정수준이나 ADXR보다크고상승중이면변동성이증가하고있다는것을나타내며, 일정수준이하거나하락중이면변동성감소나수렴국면이라는것을나타내는지표이다. ADXR지표는 ADX지표의이동평균선형태의지표이다. 따라서 ADX가일정수준이하이거나하락하고있는구간을수렴구간으로정의할수있으며, 이러한지표의특성을이용해서수렴돌파전략을작성할수있게된다. 영역 : 전략 < 수식오류! 지정한스타일은사용되지않습니다.-6> DD_CongestionBreak(DMI) 이름 : DD_CongestionBreak(DMI) Input: len(21), level(30), delay(2), s1(0.37), s2(2.7) Var1=adx(len) Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If Var1<level And Var1>var1(delay) Then If ttime<1500 Then If Cond1=False Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) If Cond2=False Then Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) 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)
< 수식 4-16> 을보면 RangeBreak 전략을사용하는데 ADX 지표가일정수준이하에서상승중일경우에만진입하는식으로구성되어있다. 적용된그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-6> DD_CongestionBreak(DMI) 주 ) 신호 : 진입, 청산가격, 지표 : DMI(ADX) < 그림 4-12> 를보면 7월 11일에서는 ADX지표가상승중이어서진입이가능한시점으로출발하였으나 30선을넘어서면서는매매가발생하지못하게되었다. 반면 7월14일에는다시 ADX지표가상승중으로매매발생이가능하게출발하였고매수진입이발생하였다. 앞서설명한주가채널방법과함께테스트결과를보기로하자. 18
< 표오류! 지정한스타일은사용되지않습니다.-5> 테스트결과 ( 주가채널, DMI 지표 ) 평가항목주가채널 DMI 지표 총손익 84,119.48 82,278.42 평균손익 62.26 118.22 최대손실 -1,215.33-961.12 총매매수 1,351 696 연속이익매매수 7 8 연속손실매매수 9 7 최대자본인하액 -4,870.95-3,379.31 승률 46.34 51.15 손익비 1.42 1.95 평균손익비 1.64 1.86 보상비율 17.27 24.35 변수값 15, 6, 5, 0.53, 2.7 21, 30, 2, 0.37, 2.7 주 ) 필수적으로보유해야할바수 : 100 < 표 4-15> 를보면비슷한총손익을보이고있으나주가채널의경우위험이다소커서모든판단비율 ( 손익비, 평균손익비, 보상비율 ) 이다소낮게나타났다. 또한 DMI지표의경우평균손익이 11만원으로적은매매에서높은수익이발생하였음보여주고있다. 따라서 DMI지표를진입필터로사용한수렴돌파전략이유용하다는것을알수있다. 그러면이제부터패턴분석을통한수렴돌파전략에대해서알아보기로하자. (7) 인사이드데이 (Inside Day = ID) 전략 인사이드데이란전일고가보다금일고가가낮고, 전일저가보다금일저가가높은패턴을말한다. 인사이드데이반대패턴은아웃사이드데이 (Outside Day= 전일고가보다금일고가가높고, 전일저가보다금일저가가낮은패턴 ) 라한다.
인사이드데이패턴은말그대로수렴되는패턴이된다. 여기서는일간패턴으로간주하지않고단순봉패턴으로간주해서전략식을작성해보자. < 수식오류! 지정한스타일은사용되지않습니다.-7> DD_CongestionBreak(ID) 영역 : 전략 이름 : DD_CongestionBreak(ID) Input: delay(9), s1(0.2), s2(2.7), s3(0.49) Var1=high-low Var2=mov(Var1,delay,s) Cond12=False If ttime<1500 Then Cond12=high(1)>=high And low(1)<=low And tdate=tdate(1) If Cond12=True Then Var10=1 Else Var10=0 Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If hhv(1,var10,delay)=1 And tdate(hhb(1,var10,delay))= tdate Then If ttime<1500 And Cond1=False Then If opend+(highd(1)-lowd(1))*s1<close Then Call buy(" 매수 ",Atstop,Def,high+var2*s3) If ttime<1500 And Cond2=False Then If opend-(highd(1)-lowd(1))*s1>close Then Call sell(" 매도 ",Atstop,Def,low-var2*s3) 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) 20
< 식 4-17> 을보면당일중에 ID 패턴이발생하면이후 9봉이내 (delay) 에서는고저돌파매매전략을구사하세구성되어있다. 여기에추가로매수의경우에는시초가대비일정수준이상에서만매수발생, 시초가대비일정수준이하에서만매도발생하게구성되어있다. 적용된그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-7> DD_CongestionBreak(ID) 주 ) 신호 : DD_CongestionBreak(ID) 그림을보면하루중 ID 패턴이수차례발생하고있음을알수있다 ( 저가에화살표로표시된부분 ). 이중에서시초가대비일정수준이상을나타내는매수레벨과매도레벨을봉의종가가벗어난방향으로만매매를하게끔되어있어, 위경우에는매도신호가발생하였다.
(8) NR(Narrow Range) 전략 Narrow Range 패턴은현재의 Range( 고가- 저가 ) 가최근 N봉중가장적을경우에적용된다. 즉 3봉의 Range 중현재봉이가장적은값을가지면 NR 패턴이되며이러한패턴이발생하면돌파전략을구사하는방법을사용한다. < 수식오류! 지정한스타일은사용되지않습니다.-8> DD_CongestionBreak(NR) 영역 : 전략 이름 : DD_CongestionBreak(NR) Input: len(2), s1(0.2), s2(2.7), s3(0.01) Var1=high-low Cond11=False Cond11= Var1=llv(1,Var1,len) And ttime<1500 Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If ttime<1500 Then If Cond1=False Then If Cond11=True And Cond11(1)=False Then If opend+(highd(1)-lowd(1))*s1<close Then Call buy(" 매수 ",Atstop,Def,high+var1*s3) If Cond2=False Then If Cond11=True And Cond11(1)=False Then If opend-(highd(1)-lowd(1))*s1>close Then Call sell(" 매도 ",Atstop,Def,low-var1*s3) 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) 22
< 수식 4-18> 의경우 2 봉간 NR 이비연속적으로발생한시점에서고저돌파진입전략을구사한다. 역시시초가대비일정수준이상에서만매수, 이하에서만매도전략이작동하도록구성되어있다. 적용된그림을보자. < 그림오류! 지정한스타일은사용되지않습니다.-8> DD_CongestionBreak(NR) 주 ) 신호 : DD_CongestionBreak(NR) < 그림 4-14> 의원호부분을보면매수레벨이상에서 NR 패턴이발생하였고그다음봉에서고점돌파로매수가완성되었다. 그러면이제일간 ID, NR 패턴을분간에적용하는방법을사용해보자. (9) 일간 ID, NR 전략 일간차트에서 Inside Day 나 Narrow Range가발생하면분간차트에서데이트레이딩돌파전략을구사하는방법을적용해보도록하자. 이러한형태는전형적인필터링 (Filtering) 기법으로서일간차트에서패턴이발생하여야만, 분차트를이용한매매가허용되기때문에나쁜진입신호를필터링해주는역할을한다.
< 수식오류! 지정한스타일은사용되지않습니다.-9> DD_CongestionBreak(IDNR_Day) 영역 : 전략이름 : DD_CongestionBreak(IDNR_Day) Input: s1(0.37), s2(2.7) 'NR2 If highd(1)-lowd(1)=min(highd(1)-lowd(1),highd(2)-lowd(2)) Then Cond11=True Else Cond11=False 'ID,ID2 If (highd(2)>=highd(1) And lowd(2)<=lowd(1)) _ Or (highd(3)>=highd(2) And lowd(3)<=lowd(2) And _ highd(2)>=highd(1) And lowd(2)<=lowd(1))then Cond12=True Else Cond12=False Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If ttime<1500 Then If Cond1=False Then If Cond11=True Or Cond12=True Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) end if If Cond2=False Then If Cond11=True Or Cond12=True Then Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) 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) 24
< 수식 4-19> 를보면 2일을이용한 Narrow Range 패턴과 2일을이용한 Inside Day, 3일을이용한 2일연속 Inside Day가발생하는 ID2 패턴을추가하였고, 이러한패턴이발생하면 10분차트에 RangeBreak전략을구사하게끔구성된전략식이다. 적용그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-9> DD_CongestionBreak(IDNR_Day) 주 ) 추세 : DD_CongestionBreak(IDNR_Day), 신호 : 진입, 청산가격 < 그림 4-15> 는추세영역으로매매일과매매를안하는날을표시하였다. 매매일은일간으로 ID, ID2, NR 패턴이발생한다음날이된다. 위그림에서보면매매일날매수하여수익이발생하는것을보여준다. 그러면여기서앞서설명한 ID, NR 전략과함께과거테스트결과를살펴보자.
< 표오류! 지정한스타일은사용되지않습니다.-6> 테스트결과 (ID, NR, ID/NR Day) 평가항목 ID NR ID/NR_Day 총손익 75,009.44 78,923.92 70,932.34 평균손익 90.37 90.20 126.44 최대손실 -923.53-912.72-1,132.98 총매매수 830 875 561 연속이익매매수 8 9 8 연속손실매매수 7 7 6 최대자본인하액 -3,936.35-3,678.22-3,712.55 승률 50.48 49.14 51.87 손익비 1.68 1.68 1.96 평균손익비 1.65 1.73 1.82 보상비율 19.06 21.46 19.11 변수값 8, 0.2, 2.7, 0.49 2, 0.2, 2.7, 0.01 0.37, 2.7 주 ) 필수적으로보유해야할바수 : 100 세가지모두총손익측면에서앞서설명한전략들보다낮은수준을보인다. 하지만 ID/NR_Day 전략은매매건수가 561건으로서가장작은매매건수인반면, 평균손익이 12만원으로나쁜매매가잘제어되어높은평균손익을달성했다. 더욱이승률도 52% 대로충분히사용가능한전략임을알수있다. 26