3. 추세선, 지지 / 저항선분석전략 추세선및주가채널, 지지 / 저항포인트인스윙포인트를활용하는전략들을여기서작성해보기로하자. 역시돌파전략형태로분류될수있으며실제매매에서자주활용하는방법들이다. 전략의개념은다음과같다.
추세선전략 : 상승, 하락추세선돌파전략 LRS전략 : 전일의선형회귀선 (linear regression line) 과전일의표준편차등을이용한선형회귀채널돌파전략 Price channel(fibo) 전략 : 주가채널 (price channel) 에피보나치수열 (0.382,0.618 등 ) 을이용한매매전략 스윙 (swing) 전략 : 주가스윙포인트를이용한매매전략 (1) 추세선 (TrendLine) 전략 추세선은두가지로구분된다. 상승하는저점을연결하는상승추세선 (Up Trendline) 과하락하는고점을연결하는하락추세선 (Down TrendLine) 이있다. 하락추세선을저항선으로, 상승추세선을지지선으로설정하여전략을작성해보자. < 수식오류! 지정한스타일은사용되지않습니다.-1> DD_TrendLine 영역 : 전략 이름 : DD_ TrendLine Input: len1(11), s1(0.36), s2(2.7) Set hvalue=arrays(10,2) Set lvalue=arrays(10,2) If shba(1,high,len1,len1)=len1 Then Var1=999999 For i = 9 To 1 Step - 1 hvalue(i,0)=hvalue(i-1,0) hvalue(i,1)=hvalue(i-1,1) Next hvalue(0,0)=shva(1,high,len1,len1) hvalue(0,1)=barnum For j = 1 To 9 If hvalue(j,0)>hvalue(0,0) Then Var1=j j=11 Next If Var1<=10 Then Var10=(hvalue(0,0)-hvalue(Var1,0))/(hvalue(0,1)-hvalue(Var1,1)) _ * shba(1,high,len1,len1)+hvalue(0,0) 2
Else Var10=999999 If slba(1,low,len1,len1)=len1 Then Var2=999999 For i = 9 To 1 Step - 1 lvalue(i,0)=lvalue(i-1,0) lvalue(i,1)=lvalue(i-1,1) Next lvalue(0,0)=slva(1,low,len1,len1) lvalue(0,1)=barnum For j = 1 To 9 If lvalue(j,0)<lvalue(0,0) Then Var2=j j=11 Next If Var2<=10 Then Var11=(lvalue(0,0)-lvalue(Var2,0))/(lvalue(0,1)-lvalue(Var2,1)) _ * slba(1,low,len1,len1)+lvalue(0,0) Else Var11=99999 If tdate<>tdate(1) Then Var50=currententrynum If currententrynum-var50 = 0 Then If ttime<1500 Then If high<var10 And Var1<=10 Then call buy(" 매수 ",Atstop,Def,Var10) If low>var11 And Var2<=10 Then Call sell(" 매도 ",Atstop,Def,Var11) Call sell(" 매도 1",Atstop,Def,opend-(highd(1)-lowd(1))*S1) Call buy(" 매수 1",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-20> 을보면배열을사용해서 10개의스윙고저 (swing high/low) 를검색하여낮아지는고가를이용해서하락추세선을, 높아지는저가를이용해서상승추세선을작성하여, 고가가하락추세선을상향돌파하면매수, 저가가상승추세선을하향돌파하면매도하는전략이다. 여기에 Rangebreak 돌파전략을동시에진입전략으로사용하였다. 적용한그림은다음과같다. < 그림오류! 지정한스타일은사용되지않습니다.-1> DD_TrendLine 주 ) 신호 : DD_Triangle 적용 < 그림 4-16> 을보면상승추세선을상향돌파함으로서매수 (8월 13일 ) 가발생하였으며, 그다음날은하락추세선의위에서시가가시작하고, 시가 + ( 전일고가-저가 )*0.36 시점을돌파할때매수가발생하는것을보여주고있다 (Rangebreak 전략 ). 이와같이일반적인돌파전락과추세선돌파방법을병행하는방법을사용하여매매건수증감및수익증가를도모할수있게된다. 4
(2) LRS(Linear Regression Slope) 전략 < 수식오류! 지정한스타일은사용되지않습니다.-2> DD_LRS 영역 : 전략이름 : DD_LRS Input: s1(2.1), len1(56), len2(2.7) If tdate<>tdate(1) Then Var1=lrs(close,len1,1) Var2=Stdev(close,len1,s1,1) ' Var2=Stderr(close,len1,1)*S1 ' 표준오차적용 Var10=1 Var3=var1*var10+opend If tdate=tdate(1) Then Var10=var10+1 Var3=var1*var10+openD Var4=var3+var2 Var5=var3-var2 Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If ttime<1500 Then If Cond1=False Then Call buy(" 매수 ",Atstop,Def,Var4) If Cond2=False Then Call sell(" 매도 ",Atstop,Def,Var5) If position<>0 Then Call exitlong(" 매수청산 ",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*len2) Call exitshort(" 매도청산 ",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*len2) End if 선형회귀선은기술적분석에서유용하게사용하는방법으로서, 채널형태로도자
주사용된다. CT 에서제공하는채널형태는다음과같다. Raff Regression Channel: 일정기간동안의선형회귀선아래위로고가, 저가중최대거리를표시한채널 Standard Deviation Channel: 일정기간동안의선형회귀선아래위로표준편차만큼을더하거나빼서표시한채널 Standard Error Channel: 일정기간동안의선형회귀선아래위로표준오차만큼을더하거나빼서표시한채널 이러한채널은추세의방향성을파악하는데유용하게사용된다. < 수식 4-21> 은전일의선형회귀식을통해서계산된기울기 (=LRS) 를이용한데이트레이딩전략이다. < 수식 4-21> 은날짜가바뀌면 56개봉에대한선형회귀선의기울기및표준편차를계산하여해당일시가를이용해서회귀선채널을작성하는방법을사용하였다. 여기서 56개봉은 10분봉기준으로하루가 28개봉이므로 2일간을의미한다. 3일을계산한다면 84개봉을이용하면된다. 주석처리된부분은표준편차대신표준오차 (Standard Error) 를적용하는전략이다. < 그림오류! 지정한스타일은사용되지않습니다.-2> DD_LRS 주 ) 신호 : DD_LRS 6
< 그림 4-17> 에서원호부분을보면전일과전전일추세가하락추세인날로서하락채널이적용되어, 이채널의상단을상향돌파하여매수가발생하였다. 그다음날은상승채널이적용되어, 상단을돌파하는추세나하단을돌파는추세가없어매매가발생하지않았다. 테스트결과는나중에확인하기로하고, 이제부터주가채널을이용하는방법에대해서알아보기로하자. (3) 주가채널 (Price Channel(Fibo)) 전략 주가채널은일정기간의최저가가지지선이고, 최고가가저항선으로작용하는지표이다. 주가채널을활용하는방법은상당히다양하다. 여기서는피보나치되돌림비율을이용해서저가매수, 고가매도하는전략을설명하겠다. 즉주가채널상단선 ( 일정기간최고가 ) 대비피보나치비율 (0.382) 이상하락이발생하면매수전략을구사하게되고, 주가채널하단선 ( 일정기간최저가 ) 대비피보나치비율 (0.382) 이상상승하면매도전략구사하는방법을말한다. 역추세적인진입방법으로서가격되돌림 (Retracement) 을이용한매매전략이다. < 수식오류! 지정한스타일은사용되지않습니다.-3> DD_Channel(Fibo) 영역 : 전략이름 : DD_Channel(Fibo) Input: len1(200), ratio(0.382), s1(0.37), s2(2.7) Var1=hhv(1,high,len1)-llv(1,low,len1) Var2=var1*ratio Var3=hhv(1,high,len1)-var2 ' high retracement Var4=llv(1,low,len1)+var2 'low retracement Cond1= tdate=exitdate(1) And position(1)=1 Cond2= tdate=exitdate(1) And position(1)=-1 If tdate<>tdate(1) Then Var50=currententrynum
If currententrynum-var50=0 Then If ttime<1500 Then Call buy(" 매수 ",Atstop,Def,opend+(highd(1)-lowd(1))*s1) Call sell(" 매도 ",Atstop,Def,opend-(highd(1)-lowd(1))*s1) If high<var3 And hhb(1,high,len1)<llb(1,low,len1) Then Call buy(" 매수 1",Atstop,Def,Var3) If low>var4 And hhb(1,high,len1)>llb(1,low,len1) Then Call sell(" 매도 1",Atstop,Def,Var4) If currententrynum-var50=1 Then If ttime<1500 Then If high<var3 And hhb(1,high,len1)<llb(1,low,len1) Then If Cond1=False Then Call buy(" 매수 2",Atstop,Def,Var3) If low>var4 And hhb(1,high,len1)>llb(1,low,len1) then If Cond2=False Then Call sell(" 매도 2",Atstop,Def,Var4) 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-22> 를보면우선장시작이후초기진입은되돌림매수, 매도와함께돌파진입을사용하였고두번째매매에서는되돌림매수, 매도만을이용하였다. 매매횟수는하루에두번매매로제한하였다. 그림을보면서자세히이해하기로하자. 8
< 그림오류! 지정한스타일은사용되지않습니다.-3> DD_Channel(Fibo) 주 ) 신호 : DD_Channel(Fibo), 필수적으로보유해야할바수 : 200 적용 < 그림 4-18> 를보면 4가지선이적용되어있는데제일위의선은 200 봉중최고가선이고제일아래선은 200봉중최저가선이다. 중간에두선은각각되돌림선이된다. 11월 20일에는기본적인돌파전략이작동하여매도가발생하였고, 11월 21일에는고점형성이후 38% 되돌림이발생한후바로상단되돌림선을상향돌파하여매수가발생한것을보여주고있다. (4) 스윙 (Swing) 전략 스윙전략은갱신되는고점이최저점대비일정수준이상이면상승방향 (up swing) 으로, 갱신되는저점이최고점대비일정수준이하이면하락방향 (down swing) 으로판단하는기술적분석기법을이용한전략이다. 설명만으로이해하기힘든부분이있으므로전략식및그림을통해서자세한설명을하기로하자.
< 수식오류! 지정한스타일은사용되지않습니다.-4> DD_Swing 영역 : 전략이름 : DD_Swing Input: perl(0.009), perh(0.017), s1(0.37), s2(2.7) If high>=var31*(1+perl) And Var1(1)<>1 Then Var1=1 Var3=high If low<=var3*(1-perh) And Var1(1)<>-1 Then Var1=-1 Var31=low If low<var31 Then Var31=low If high>var3 Then Var3=high If tdate<>tdate(1) Then Var50=currententrynum If currententrynum-var50=0 Then If ttime<1500 Then If Var1=-1 And high<var31*(1+perl) Then Call buy(" 매수 ",Atstop,Def, Var31*(1+perL)) Call sell(" 매도 1",Atstop,Def,opend-(highd(1)-lowd(1))*S1) If Var1=1 And low>var3*(1-perh) Then Call sell(" 매도 ",Atstop,Def, Var3*(1-perh)) Call buy(" 매수 1",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) 10
< 수식 4-23> 을보면스윙포인트를설정한뒤스윙방향의반대방향으로는스윙선을, 같은방향으로는돌파진입을이용한매매전략이다. 우선그림을보면서스윙포인트부터이해하기로하자. < 그림오류! 지정한스타일은사용되지않습니다.-4> 스윙포인트 주 ) 신호 : DD_Swing: 0.04, 0.04 적용 < 그림 4-19> 는연결선물지수 10분차트에 4% 스윙신호를적용한그림이다. 4% 스윙신호의의미는최고점대비 4% 하락하면최고점이스윙고점이되며, 최저점대비 4% 이상상승하면최저점이스윙저점이되는것을말한다. 그림을보면원호시점이최저점대비 4% 이상상승한시점이되어상승방향으로전환되고, 최저점이스윙저점 (SWINGLOW로표시 ) 으로확인된시점이된다. 현재는상승방향을유지하는가운데최고점이 114 전후로서 110 포인트전후가 4% 전환포인트가되는것을보여주고있다. 위와같은스윙포인트및스윙선을이용한매매전략을적용한그림을보기로하자.
< 그림오류! 지정한스타일은사용되지않습니다.-5> DD_Swing 주 ) 신호 : DD_Swing < 그림 4-20> 은스윙신호및스윙전략을적용한그림이다. 날짜가진행되면서스윙선위에서주가가형성되어있는상황이지속되어돌파매수진입이 3 번연속적으로발생하였다 ( 네모표시 ). 그뒤스윙선하향이탈이발생하면서스윙선을이용한매도진입이발생하는것을보여주고있다 ( 원표시 ). 따라서위전략은스윙지표를이용한방향성매매에단기돌파전략이결합된형태라는알수있다. 스윙포인트를설정하는또다른방법은변동성을이용하는방법이다. 위식을다소변형하여변동성스윙전략을작성해보자. < 수식오류! 지정한스타일은사용되지않습니다.-5> DD_Swing(Range) 영역 : 전략 이름 : DD_Swing(Range) Input: perl(4.9), perh(10), len1(100), s1(0.37), s2(2.7) Var20=high-low Var21=mov(Var20,len1,S) If high>=var31+var21*perl And Var1(1)<>1 Then Var1=1 Var3=high 12
If low<=var3-var21*perh And Var1(1)<>-1 Then Var1=-1 Var31=low If low<var31 Then Var31=low If high>var3 Then Var3=high If tdate<>tdate(1) Then Var50=currententrynum If currententrynum-var50=0 Then If ttime<1500 Then If Var1=-1 And high<var31+var21*perl Then Call buy(" 매수 ",Atstop,Def, Var31+var21*Perl) Call sell(" 매도 1",Atstop,Def,opend-(highd(1)-lowd(1))*S1) If Var1=1 And low>var3-var21*perh Then Call sell(" 매도 ",Atstop,Def, Var3-var21*Perh) Call buy(" 매수 1",Atstop,Def,opend+(highd(1)-lowd(1))*S1) If currententrynum-var50=1 Then If ttime<1500 Then If Var1=-1 And high<var31+var21*perl Then Call buy(" 매수 2",Atstop,Def, Var31+var21*Perl) If Var1=1 And low>var3-var21*perh Then Call sell(" 매도 2",Atstop,Def, Var3-var21*Perh) 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-24> 를보면고가 - 저가인 Range를이용해서변동성를계산하고변동성을이용한 swing point 및스윙선을사용해서매매를하는전략식이다. 전략식은 % 를이용하는경우와동일하게적용하였다. 적용된그림을보자. < 그림오류! 지정한스타일은사용되지않습니다.-6> DD_Swing(Range) < 그림 4-21> 은 < 그림 4-20> 과동일한구간에전략을적용한그림이다. 스윙선위에가격이위치하고있어매수방향만매매하는형태를보이고있는데, < 그림 4-20> 과다르게 8월 26일에도스윙선위에주가가위치하고있어신규매도가발생하지않았다는것을알수있다. 이제추세선, 지지 / 저항선전략들에대해서모두알아보았다. 여기서설명한전략이외에도무수히많은진입전략이가능하다는것을이해하기바라며, 여기까지의전략들의과거테스트결과를알아보기로하자. 14
< 표오류! 지정한스타일은사용되지않습니다.-1> 테스트결과비교 ( 추세선, 선형회귀선, 가격채널 ( 피보나치 )) 평가항목 DD_TrendLine DD_LRS DD_Channel(Fibo) 총손익 84,027.20 82,981.46 81,033.54 평균손익 94.95 95.16 90.14 최대손실 -1,086.88-878.74-1,374.66 총매매수 885 872 899 연속이익매매수 7 9 7 연속손실매매수 10 10 8 최대자본인하액 -4,801.51-3,598.05-3,995.77 승률 47.80 48.62 49.05 손익비 1.62 1.65 1.62 평균손익비 1.77 1.74 1.68 보상비율 17.50 23.06 20.28 변수값 11,0.36,2.7 2.1,56,2.7 200,0.382,0.37,2.7 주 ) 필수적으로보유해야할바수 : 100, DD_Channel(Fibo): 200 < 표오류! 지정한스타일은사용되지않습니다.-2> 테스트결과비교 ( 스윙, 스윙 ( 레인지 )) 평가항목 DD_Swing DD_Swing(Range) 총손익 78,292.85 71,957.00 평균손익 93.99 101.35 최대손실 -919.18-1,632.56 총매매수 833 710 연속이익매매수 7 7 연속손실매매수 8 6 최대자본인하액 -4,457.04-3,110.42 승률 47.18 51.55 손익비 1.61 1.73 평균손익비 1.80 1.63 보상비율 17.57 23.13
변수값 0.009, 0.017, 0.37, 2.7 4.9, 10, 0.37, 2.7 주 ) 필수적으로보유해야할바수 : 100 < 표 4-17> 의전략들이유용한결과를나타냈다. 총손익은 DD_TrendLine전략이, 평균손익과승률, 손익비와보상비율은 DD_Swing(Range) 가높게나타났다. 최대자본인하액및최대손실은 DD_LRS전략이낮게나타났으며, 평균손익비는 DD_Swing전략이높게나타났다. 전반적으로추세선및지지 / 저항선을이용한매매전략에서는수익곡선의상승유지가여타전략들보다다소좋은것이특징이었다. 그럼이제모형분석전략에대해서알아보기로하자. 16