커뮤니티

질문입니다.

프로필 이미지
jacob라
2015-10-02 15:21:33
2270
글번호 223679
답변완료
바쁘신데 죄송하지만 예스스팟 메뉴얼 예제 7번을 실행해 보았더니 오류창에 TypeError : 이미 같은 종목(“000000000”)이 있습니다. 이런 문구가 뜹니다. C1과 C2에는 연결선물지수를 적용시키고 실행했습니다. function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } 위에서 'Main.ReqMarketData(Signal.code, 0);' 이부분에서 문제가 발생하는 걸로 확인이 되었는데 어떤 오류인지 설명 부탁드리겠습니다.
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2015-10-02 17:09:50

안녕하세요 예스스탁입니다. TypeError : 이미 같은 종목("000000000")이 있습니다. 위와 같은 메세지가 출력했다면 연결선물지수에 대한 종목데이터가 이미 존재한다는 내용입니다. 스크립트 객체화면에서 종목객체로 이미 지정이 되어 있거나 혹은 해당 코드 안에서 먼저 해당 종목의 종목객체를 요청해서 수신받은 경우입니다. 예제7번은 스크립트 객체화면에 종목객체가 없어야 합니다. 6번은 종목객체를 설정하고 7번은 설정하지 않고 수식안에서 종목객체를 생성하는 내용입니다. 스크립트 객체설정화면에서 종목객체 설정여부를 확인하시기 바랍니다. 즐거운 하루되세요 > jacob라 님이 쓴 글입니다. > 제목 : 질문입니다. > 바쁘신데 죄송하지만 예스스팟 메뉴얼 예제 7번을 실행해 보았더니 오류창에 TypeError : 이미 같은 종목(“000000000”)이 있습니다. 이런 문구가 뜹니다. C1과 C2에는 연결선물지수를 적용시키고 실행했습니다. function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } 위에서 'Main.ReqMarketData(Signal.code, 0);' 이부분에서 문제가 발생하는 걸로 확인이 되었는데 어떤 오류인지 설명 부탁드리겠습니다.
프로필 이미지

jacob라

2015-10-04 17:50:50

jacob라 님에 의해 삭제된 답변입니다.
프로필 이미지

jacob라

2015-10-04 17:57:28

