커뮤니티

문의 드립니다.

프로필 이미지
고가행진
2016-09-08 23:43:35
1833
글번호 223988
답변완료
수고 하십니다. 계좌잔고를 청산하기 위하여 다음과 같은 프로그램을 사용하고 있습니다. 이상없이 사용하고 있었는데 오류가 발생할 때가 있습니다. 잔고 일부가 청산이 안될때가 있습니다. 이런 오류가 발생했을때는 반복해서 본 프로그램을 가동해도 남은 잔고가 청산되지 않습니다. 조치방법 부탁드립니다. function Main_OnStart() { Account1.Refresh(); var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.position == 1) Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); else if (Account1.Balance.position == 2) Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } Account1.Refresh(); }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-09-26 16:25:22

안녕하세요 예스스탁입니다. Account1.Refresh(); 위 함수가 발동을 하게 되면 원장과 가원장의 동기화가 됩니다. 동기화 중에 잔고체크하게 되면 해당 내용이 발생할수 있습니다. Account1.Refresh()가 완료되면 Main_OnUp*dateAccount이벤트가 발생되고 아이디가 30000이 리턴됩니다. 동기화 이후에 Main_OnUp*dateAccount이벤트 발생시 주문하게 하시면 됩니다. 게시판 금칙어가 있어 영문 업데이트가 Up*date와 같이 중간에 *이 들어가 있습니다. 삭제하고 사용하시면 됩니다. function Main_OnStart() { Account1.Refresh(); } function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID) { if (lUp*dateID == 3000) { var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.position == 1) Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); if (Account1.Balance.position == 2) Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } 즐거운 하루되세요 > 고가행진 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 수고 하십니다. 계좌잔고를 청산하기 위하여 다음과 같은 프로그램을 사용하고 있습니다. 이상없이 사용하고 있었는데 오류가 발생할 때가 있습니다. 잔고 일부가 청산이 안될때가 있습니다. 이런 오류가 발생했을때는 반복해서 본 프로그램을 가동해도 남은 잔고가 청산되지 않습니다. 조치방법 부탁드립니다. function Main_OnStart() { Account1.Refresh(); var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); if (Account1.Balance.position == 1) Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); else if (Account1.Balance.position == 2) Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } Account1.Refresh(); }