커뮤니티

[주식]트레일링 다시 질문드립니다. ^^;;

프로필 이미지
오토
2013-10-10 17:00:12
1025
글번호 222616
답변완료
올려주신 파일로 이리저리 해봐도.. ㅠㅠ 같은 에러만 나네요. ㅠㅠ 종목은 보유중인 상태입니다. 줄번호 77 메세지 ReferenceErroe:IUp is not defined 올려주신 파일의 lUp*dateID 이부분은 수정하니.. 위 메세지는 줄번호 77 메세지 TypeError: Cannot read propety 'code' of undefined 잠시 종목코드가 나오지만... 위 같은 에러가 계속 발생됩니다. ㅡㅡ;; #주식
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-10-11 14:23:51

안녕하세요 예스스탁입니다. 답변이 늦어 죄송합니다. 시세 업데이트할때 for문에 i가 Nth보다 작을때 까지만 진행되어야 하는데 같을때 까지 진행되서 객체가 없는 배열에서 code를 호출하니 해당 메세지가 발생했습니다. 수정한 식입니다. Up*date에서 * 삭제하시고 적용하셔야 합니다. var Nth = 0; var ItemCode = new Array(200); var ItemObject = new Array(200); var ItemHigh = new Array(200); var Bnum; function Main_OnStart() { Nth = 0; Bnum = Account1.GetTheNumberOfBalances() Main.MessageList("잔고종목수",Bnum); if (Bnum > 0) { //계좌의 잔고리스트에서 첫번째 잔고 셋팅 Account1.SetBalanceIndex(Nth);//잔고는 순번이 0부터 시작 //셋팅된 잔고의 수량이 0이상이면 if (Account1.Balance.count > 0) { //1번째 종목객체 생성요청 Main.ReqMarketData(Account1.Balance.code, 0,0); //ItemCode의 [Nth]번째 방에 종목코드 저장 ItemCode[Nth] = Account1.Balance.code; Main.MessageList("종목객체요청",Account1.Balance.code); } } } //요청한 종목객체 수신되면 function Main_OnRcvMarketData(MarketData) { Main.MessageList("종목객체수신",MarketData.code); //수신받은 종목객체의 종목코드와 직전에 요청한 종목과 같은지 확인 후에 if (MarketData.code == ItemCode[Nth]) { ItemObject[Nth] = MarketData;//ItemObject의 [Nth]방에 수신받은 객체를 저장 ItemHigh[Nth] = 0; //ItemHigh의 [Nth]방의 값을 0으로 셋팅 (이후 최고값 계산해 저장할 변수) Main.MessageList(Nth,"번째","종목객체생성완료 : ",ItemObject[Nth].code); //순번은 1 증가 Nth = Nth+1; //종목객체 수신완료되면 다음 종목 종목객체 요청 if (Bnum > 0) { //계좌의 잔고리스트에서 다음 순번 잔고 셋팅 Account1.SetBalanceIndex(Nth); //셋팅된 잔고의 수량이 0이상이면 if (Account1.Balance.count > 0) { //Nth번째 종목객체 생성요청 Main.ReqMarketData(Account1.Balance.code, 0,0); //ItemCode의 [Nth]번째 방에 종목코드 저장 ItemCode[Nth] = Account1.Balance.code; Main.MessageList("종목객체요청",Account1.Balance.code); } } } } //잔고에 종목이 추가된다면 function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID) //*삭제 { if (sAccntNum == Account1.number && lUp*dateID == 30001) //*삭제 { Nth = Nth+1; //1번째 종목객체 생성요청 Main.ReqMarketData(Account1.Balance.code, 0,0); //ItemCode의 [Nth]번째 방에 종목코드 저장 ItemCode[Nth] = Account1.Balance.code; Main.MessageList("종목객체요청",Account1.Balance.code); } } //종목객체 시세 업데이트 function Main_OnUp*dateMarket(sItemCode, lUp*dateID)// *제거 { //편입된 종목수 만&#53380;만 수행 for (var i = 0; i < Nth; i++) { if (ItemObject[i].code == sItemCode && lUp*dateID == 20001)// *제거 { Main.MessageList("-----------------------------------------------"); Main.MessageList(ItemObject[i].code,"업데이트"); //잔고셋팅 Account1.SetBalanceItem(ItemObject[i].code,0); //종목편입 이후의 최고가 계산 if (ItemObject[i].current > ItemHigh[i]) { ItemHigh[i] = ItemObject[i].current; } //매수잔고 if (Account1.Balance.position == 2) { //현재가가 평균단가 대비 10%이상 상승하면 목표이익 매도 if (ItemObject[i].current >= Account1.Balance.avgUnitCost*1.10) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("수익청산 : ",ItemObject[i].code,"종목객체삭제"); } // 현재가가 평균단가 대비 5%이상 하락하면 손절매도 if (ItemObject[i].current <= Account1.Balance.avgUnitCost*0.95) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("손절청산 : ",ItemObject[i].code,"종목객체삭제"); } //현재가가 평균단가 대비 7% 이상 상승후 평균단가+5%까지 하락하면 매도주문 if (ItemHigh[i] >= Account1.Balance.avgUnitCost*1.07 && ItemObject[i].current <= Account1.Balance.avgUnitCost*1.05) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("TR청산 : ",ItemObject[i].code,"종목객체삭제"); } } Main.MessageList("-----------------------------------------------"); Main.MessageList("종 목 : ",ItemObject[i].code); Main.MessageList("평균단가 : ",Account1.Balance.avgUnitCost); Main.MessageList("현 재 가 : ",ItemObject[i].current); Main.MessageList("진입최고 : ",ItemHigh[i]); } } } 즐거운 하루되세요 > 오토 님이 쓴 글입니다. > 제목 : [주식]트레일링 다시 질문드립니다. ^^;; > 올려주신 파일로 이리저리 해봐도.. ㅠㅠ 같은 에러만 나네요. ㅠㅠ 종목은 보유중인 상태입니다. 줄번호 77 메세지 ReferenceErroe:IUp is not defined 올려주신 파일의 lUp*dateID 이부분은 수정하니.. 위 메세지는 줄번호 77 메세지 TypeError: Cannot read propety 'code' of undefined 잠시 종목코드가 나오지만... 위 같은 에러가 계속 발생됩니다. ㅡㅡ;; #주식