예스스탁
예스스탁 답변
2008-08-22 10:59:28
안녕하세요? 예스스탁입니다.
문의하신 내용 답변드리겠습니다.
먼저 10분봉을 예로 들어 '봉의 완성'이라는 개념을 설명드리겠습니다.
9:00:00초부터 9:09:59초 사이에 들어오는 시세데이타를 가지고 첫번째 봉을 만들고
9:10:00초부터 9:19:59초 사이에 들어오는 시세타이타로 두번째 봉을 만듭니다.
여기서 첫번째 봉이 완성되었다고 프로그램에서 인식하는 순간은 두번째 봉의 첫번째 시세데이타가 들어왔을때 첫번째 봉이 완성되었다고 인식을 하게 됩니다.
다음으로 주문유형에 관해서 설명드리겠습니다.
주문유형은 onclose, atmarket, atstop, atlimit 의 네가지 유형이 있습니다.
가장 일반적인 것이 onclse유형입니다.
예를들어 5이평이 20이평을 상향돌파하면 매수한다는 식을 작성할때
if CrossUp(ma(C,5), ma(C,20)) then buy(); 라고 작성하셨다면 onclose유형으로 작성한 것입니다. 이 식은
if CrossUp(ma(C,5), ma(C,20)) then buy("매수", onclose); 의 괄호속 유형이 생략된 형태입니다.
위 식으로 작성해 놓았을때 봉이 진행되는 도중에 골든크로스 발생하면 속이 비어있는 매수신호가 발생합니다.이것을 '예비신호'라고 합니다. 만일 가격이 하락하여 골든크로스 상태가 아니라면 예비신호는 사라지게 됩니다. 봉이 완성되는 순간(다음봉 첫 시세데이타가 들어오는 순간) 골든크로스 상태를 유지하고 있다면 이순간 예비신호가 빨간색으로 속이 채워지는 '확정신호'로 바뀝니다. 주문도 바로 이 순간에 나가게 됩니다.
atmarket주문 유형은 주문이 나가는 시점은 onclse형태와 동일합니다. 하지만, 골든크로스 발생된 봉에서 예비신호를 보여주지 않고 골든크로스 발생봉이 완성되는 순간 확정신호가 골든크로스 발생 다음봉에서 생기며 주문도 이때 나가게 됩니다. 즉, 신호가 발생되는 위치가 onclose는 골든크로스가 발생한 봉에서, atmarket은 골든크로스 발생 다음봉에 나타나게 된다는 차이점이 있습니다. 또, 시스템성능보고서에 진입가격을 보여줄때 onclose는 골든크로스 발생봉(신호발생봉)의 종가에 진입한 것으로 나타내고, atmarket은 골든크로스 다음봉(신호발생봉)의 시가에 진입한 것으로 나타냅니다.
시스템식은 if CrossUp(ma(C,5), ma(C,20)) then buy("매수", atmarket); 와 같이 작성합니다.
atstop주문은 봉완성을 기다리지 않고 즉시 주문을 내기 위한 주문유형입니다. 하지만, '봉이 진행되는 도중 골든크로스가 발생하면 즉시 주문 진입을 한다'와 같은 내용은 가능하지 않으며, '골든크로스가 발생되는 다음봉에서 골든크로스 발생봉의 고가의 가격에 도달하면 즉시 주문 진입한다'와 같은 내용만 가능합니다.
즉, 1차적으로는 if조건을 만족해야하고 2차적으로는 주문함수 내부에 지정된 가격을 만족해야만 주문이 나가는 기능입니다.
시스템식은 if CrossUp(ma(C,5), ma(C,20)) then buy("매수", atstop, H); 와 같이 작성할 수 있습니다.
atlimit주문은 atstop과 유사하지만, 그 방향이 반대쪽입니다. 골든크로스 발생하고 현재가가 골든크로스 발생봉의 저가에 도달하면 매수진입하려고 할때 사용할 수 있습니다. 즉, atstop은 매수일 경우 현재가 보다 더 놓은 가격을 지정해 놓고 그 가격에 도달하면 주문을 나가도록 하는 것이며, atlimit주문은 현재가보다 더 낮은 가격을 지정해놓고 그가격에 도달하면 주문을 나가도록 하는 것입니다.
일봉에서 주문이 나가지 않은 이유를 설명드리겠습니다.
일봉에서 속이 빈 매수신호가 나온다고 하셨는데, 그렇다면 onclose유형으로 시스템식이 작성된 것입니다. 그러면 봉이 완성되는 순간 주문이 나가게 되는데, 봉이 완성되는 순간은 다음봉 첫번째 시세데이타가 들어오는 순간이므로 다음날 첫시세데이타가 들어오면서 신호가 확정신호로 바뀌고 주문이 나가게 될 것입니다. 일봉이나 분봉이나 원리는 같습니다.
분봉에서는 조건만족봉의 다음봉 시세데이타가 들어오는 순간 확정신호가 되므로 주문이 발생하게 되는 것입니다.
일봉으로 봉이 만들어지는 중간에 주문을 발생시키려면 atstop주문을 사용하셔야 하는데, 이 경우에도 역시 골든크로스 발생하면 즉시 주문을 실행시키는 방법은 없으며, 현재의 일봉에서 골든크로스 발생하였고 다음날 특정 가격에 도달하면 그때 주문을 즉시 실행시킬 수 있습니다.
결론적으로 말씀드려서 현실적으로 일봉으로 자동주문을 이용하시기는 어렵다고 판단합니다.
감사합니다.
> NEPE 님이 쓴 글입니다.
> 제목 : 매수 주문이 뜨는 시점에 대해
> 안녕하세요.
시스템 트레이딩으로 투자를 하려고 합니다.
봉을 일봉으로 뜨게 하고 일정 조건을 만족하면 매수하게끔 코딩한 후에
실험을 해보려고 오늘 일정 조건을 만족하게 된 종목을 찾아서 적용을 해봤습니다.
적용하자마자 바로 주문이 뜰 줄 알았는데
속이 빈 하얀 속의 빨강 테두리 화살표만 뜨고 주문이 자동으로 나가지 않았습니다.
자동으로 주문하기 설정하고, 매수시 창 띄움도 해제해놨는데 왜 그런지 궁금합니다.
분봉에서는 얼마 안지나서 바로 주문이 체결되었는데말입니다.
------------------
예컨대 일봉으로 골든크로스가 일어나면 매수하게 해놓고
오늘 골든 크로스가 일어난 종목을 찾아서 시스템을 적용시켰더니
속이 빈 빨간 화살표만 뜨고 매수가 안됩니다.
ㅠㅠ
그래서 분봉으로 500원 이상이면 살 수 있게 코딩하고 적용했더니
시간이 지나자 몇분 안되어 체결이 되었구요.
도와주세요.