수고 하십니다.
계좌잔고를 청산하기 위하여 다음과 같은 프로그램을 사용하고 있습니다.
이상없이 사용하고 있었는데 오류가 발생할 때가 있습니다.
잔고 일부가 청산이 안될때가 있습니다.
이런 오류가 발생했을때는 반복해서 본 프로그램을 가동해도 남은 잔고가 청산되지 않습니다.
조치방법 부탁드립니다.
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();
}