예스스팟에서 진입주문을 낸 다음에
실체결가를 메세지리스트로 출력하려는 아래와 같이 수식을 짷는데
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);
}
}
답변 4
자오지환웅
2017-09-26 11:52:17
< 작성자 첫질문 >
아래 수식에서 오류가 납니다. 확인부탁드립니다.
//주문 수식에서 주문에 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);
}
}
------------------------------------------------------------------------------------
< 예스스탁님의 답변 >
> 불꽃기사 님이 쓴 글입니다.
> 제목 : cSellNum를 먼저 초기화하세요. 내용없음.
> ...
--------------------------------------------------------------------------------------
< 작성자 재질문 >
초보자라서 초기화 (var선언)이 헷갈립니다.
위의 식과 같은 경우에 cSell , cSellNum , cSellPrice 모두 바선언이 필요한가요?
답변처럼 cSellNum만 바선언이 필요한가요?
그리고 바선언은 전역변수일 경우에만 필요하고 지역변수일 경우에는 생략해도 되나요?
지나는 길에 잠깐 댓글을 드렸는데 예스스탁에서 답변을 다신 걸로 오해하신 것 같아 제가 단 댓글은 삭제합니다.
> 자오지환웅 님이 쓴 글입니다.
> 제목 : 초기화 (var선언)에 대해 다시 질문드립니다.
> < 작성자 첫질문 >
아래 수식에서 오류가 납니다. 확인부탁드립니다.
//주문 수식에서 주문에 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);
}
}
------------------------------------------------------------------------------------
< 예스스탁님의 답변 >
> 불꽃기사 님이 쓴 글입니다.
> 제목 : cSellNum를 먼저 초기화하세요. 내용없음.
> ...
--------------------------------------------------------------------------------------
< 작성자 재질문 >
초보자라서 초기화 (var선언)이 헷갈립니다.
위의 식과 같은 경우에 cSell , cSellNum , cSellPrice 모두 바선언이 필요한가요?
답변처럼 cSellNum만 바선언이 필요한가요?
그리고 바선언은 전역변수일 경우에만 필요하고 지역변수일 경우에는 생략해도 되나요?
예스스탁
예스스탁 답변
2017-09-27 14:39:34
안녕하세요
예스스탁입니다.
변수에 대한 선언을 살펴보시기 바랍니다.
var cSell,cSellNum,cSellPrice;
function Main_OnStart()
{
//주문 수식에서 주문에 ID 를 부여하고
var MaxCallcode = Option.GetATMCallRecent(0);
cSell = A1.OrderSell(MaxCallcode ,1,Option.GetCurrent(MaxCallcode),0);
}
//주문응답 수신해서 주문번호를 저장하고
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);
}
}
즐거운 하루되세요
> 자오지환웅 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 예스스팟에서 진입주문을 낸 다음에
실체결가를 메세지리스트로 출력하려는 아래와 같이 수식을 짷는데
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);
}
}