커뮤니티

OrderBuy, OrderSell 질문

프로필 이미지
jonathan
2014-04-25 16:00:22
1185
글번호 222943
답변완료
안녕 하세요. 질문이 있어 문의 드립니다. 1. currentPos = Account1.Balance.position; 시험 적용을 하고 진입을 했습니다. 그리고 전략을 없애고 나서 다시 시험 적용을 했는데 Account1.Balance.position이 "-1"로 뜹니다. 현재 차트 주문으로 확인을 하면 진입이 된 상태인데 포지션이 없다고 나오는데 원래 그런건지 궁금 합니다. *** 해결 했습니다. => SetBalanceItem(sItemCode, nPosition) 이 함수를 실행하고 사용 하면 되네요. 2. Option 행사가의 갯수를 보고 싶어 간단히 짰는데 모의라서 그런지 값이 0으로 나옵니다. 실제 돈을 입금하고 해야 가능 한건가요? UNum = Option.uppersATM; LNum = Option.lowersATM; 3. 아래와 같이 OrderSell과 OrderBuy를 테스트 하는데 Account1.OrderBuy(OrdeCode, 1, Present.current, 0); 로 사용하면 진입에 문제가 없는데 Account1.OrderBuy(OrdeCode, 1, Present.current, 1); Account1.OrderBuy(OrdeCode, 1, 0, 1); //문서 예제 10번 을 사용하면 "주문 가격이 하한가 이하입니다"로 표시 되고 진입이 안됩니다. OrderBuy의 nPriceKind값이 시장가(1)로 진입이 안되는건지 모르겠네요. function Main_OnStart() { Main.MessageList("선물 START"); OrderCode = Main.GetOrderCode(Present.code); Main.MessageList("OrderCode = ", OrderCode); Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { //ret_value = Account1.OrderBuy(OrderCode, 1, Present.current, 0); ret_value = Account1.OrderBuy(OrderCode, 1, Present.current, 1); Main.KillTimer(1); } function Main_OnOrderResponse(OrderResponse) { Main.MessageList("Main_OnOrderResponse"); Main.MessageList("Error=", OrderResponse.error, ", orderCount=", OrderResponse.orderCount); Main.MessageList("orderID=", OrderResponse.orderID, ", orderKind=", OrderResponse.orderKind); Main.MessageList("orderPrice=", OrderResponse.orderPrice, ", priceKind=", OrderResponse.priceKind); } function Main_OnNotifyFill(NotifyFill) { Main.MessageList("Main_OnNotifyFill"); Main.MessageList("fillCount=", NotifyFill.fillCount, ", fillPrice=", NotifyFill.fillPrice); Main.MessageList("Error=", NotifyFill.error, ", orderCount=", NotifyFill.orderCount); Main.MessageList("orderPrice=", NotifyFill.orderPrice, ", priceKind=", NotifyFill.priceKind); }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-04-25 17:03:18

안녕하세요 예스스탁입니다. 1, 예 스팟에서는 특정종목의 잔고를 셋팅하셔야 Balance객체에 해당 종목의 잔고정보다 저장되게 됩니다. 2. 예스트레이더 상단의 관리메뉴에서 종합환경설정의 예스스팟에서 옵션데이터 사용여부에 사용으로 설정하셔야 스팟의 옵션객체에 데이터가 수신됩니다. 사용으로 설정하시면 됩니다. 3. 스팟식의 문제는 아니고 모의투자는 그 특성상 시장가주문을 내실수 없습니다. 지정가로만 가능합니다. 즐거운 하루되세요 > jonathan 님이 쓴 글입니다. > 제목 : OrderBuy, OrderSell 질문 > 안녕 하세요. 질문이 있어 문의 드립니다. 1. currentPos = Account1.Balance.position; 시험 적용을 하고 진입을 했습니다. 그리고 전략을 없애고 나서 다시 시험 적용을 했는데 Account1.Balance.position이 "-1"로 뜹니다. 현재 차트 주문으로 확인을 하면 진입이 된 상태인데 포지션이 없다고 나오는데 원래 그런건지 궁금 합니다. *** 해결 했습니다. => SetBalanceItem(sItemCode, nPosition) 이 함수를 실행하고 사용 하면 되네요. 2. Option 행사가의 갯수를 보고 싶어 간단히 짰는데 모의라서 그런지 값이 0으로 나옵니다. 실제 돈을 입금하고 해야 가능 한건가요? UNum = Option.uppersATM; LNum = Option.lowersATM; 3. 아래와 같이 OrderSell과 OrderBuy를 테스트 하는데 Account1.OrderBuy(OrdeCode, 1, Present.current, 0); 로 사용하면 진입에 문제가 없는데 Account1.OrderBuy(OrdeCode, 1, Present.current, 1); Account1.OrderBuy(OrdeCode, 1, 0, 1); //문서 예제 10번 을 사용하면 "주문 가격이 하한가 이하입니다"로 표시 되고 진입이 안됩니다. OrderBuy의 nPriceKind값이 시장가(1)로 진입이 안되는건지 모르겠네요. function Main_OnStart() { Main.MessageList("선물 START"); OrderCode = Main.GetOrderCode(Present.code); Main.MessageList("OrderCode = ", OrderCode); Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { //ret_value = Account1.OrderBuy(OrderCode, 1, Present.current, 0); ret_value = Account1.OrderBuy(OrderCode, 1, Present.current, 1); Main.KillTimer(1); } function Main_OnOrderResponse(OrderResponse) { Main.MessageList("Main_OnOrderResponse"); Main.MessageList("Error=", OrderResponse.error, ", orderCount=", OrderResponse.orderCount); Main.MessageList("orderID=", OrderResponse.orderID, ", orderKind=", OrderResponse.orderKind); Main.MessageList("orderPrice=", OrderResponse.orderPrice, ", priceKind=", OrderResponse.priceKind); } function Main_OnNotifyFill(NotifyFill) { Main.MessageList("Main_OnNotifyFill"); Main.MessageList("fillCount=", NotifyFill.fillCount, ", fillPrice=", NotifyFill.fillPrice); Main.MessageList("Error=", NotifyFill.error, ", orderCount=", NotifyFill.orderCount); Main.MessageList("orderPrice=", NotifyFill.orderPrice, ", priceKind=", NotifyFill.priceKind); }