[STage특징] 라인 오브젝트의 활용
글쓴이 : 스테이지 조회수 : 3119 작성일 : 2011-05-05
1번첨부 : 없음 2번첨부 : 없음 3번첨부 : 없음

라인 오브젝트 (Line Object)

STage차트 상에 선을 표현할 수 있는 오브젝트입니다. STage에서는 라인 오브젝트를 직접 컨트롤 할 수 있기 때문에, 이를 활용하면 Stage 차트의 고급활용이 가능합니다.
 

Plot함수를 이용하여 원하는 수식 데이터를 차트에 나타낼 수도 있지만, 이는 표현에 있어 다소 한계가 있습니다. 라인 오브젝트의 활용으로 자동으로 조정되는 지지선, 저항선, 추세선 등이 가능하며, 이외에 사용자 목적에 맞는 액티브 차트가 구현 가능합니다.
 

라인 오브젝트의 문법적인 부분과 예제를 살펴보겠습니다.
Line오브젝트 생성은 아래와 같습니다.
new라는 예약어와 Line()함수를 통해 라인 오브젝트를 생성합니다.

 

oLine = new Line( x1, y1, z1, x2, y2, z2 )


위의 문장은 위치A (x1, y1, z1)에서 위치B (x2, y2, z2)로 이어지는 oLine이라는 선을 형성합니다. 

X1 = YYYYMMDD 형식의 날짜
Y1 = HHMMSS 형식의 시간
Z1 = 가격 데이터
X1, Y1은 가로축 좌표가 되며, Z1은 세로축 좌표가 됩니다.

 

예제1)

oLine1 = new Line( 20110504, 104000, 291, 20110504, 150000, 290 )
라인 오브젝트 이해를 돕기 위한 쉬운 예를 보겠습니다. 위의 문장은 oLine1이라는 라인을 생성하는데, 2011 5 41040, 291 지점과 2011 5 4 15, 290지점을 연결합니다.

 

예제2)



oLine2 = new Line( D[60], T[60], C[60], D, T, C )
현재봉 종가와 60번째 이전 봉의 종가를 연결하는 선을 생성합니다. 하지만 위의 문장을 실행해보시면, 다수의 선이 화면에 나타나는 것을 보게 됩니다.
 

과거 봉에 대해서도 문장이 모두 실행되기 때문에, 여러개의 선이 생성되는 것입니다.
그래서 예제2는 아래와 같이 작성해주셔야 원하는 효과를 얻을 수 있습니다.


If LastBarOnChart Then
            oLine2 = new Line( D[60], T[60], C[60], D, T, C )
End If


LastBarOnChart를 이용하면 차트의 마지막 봉에서만 라인을 생성하게 할 수 있습니다. 실제 상황에서는 봉이 새롭게 갱신될 때 마다, 새로운 라인이 갱신되는 것을 보실 수 있습니다.
 

활용예제를 보시겠습니다.
예제3) 지난 20봉의 중앙값에 선을 긋기


If LastBarOnChart Then
     Value1 = Median( C, 21 )
     oLine3 = new Line( D[20], T[20], Value1, D, T, Value1)
     oLine3.Color = Blue
     oLine3.Size = 7
End If

세번째 문장 oLine3 = new Line( D[20], T[20], Value1, D, T, Value1) 부분이 라인을 생성하는 부분이고, 두번째 문장은 Median함수를 통해 중앙값을 계산하는 부분입니다.
위의 문장은 차트 상에 지난 20봉의 중앙값을 실시간으로 업데이트 시켜줍니다.

oLine3.Color = Blue
라는 부분은 oLine3라인의 색을 파란색으로 지정하는 것이며 oLine3.Size = 7은 라인의 두께를 7로 설정하는 것입니다.

라인 오브젝트에는 라인의 색상, 크기, 스타일 등의 속성과 관련 함수들이 있습니다. 자세한 내용은 추후 도움말과 앞으로 연재될 오브젝트 관련 게시물을 참고하시길 바랍니다.

