안녕하세요.
시스템 트레이딩에서 주문 함수 (Buy 또는 Sell) 사용 시 다음 봉에 진입 신호가 나타나는데 주문 함수 사용한 봉에서 진입할 수 있도록 할 수 있을까요?
답변 1
예스스탁
예스스탁 답변
2021-01-19 18:06:12
안녕하세요? 예스스탁입니다.
주문함수에 사용하는 주문타입별로 확정신호가 발생되는 시점과 신호가 발생되는 위치의 차이가 있습니다. 먼저 주문타입별로 확정신호가 발생되는 시점, 신호가 표시되는 위치에 대해 설명드리겠습니다.(주문시점은 확정신호가 발생되는 시점에 주문이 나가게 되므로 별도 표기를 생략합니다.)
onclose 타입은 if문의 조건을 만족하는 봉이 완성되는 시점에 확정 신호가 발생되며, if문의 조건을 만족하는 봉에 신호가 표시됩니다. (봉완성 시점이란 다음봉의 첫 시세 데이터가 들어오는 시점을 의미합니다)
atmarket타입은 if문의 조건을 만족하는 봉이 완성되는 시점에 확정 신호가 발생되며, if문의 조건을 만족하는 다음봉에 신호가 표시됩니다. onclos타입과 atmarket타입은 주문 시점은 동일하지만, 신호가 표시되는 위치에 차이가 납니다. 또, onclose타입의 경우 if 문의 조건을 만족할 경우 if문 조건 만족봉에서 예비신호(속이 채워지지 않은 화살표)가 발생된다는 차이점이 있습니다.
atstop타입과 atlimit타입은 if 문의 조건을 만족한 다음봉에서 주문함수 안에 입력해 놓은 가격에 도달할 때 확정 신호가 발생되며, 입력한 가격에 도달하는 봉에 신호가 표시됩니다.
atstop은 매수의 경우 지정한 가격 이상 도달할때 신호가 확정되고, atlimit은 지정한 가격 이하로 가격이 도달할때 신호가 확정됩니다. 매도의 경우는 이와 반대가 됩니다.
위의 4가지 타입 모두 if조건문이 만족하는 봉이 만들어지는 중간에는 확정신호가 발생되지 않고 그 다음봉 시가나 그 다음봉 봉 중간에 신호가 확정되게 되므로 if문 조건만족하는 봉의 중간에 주문을 낼 수 있는 방법은 없습니다.
작성하는 식이 지표의 골든크로스나 데드크로스 처럼 봉이 완성되어야만 최종적으로 확정되는 경우는 if조건문의 봉이 완성되어야만 신호가 확정되고 주문이 나가게 됩니다.
다만, 특정 가격에 도달할때 주문을 내는 식이라면 atstop이나 atlimit타입을 이용해서 입력해 놓은 가격에 도달하면 즉시 신호가 확정되면서 주문이 나가도록 봉 중간에 주문을 내보낼 수는 있습니다. 예를 들어 전일 고가에 도달하는 즉시 신호 확정시키면서 주문을 내려면 아래와 같이 atstop타입으로 작성할 수 있습니다. (이 식의 경우에도 전봉에서 marketposition이 0 이라는 조건이 만족되어야 하므로 if조건문이 만족하는 봉에 주문이 나가는 식은 아닙니다.)
if Marketposition == 0 then buy("B", atstop, dayHigh(1));
감사합니다.
> 아이아띠 님이 쓴 글입니다.
> 제목 : 주문 함수 관련 질문 드립니다
> 안녕하세요.
시스템 트레이딩에서 주문 함수 (Buy 또는 Sell) 사용 시 다음 봉에 진입 신호가 나타나는데 주문 함수 사용한 봉에서 진입할 수 있도록 할 수 있을까요?