예스스팟에서
Account1.Balance.count를 가져올 때 이상한 현상을 발견했습니다.
종목은 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
를 통해 선물근월물로 해두고...
---- 거래내역 ----
13:00에 잔고 4계약
13:05에 4계약 청산
13:10에 전략을 껐다가 다시 켠 후 MessageLog로 잔고를 출력해보니 1계약이라고 하네요
------------------
분명히 0일텐데 왜 이러지 하고 잔고조회 화면에서 조회를 해보니 0이 맞았구요.
그 후 다시 켜니 이번엔 잔고 0 이라고 메시지가 출력됨
** 예스스팟을 컴퓨터 2대로 운영중인데 1계약은 다른 컴퓨터에서 청산함
-> 잔고를 계좌에서 읽어오는게 아니라 해당 기기의 프로그램에서 읽어오는 것인지??
-> 그래서 화면 조회 후 다시 0으로 나온게 아닌지 의심이 됨
이전에도 유사한 문제가 발생했었는데 원인을 찾지 못했습니다.
전략 운용에 차질이 있습니다... 확인 바랍니다.
답변 1
예스스탁
예스스탁 답변
2015-06-30 11:48:37
안녕하세요
예스스탁입니다.
프로그램에서는 원장의 부하방지와 처리속도를 위해 가원장을 만들어 사용하게 됩니다.
가원장은 최초 스팟실행시에 원장에서 값을 받아온 이후에
해당 피씨로 전송되는 주문접수응답과 체결응답으로 업데이트를 해가게 됩니다.
잔고조회 화면에서 잔고를 조회하면 원장에서 값을 조회하게 되므로
가원장도 다시 원장에서 값을 가져와 새로 업데이트가 됩니다.
증권사별로 좀 다르지만 다른 피씨에서 발생한 주문이거나 다른매체에서 주문을 한 경우에는
해당 피씨로 전송이 되지 않을 수도 있습니다.
피씨를 여러대 사용하시거나 다른매체를 통해 주문을 할경우를 대비해
수식안에서 가원장을 적당한 시점에 갱신하는 내용을 추가하셔야 합니다.
스팟의 계좌객체의 함수중에
Account1.Refresh()가 가원장을 원장과 동기화를 시키는 함수입니다.
스팟의 OnStart시점이나
혹은 타이머로 지정한 일정시간간격으로 한번씩 해당 함수를 구동해 주시면 됩니다.
관련해서 문의하신 있으시면 02-3453-1060으로 전화주시기 바랍니다.
즐거운 하루되세요
> 사자왕 님이 쓴 글입니다.
> 제목 : Account1.Balance.count 문제
> 예스스팟에서
Account1.Balance.count를 가져올 때 이상한 현상을 발견했습니다.
종목은 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
를 통해 선물근월물로 해두고...
---- 거래내역 ----
13:00에 잔고 4계약
13:05에 4계약 청산
13:10에 전략을 껐다가 다시 켠 후 MessageLog로 잔고를 출력해보니 1계약이라고 하네요
------------------
분명히 0일텐데 왜 이러지 하고 잔고조회 화면에서 조회를 해보니 0이 맞았구요.
그 후 다시 켜니 이번엔 잔고 0 이라고 메시지가 출력됨
** 예스스팟을 컴퓨터 2대로 운영중인데 1계약은 다른 컴퓨터에서 청산함
-> 잔고를 계좌에서 읽어오는게 아니라 해당 기기의 프로그램에서 읽어오는 것인지??
-> 그래서 화면 조회 후 다시 0으로 나온게 아닌지 의심이 됨
이전에도 유사한 문제가 발생했었는데 원인을 찾지 못했습니다.
전략 운용에 차질이 있습니다... 확인 바랍니다.