커뮤니티

시스템 신호 나왔을때 바로바로 매수하려면?

프로필 이미지
gara0210
2011-10-17 16:53:38
654
글번호 205487
답변완료
코덱스 200 일봉 이평 골든데드크로스와 손절 이용해서 시스템하려합니다. 오늘 신호가나왔는데 주문을 안하네요. 왜 그런건지 ; 골든데드 크로스나왔을때 나온바로 당시 그시간에 매매 청산 하려면 어떻게 해야 하나요? 또 손절신호 나오면 바로바로 손절하나요? 매매 설정에서 매매가격에서 사용자 지정부분에 엣스톱 엣리밋 온클로즈 부분이 있는데 이것을 잘 모릅니다 ; 여기서 설정해주는건가요? 수식 붙여 봅니다. == Input : shortPeriod(5), longPeriod(20),stopper(2.5) ; value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell(); } #손절청산 SetStoploss(StopPer);
기타
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-10-18 10:25:28

안녕하세요? 예스스탁입니다. 발생한 신호는 예비신호(속이 비어있는 신호)일 것이라고 생각됩니다. 예비신호 상태에서는 주문이 나가지 않고 봉이 완성된 순간(현재봉이 모두 만들어지고 다음봉의 첫 시세데이타가 들어오는 순간-일봉에서는 다음날의 첫시세데이타가 들어오는 순간)조건을 만족하고 있다면 이때 주문이 나가게 됩니다. 따라서 올려주신 식으로 시스템식을 만들어서 사용하실 경우 오늘 예비신호가 발생되면 다음날 아침 첫데이타가 들어올때 주문이 나가게 됩니다. 손절청산(setstoploss)의 경우는 시스템트레이딩 설정창의 매매탭 하단에 보시면 강제청산 시점으로 '조건만족시 즉시'와 '봉완성시'가 있는데 '조건만족시 즉시'로 선택해 놓으시면 장 중이라도 해당 손실이 발생한 즉시 청산주문이 발생됩니다. '봉완성시'는 봉이 완성된 시점(현재봉이 모두 만들어지고 다음봉 첫 데이타가 들어올때)에 완성된 봉의 종가가 손절청산의 지정한 값을 초과하게 되면 청산하게 됩니다. 작성하신 식은 onclose타입으로 작성된 식인데, 이 타입에서는 강제청산을 제외하고 시스템식에 의한 예비신호에서는 주문을 실행하지 않고 봉이 완성된 경우만 주문을 실행합니다. 따라서 봉 중간에 골든크로스나 데드크로스가 발생되더라도 주문을 실행하지는 않습니다. 이와 같이 처리하는 이유에 대해서 예를 들어서 설명드리도록 하겠습니다. 현재 신호도 무포지션 상태이고 계좌에 잔고도 보유하고 있지 않은 상황이라고 가정해 보겠습니다. 이 상태에서 일봉신호에서 장중에 골든크로스가 발생하여 예비신호가 발생하였는데 이때 즉시 매수주문을 하였다고 생각해 보겠습니다.그런데 장중에 가격이 다시 하락하여 골든크로스가 발생되지 않은 상태로 장이 끝나버렸습니다. 다음날 다시 시스템신호를 적용해보면 전일 골든크로스가 발생되지 않은 상태로 나오기 때문에 예비매수신호도 사라져버렸을 겁니다. 계좌에는 매수로 보유하고 있고 시스템신호는 무포지션인 상태로 있습니다. 신호와 계좌의 잔고가 서로 틀어져버린 결과가 되는 것입니다. onclose타입에서 봉중간에 주문이 발생되도록 한다면 이렇게 신호와 주문이 틀어지는 결과가 빈번하게 발생하게 됨으로써 시스템 자동주문이 현실적으로 불가능해집니다. 기술적으로 신호가 사라지게 되면 반대매매로 청산한다거나 하는 방법을 사용하여 보완하는 방법으로 지원할 수는 있겠지만, 더 근본적인 문제는 봉중간에 골든크로스나 데드크로스가 발생된 것에 대해서 과거 데이타(시뮬레이션 데이타)는 이를 알지 못한다는 것입니다. 과거 데이타는 봉의 시가, 고가, 저가, 종가의 데이타만을 갖고 있고 봉중간의 움직임을 갖고 있지 않기 때문에 봉중간의 발생사건들을 알지 못합니다. 시뮬레이션에서는 봉의 종가만을 갖고 테스트하게 되는 것인데, 실매매에서는 봉의 모든 가격으로 매매를 하게 된다면 시뮬레이션 결과와는 전혀 다른 매매를 하게 됩니다. 주문타입이 occlose가 아닌 atstop이나 atlmit타입에서는 봉중간에 주문이 나가는 구조입니다. 예를들어 전봉고가보다 한틱 놓은 가격에 도달하면 매수진입한다거나 피봇2차 저항선에 도달하면 매수진입한다거나 할때 쓸 수 있습니다. 골든크로스나 데드크로스, 스토캐스틱k선이 d선을 상향돌파와 같은 내용들은 봉이 완성되어야만 확정되는 것임에 반해서 '가격이 피봇2차 저항선 이상이 되면'과 같은 조건은 봉이 완성되지 않더라도 확정이 되는 내용입니다. 따라서 이런 경우는 봉이 완성되지 않더라도 봉중간에 주문이 실행되고, 시뮬레이션에서도 봉의 고가가 피봇2차 저항선 위에 올라간 경우가 있다면 피봇2차 저항선에 도달한 확실한 경우이므로 시뮬레이션에서도 테스트 되는 내용입니다. 감사합니다. > gara0210 님이 쓴 글입니다. > 제목 : 시스템 신호 나왔을때 바로바로 매수하려면? > 코덱스 200 일봉 이평 골든데드크로스와 손절 이용해서 시스템하려합니다. 오늘 신호가나왔는데 주문을 안하네요. 왜 그런건지 ; 골든데드 크로스나왔을때 나온바로 당시 그시간에 매매 청산 하려면 어떻게 해야 하나요? 또 손절신호 나오면 바로바로 손절하나요? 매매 설정에서 매매가격에서 사용자 지정부분에 엣스톱 엣리밋 온클로즈 부분이 있는데 이것을 잘 모릅니다 ; 여기서 설정해주는건가요? 수식 붙여 봅니다. == Input : shortPeriod(5), longPeriod(20),stopper(2.5) ; value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell(); } #손절청산 SetStoploss(StopPer);