시스템으로 모의투자를 하면서 이상한 거를 발견했습니다.
진입신호에 어떠한 사유인지 모르나 진입이 되지 않은 상태에서(즉 진입이 하나도 없는 상태) 청산신호가 뜨니 청산신호에서 진입처리가 되는 현상을 발견했습니다.
참고로 한국투자증권을 통해 저는 long진입(buy) long청산(exitlong) - short진입(sell) short청산(exitshort)으로 로직을 구현해 놓았습니다.
실제사항이었으면 많은 손해가 발생할 수 있는 사항으로 보여집니다.
이를 해결할 수 있는 방법 및 예시를 부탁드립니다.
답변 2
예스스탁
예스스탁 답변
2024-07-04 11:41:32
안녕하세요
예스스탁입니다.
시스템은 차트데이터를 이용해 조건에 따라 신호를 발생하게 됩니다.
실제 계좌의 잔고여부는 수식에서는 알수 없습니다.
자동매매는 차트에서 발생하는 이 신호에 따라 자동으로 주문만 집항하게 됩니다.
Buy는 매수주문, exitlong은 매도주문,
sell은 매도주문, exitshort은 매수주문을 집행하게 됩니다.
자동매매를 시작하는 시점에
차트의 포지션 상태와 계좌의 포지션 상태가 다를 수 있습니다.
실제 계좌는 무포지션인데 차트는 이미 매수진입이나 매도진입에 들어가 있는 상태일 수 있고
이렇게 이미 진입이 발생되어 있다면 처음 발생하는 신호는 청산신호가 됩니다.
설정창에 실계좌잔고와 차트포지션이 불일치시에 사용하는
[주문시작신호]라는 옵션이 있습니다.
주문시작신호는 [모든신호]와 [진입신호] 2개의 옵션이 있습니다.
[모든신호]는 시스템 적용 후 발생한 첫신호가 청산신호라도 주문을 집행하는 옵션이고
[진입신호]는 시스템 적용 후 스템 적용 후 진입신호가 발생한 이후부터 주문을 집행합니다.
즉 [진입신호]는 시스템 적용 후 첫신호가 청산신호라면 신호만 발생하고 주문을 하지 않는 옵션입니다.
자동매매시 계좌와 차트상황에 따라 위 옵션을 이용해 상태에 맞게 적용하셔야 합니다.
차트 신호 포지션과 계좌잔고포지션이 동일하다면 모든신호로 지정하고 적용하시면 되고
새로운 진입부터 주문을 내고자 하시면 진입신호로 지정하고 적용하셔야 합니다.
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 잔고가 없음에도 청산신호에 진입되는 거 조치방법
> 시스템으로 모의투자를 하면서 이상한 거를 발견했습니다.
진입신호에 어떠한 사유인지 모르나 진입이 되지 않은 상태에서(즉 진입이 하나도 없는 상태) 청산신호가 뜨니 청산신호에서 진입처리가 되는 현상을 발견했습니다.
참고로 한국투자증권을 통해 저는 long진입(buy) long청산(exitlong) - short진입(sell) short청산(exitshort)으로 로직을 구현해 놓았습니다.
실제사항이었으면 많은 손해가 발생할 수 있는 사항으로 보여집니다.
이를 해결할 수 있는 방법 및 예시를 부탁드립니다.
답변 감사합니다.
답변을 이해 했습니다만 아쉬운 점이 있습니다.
실 잔고여부가 예스트레이드와 연동이 되지 않는다고 이해를 했습니다.
시스템 자동매매는 사람이 지켜 보지 않을 때에도 진행이 되도록 하기 위함이 큽니다.
자동매매 진입신호가 발생하여 주문이 나갔으나 체결되지 않는 경우가 발생할 수 있습니다.
이경우에 진입된 것에 대한 청산신호가 발생한 경우는 청산이 아니라 새로운 진입상태가 발생됩니다.
사람이 지켜 보는 경우는 최소한의 손해를 보고 처분 하면 되지만 지켜보지 않는 상태에서
이러한 상황이 발생되면 크나큰 손해가 발생할 확률이 높습니다.
키움과 제휴한 회사의 경우는 연동이 되는 것으로 알고 있습니다만 예스스탁에서도 연동될 수 있는 방안이 마련되었으면 바래봅니다.
GetPositionQuantity 함수를 사용해서 가능한 방법은 없는지요?
항상 감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 잔고가 없음에도 청산신호에 진입되는 거 조치방법
> 안녕하세요
예스스탁입니다.
시스템은 차트데이터를 이용해 조건에 따라 신호를 발생하게 됩니다.
실제 계좌의 잔고여부는 수식에서는 알수 없습니다.
자동매매는 차트에서 발생하는 이 신호에 따라 자동으로 주문만 집항하게 됩니다.
Buy는 매수주문, exitlong은 매도주문,
sell은 매도주문, exitshort은 매수주문을 집행하게 됩니다.
자동매매를 시작하는 시점에
차트의 포지션 상태와 계좌의 포지션 상태가 다를 수 있습니다.
실제 계좌는 무포지션인데 차트는 이미 매수진입이나 매도진입에 들어가 있는 상태일 수 있고
이렇게 이미 진입이 발생되어 있다면 처음 발생하는 신호는 청산신호가 됩니다.
설정창에 실계좌잔고와 차트포지션이 불일치시에 사용하는
[주문시작신호]라는 옵션이 있습니다.
주문시작신호는 [모든신호]와 [진입신호] 2개의 옵션이 있습니다.
[모든신호]는 시스템 적용 후 발생한 첫신호가 청산신호라도 주문을 집행하는 옵션이고
[진입신호]는 시스템 적용 후 스템 적용 후 진입신호가 발생한 이후부터 주문을 집행합니다.
즉 [진입신호]는 시스템 적용 후 첫신호가 청산신호라면 신호만 발생하고 주문을 하지 않는 옵션입니다.
자동매매시 계좌와 차트상황에 따라 위 옵션을 이용해 상태에 맞게 적용하셔야 합니다.
차트 신호 포지션과 계좌잔고포지션이 동일하다면 모든신호로 지정하고 적용하시면 되고
새로운 진입부터 주문을 내고자 하시면 진입신호로 지정하고 적용하셔야 합니다.
즐거운 하루되세요
> 하날랑 님이 쓴 글입니다.
> 제목 : 잔고가 없음에도 청산신호에 진입되는 거 조치방법
> 시스템으로 모의투자를 하면서 이상한 거를 발견했습니다.
진입신호에 어떠한 사유인지 모르나 진입이 되지 않은 상태에서(즉 진입이 하나도 없는 상태) 청산신호가 뜨니 청산신호에서 진입처리가 되는 현상을 발견했습니다.
참고로 한국투자증권을 통해 저는 long진입(buy) long청산(exitlong) - short진입(sell) short청산(exitshort)으로 로직을 구현해 놓았습니다.
실제사항이었으면 많은 손해가 발생할 수 있는 사항으로 보여집니다.
이를 해결할 수 있는 방법 및 예시를 부탁드립니다.