답변완료
수식에러가 나는데 도움요청드립니다.
해외선물을 매매하는데요
청산만 수식에 적용하려고 해서 글을 찾아보다가 아래 식을 사용하려고 하는데요
검증누르면 검증이 완료됬다고 나오긴합니다.
한국투자증권 이프렌드 글로벌 사용중인데 모의투자로 접속해서 스팟을 적용시켜 놓고
매매창에서 한계약 들어가면
메세지를 달아 디버그창으로 확인해보면
청산 항목부터 진행이 안됩니다.
한계약 수동으로 진입하면
//요청받은 종목객체 생성완료
여기까진 메세지가 나오는데
그 아래 청산부분
//종목객체 시세 업데이트
여기부터 수식에서 계속 루프가 돌고 청산이 실행이 안됩니다.
확인 좀 부탁드립니다 ㅠ
var Nth = 0;
var ItemCode = new Array(100);
var ItemObject = new Array(100);
function Main_OnStart()
{
Nth = 0;
}
//계좌의 종목편입
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)//*제거
{
//Account1 계좌에 종목이 편입
if (Account1.number == sAccntNum && lUp*dateID == 30001)//*제거
{
//해당종목 잔고 셋팅
Nth = Nth+1;//스팟 실행 후 편입된 종목수
ItemCode[Nth] = sItemCode; //종목코드 저장
Main.ReqMarketData(ItemCode[Nth], 0,0);//종목객체 생성요청
}
//Account1 계좌에 종목이 청산되 없어짐
if (Account1.number == sAccntNum && lUp*dateID == 30002)//*제거
{
//이전에 생성한 종목객체가 필요없으므로 종목객체를 삭제
for (var i = 1; i <= Nth; i++)
{
if (sItemCode == ItemObject[i].code)
{
Main.RemoveMarketData(ItemObject[i]);
}
}
}
}
//요청받은 종목객체 생성완료
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == ItemCode[Nth])
{
ItemObject[Nth] = MarketData;
}
}
//종목객체 시세 업데이트
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거
{
if (Nth >= 1)
{ //편입된 종목수 만킄만 수행
for (var i = 1; i <= Nth; i++)
{
if (ItemObject[i].code == sItemCode && lUp*dateID == 20001)//*제거
{
//잔고셋팅
Account1.SetBalanceItem(ItemObject[i].code,0);
//매수잔고
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
// 현재가가 평균단가 대비 20틱이상 하락하면 시장가로 매도주문
if (ItemObject[i].current <= Account1.Balance.avgUnitCost-ItemObject[i].GetTickSize()*20)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1);
//주문 후 해당 종목객체 삭제
Main.RemoveMarketData(ItemObject[i]);
}
}
//매도잔고
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
// 현재가가 평균단가 대비 20틱이상 상승하면 시장가로 매수주문
if (ItemObject[i].current >= Account1.Balance.avgUnitCost+ItemObject[i].GetTickSize()*20)
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0,1);
//주문 후 해당 종목객체 삭제
Main.RemoveMarketData(ItemObject[i]);
}
}
}
}
}
}
2017-10-19
2632
글번호 224228
답변완료
문의드립니다.
예스스팟에서 진입주문을 낸 다음에
실체결가를 메세지리스트로 출력하려는 아래와 같이 수식을 짷는데
cSellNum is not defined 라는 메시지가 뜨면서 오류가 납니다.
var cSell, cSellNum, cSellPrice ;
바선언이 필요없을것 같아서 안했는데
아래식에서 바선언이 들어가야하나요 ?
아래 수식 어디가 오류인지 확인 부탁드리겠습니다.
좋은 하루 되세요.
//주문 수식에서 주문에 ID 를 부여하고
cSell = A1.OrderSell( MaxCallcode , 1 , 0 , 1 );
//주문응답 수신해서 주문번호를 저장하고
function Main_OnOrderResponse(OrderResponse)
{
if ( cSell == OrderResponse.orderID )
{ cSellNum = OrderResponse.orderNum; }
}
//체결응답 수신해서 저장한 주문번호로 체결가를 저장하고 메세지리스트 찍어줌
function Main_OnNotifyFill(NotifyFill)
{
if ( cSellNum == NotifyFill.orderNum )
{
cSellPrice = NotifyFill.fillPrice;
Main.MessageList("실체결가격 콜매도 진입: "+cSellPrice);
}
}
2017-09-25
2799
글번호 224220
답변완료
Option.GetCurrent(종목코드) 문제
수고 많으십니다.
오전 장 시작하고 9시 5분 이전에 옵션 종목 현재 가격을 가져올 때 문제가 있습니다. 아래와 같이 옵션 종목을 현재가를 가져오는데, 현재가가 아니고 당일 시초가가 들어옵니다.
Option.GetCurrent(종목코드)
이 코드는 오랜 시간 사용해 왔던 것이고, 그 동안 문제가 없었는데요, 최근에 자주 이런 현상이 발생합니다. 혹시, 관련된 이슈가 보고된 것이 있는지요?
2017-08-25
2647
글번호 224207