활용예 한가지를 더 살펴 보겠습니다.
아래 예제에서는 매일 장 시작 후 처음 10개의 봉 동안 최고점, 최저점을 찾은 후, 해당하는 위치에 라인을 생성하며, 라인을 돌파할 경우 매수/매도 진입을 합니다.

oL1 = new Line(D[vPos2], T[vPos2], vHigh, D, T, vHigh)
oL1.SetEnd ( D, T, vHigh )
첫 문장은 라인을 최초 생성하는 문장이며, 두 번째 문장은 생성된 라인의 종료지점을 수정하여, 라인의 형태를 갱신하는 것입니다.

 

예제4) 데일리 채널 전략
5분봉 기준 처음 10봉간 최고점, 최저점 찾은 후
채널 돌파시 매수 또는 매도 진입



Input: Len1(10)
Object: oL1(Line), oL2(Line)

If Date > Date[1] Then
           DayIndex = 0
           vPos1 = BarIndex
Else
           DayIndex += 1
End If
 
If DayIndex = Len1 Then
           vPos2 = BarIndex - vPos1 
           vHigh = Highest( H, Len1 )
           vLow = Lowest( L, Len1 )
           oL1 = new Line(D[vPos2], T[vPos2], vHigh, D, T, vHigh)
           oL2 = new Line(D[vPos2], T[vPos2], vLow, D, T, vLow)
           oL1.Color = Red 
           oL1.Size = 2
           oL2.Color = Blue
           oL2.Size = 2
End IF

If DayIndex >= Len1 Then
           oL1.SetEnd ( D, T, vHigh )
           oL2.SetEnd ( D, T, vLow )
 

           Buy next bar at vHigh stop
           Sell next bar at vLow stop
End If




번호 제목 첨부 작성자 작성일 조회
24  당일종가청산, 당일청산 안내 도움말 스테이지 2013-09-13 2319
23  야간장 매매시 [당일청산], [당일종가청산] 관련.. 스테이지 2013-07-01 2142
22  STage 도움말 - 시간보정 신규옵션 안내 스테이지 2012-02-02 2209
21  STage 도움말 - 사용자 함수 옵션 설정안내 스테이지 2011-12-09 2102
20  STage 도움말 - IF문 관련 주의사항 안내 스테이지 2011-09-15 2411
19  STage 도움말 - 최적화 사용 안내 스테이지 2011-09-05 2389
18  STage 도움말 - 주문함수 안내 스테이지 2011-08-26 2970
17  STage차트 종목연동기능 안내 스테이지 2011-08-04 2567
16  STage-GOM 유의사항 공지 - 주문기능제한 스테이지 2011-08-01 2398
15  STage-GOM 사용안내 (최초 사용시) 스테이지 2011-08-01 2481
14  STage - GOM 사용도움말 배포 안내 스테이지 2011-07-28 3660
13  STage 동영상 #3 - STage 시스템주문 사용법 스테이지 2011-07-01 3040
12  STage 동영상 #2 - STage 차트 사용법 #2 스테이지 2011-07-01 2713
11  STage 동영상 #1 - STage 차트 사용법 스테이지 2011-07-01 3271
10  STage 메뉴얼 - STage 시스템 주문 설정 스테이지 2011-06-23 2904
9  STage 메뉴얼 - 사용자지표 만들기 스테이지 2011-06-01 2855
8  STage 사용법 매뉴얼 스테이지 2011-05-26 3349
7  STage 도움말 배포 안내 스테이지 2011-05-13 3614
6  [STage특징] 라인 오브젝트의 활용 스테이지 2011-05-05 3120
5  [STage특징] 함수를 객체로 활용하기 스테이지 2011-04-27 2839
4  [STage특징 및 주의사항] 함수작성 및 호출시 주.. STage 2011-04-22 3366
3  [STage특징 및 주의사항] Cross 문법 STage 2011-04-22 2771
2  [STage특징 및 주의사항] STage 2011-04-22 3143
1  STage 많은 관심 부탁드립니다. 상상나무 2011-03-22 2797
1