차트객체와 계좌객체만 설정해놓은 상태입니다. 혹시 몰라 코드도 첨부합니다. 차트객체를 두개 추가하였는데요.. 그 두 가지 차트에 같은 종목을 적용시켰는데, 그 부분에 문제가 있는건가요? [코드첨부] var Start; var Skind; var Scode; var Scount; function Main_OnStart() { Main.MessageList("시작",getTHHMMSS()); //잔고, 미체결수량 확인 사용자함수 BalanceAndUnfill(); Start = 0; } function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } function Main_OnRcvMarketData(MarketData) { var SSEobject = MarketData; var dayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,0); var dayma2 = C2.GetIndicatorData("이동평균 5_20_60", 2,0); var dayma3 = C2.GetIndicatorData("이동평균 5_20_60", 3,0); var predayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,1); var slowK = C2.GetIndicatorData("Stochastics",1,0); if (Skind == 1 && dayma1 > dayma2 // && dayma2 > dayma3 // && dayma1 > predayma1 && slowK <= 50) { Position = 1; BID = A1.OrderBuy(Scode,Scount,SSEobject.Ask(2),0); Start = 1; Main.MessageList("신호완성/", Signal.signalKind, ".매수주문:", getTHHMMSS() , "주문수량[", Scount, "] 주문식별번호[", BID, "]"); } if (Start == 1 && Skind == 2) { Position = -1; SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0); Main.MessageList("신호완성/", Signal.signalKind, ".매도주문:", getTHHMMSS() , "주문수량[", Scount, "] 주문식별번호[", SID, "]"); } } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 질문입니다. > 안녕하세요 예스스탁입니다. TypeError : 이미 같은 종목("000000000")이 있습니다. 위와 같은 메세지가 출력했다면 연결선물지수에 대한 종목데이터가 이미 존재한다는 내용입니다. 스크립트 객체화면에서 종목객체로 이미 지정이 되어 있거나 혹은 해당 코드 안에서 먼저 해당 종목의 종목객체를 요청해서 수신받은 경우입니다. 예제7번은 스크립트 객체화면에 종목객체가 없어야 합니다. 6번은 종목객체를 설정하고 7번은 설정하지 않고 수식안에서 종목객체를 생성하는 내용입니다. 스크립트 객체설정화면에서 종목객체 설정여부를 확인하시기 바랍니다. 즐거운 하루되세요 > jacob라 님이 쓴 글입니다. > 제목 : 질문입니다. > 바쁘신데 죄송하지만 예스스팟 메뉴얼 예제 7번을 실행해 보았더니 오류창에 TypeError : 이미 같은 종목(“000000000”)이 있습니다. 이런 문구가 뜹니다. C1과 C2에는 연결선물지수를 적용시키고 실행했습니다. function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } 위에서 'Main.ReqMarketData(Signal.code, 0);' 이부분에서 문제가 발생하는 걸로 확인이 되었는데 어떤 오류인지 설명 부탁드리겠습니다.
프로필 이미지

예스스탁 예스스탁 답변

2015-10-07 16:00:51

안녕하세요 예스스탁입니다. 해당식이 일간차트에서 신호가 한번 나오는걸 기준으로 예시로 작성된 내용입니다. 일봉차트 신호발생 --> 종목생성 --> 종목생성 완료시 지표비교해 주문 만약 당일 신호가 여러번 나오면 같은 종목에 대해 여러번 종목객체가 요청이 되므로 말씀하신 오류메세지가 발생합니다. 식 자체가 종목객체 요청후 생성완료가 될때 주문이 나가게 되므로 아래와 같이 비교후 해당 종목객체를 삭제하시면 됩니다. var Start; var Skind; var Scode; var Scount; var Req; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; Req = 0; } function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } function Main_OnRcvMarketData(MarketData) { var SSEobject = MarketData; var dayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,0); var dayma2 = C2.GetIndicatorData("이동평균 5_20_60", 2,0); var dayma3 = C2.GetIndicatorData("이동평균 5_20_60", 3,0); var predayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,1); var slowK = C2.GetIndicatorData("Stochastics",1,0); if (Skind== 1 && dayma1 > dayma2 && dayma2 > dayma3 && dayma1 > predayma1 && slowK <= 30) { A1.OrderBuy(Scode,Scount,SSEobject.Ask(2),0); Start = 1; } if (Start == 1 && Skind == 2) { A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0); } //SSEobject 종목객체 삭제 Main.RemoveMarketData(SSEobject); } 즐거운 하루되세요 > jacob라 님이 쓴 글입니다. > 제목 : Re : Re : 질문입니다. > 차트객체와 계좌객체만 설정해놓은 상태입니다. 혹시 몰라 코드도 첨부합니다. 차트객체를 두개 추가하였는데요.. 그 두 가지 차트에 같은 종목을 적용시켰는데, 그 부분에 문제가 있는건가요? [코드첨부] var Start; var Skind; var Scode; var Scount; function Main_OnStart() { Main.MessageList("시작",getTHHMMSS()); //잔고, 미체결수량 확인 사용자함수 BalanceAndUnfill(); Start = 0; } function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } function Main_OnRcvMarketData(MarketData) { var SSEobject = MarketData; var dayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,0); var dayma2 = C2.GetIndicatorData("이동평균 5_20_60", 2,0); var dayma3 = C2.GetIndicatorData("이동평균 5_20_60", 3,0); var predayma1 = C2.GetIndicatorData("이동평균 5_20_60", 1,1); var slowK = C2.GetIndicatorData("Stochastics",1,0); if (Skind == 1 && dayma1 > dayma2 // && dayma2 > dayma3 // && dayma1 > predayma1 && slowK <= 50) { Position = 1; BID = A1.OrderBuy(Scode,Scount,SSEobject.Ask(2),0); Start = 1; Main.MessageList("신호완성/", Signal.signalKind, ".매수주문:", getTHHMMSS() , "주문수량[", Scount, "] 주문식별번호[", BID, "]"); } if (Start == 1 && Skind == 2) { Position = -1; SID = A1.OrderSell(Scode,Scount,SSEobject.Bid(2),0); Main.MessageList("신호완성/", Signal.signalKind, ".매도주문:", getTHHMMSS() , "주문수량[", Scount, "] 주문식별번호[", SID, "]"); } } > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 질문입니다. > 안녕하세요 예스스탁입니다. TypeError : 이미 같은 종목("000000000")이 있습니다. 위와 같은 메세지가 출력했다면 연결선물지수에 대한 종목데이터가 이미 존재한다는 내용입니다. 스크립트 객체화면에서 종목객체로 이미 지정이 되어 있거나 혹은 해당 코드 안에서 먼저 해당 종목의 종목객체를 요청해서 수신받은 경우입니다. 예제7번은 스크립트 객체화면에 종목객체가 없어야 합니다. 6번은 종목객체를 설정하고 7번은 설정하지 않고 수식안에서 종목객체를 생성하는 내용입니다. 스크립트 객체설정화면에서 종목객체 설정여부를 확인하시기 바랍니다. 즐거운 하루되세요 > jacob라 님이 쓴 글입니다. > 제목 : 질문입니다. > 바쁘신데 죄송하지만 예스스팟 메뉴얼 예제 7번을 실행해 보았더니 오류창에 TypeError : 이미 같은 종목(“000000000”)이 있습니다. 이런 문구가 뜹니다. C1과 C2에는 연결선물지수를 적용시키고 실행했습니다. function C1_OnRiseSignal(Signal) { Skind = Signal.signalKind; Scode = Signal.code; Scount = Signal.count; Main.ReqMarketData(Signal.code, 0); } 위에서 'Main.ReqMarketData(Signal.code, 0);' 이부분에서 문제가 발생하는 걸로 확인이 되었는데 어떤 오류인지 설명 부탁드리겠습니다.