커뮤니티

Option객체가 비정상입니다. 확인 부탁드립니다.

프로필 이미지
richon
2015-08-12 23:23:44
1892
글번호 223618
답변완료
option 객체에서 게시판에 있는 예제를 활용하여 테스트하는데 var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; LNum, UNum 모두 값이 -1로 나옵니다. Option 객체가의 이상합니다. 다시한번 점검 부탁드립니다. function Main_OnStart() { var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; Main.MessageList("UNum", UNum); Main.MessageList("LNum", LNum); var PutCode = new Array(UNum+LNum+1); var PutPrice = new Array(UNum+LNum+1); //풋 옵션중 2.0에 가장 가까운 종목 매도 //풋 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { PutPrice[i+UNum] = Math.abs(Option1.GetCurrent(1, i)-2.0); PutCode[i+UNum] = Option1.GetATMPutRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var PP = 99999999; PutOrderCode = ""; for (var i = -UNum; i <= LNum; i++) { if (PutPrice[i+UNum] < PP) { PP = PutPrice[i+UNum]; PutOrderCode = PutCode[i+UNum] } } Main.MessageList("PutOrderCode", PutOrderCode); var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; var CallCode = new Array(UNum+LNum+1); var CallPrice = new Array(UNum+LNum+1); //콜 옵션중 2.0에 가장 가까운 종목 //콜 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option1.GetCurrent(0, i)-2.0); CallCode[i+LNum] = Option1.GetATMCallRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var CC = 99999999; CallOrderCode = ""; for (var i = -LNum; i <= UNum; i++) { if (CallPrice[i+LNum] < CC) { CC = CallPrice[i+LNum]; CallOrderCode = CallCode[i+LNum]; } } Main.MessageList("CallOrderCode", CallOrderCode); }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-08-13 13:44:49

안녕하세요 예스스탁입니다. 예스트레이더(NH트레이더) 상단의 관리메뉴에서 관리 --> 종합환경설정 --> 예스스팟에 가셔서 예스스팟 옵션데이터 사용여부에 사용으로 설정하셔야 옵션객체를 추가하셔도 옵션에 대한 시세를 받습니다. 현재 미사용으로 설정되어 있으신것 같습니다. 즐거운 하루되세요 > richon 님이 쓴 글입니다. > 제목 : Option객체가 비정상입니다. 확인 부탁드립니다. > option 객체에서 게시판에 있는 예제를 활용하여 테스트하는데 var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; LNum, UNum 모두 값이 -1로 나옵니다. Option 객체가의 이상합니다. 다시한번 점검 부탁드립니다. function Main_OnStart() { var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; Main.MessageList("UNum", UNum); Main.MessageList("LNum", LNum); var PutCode = new Array(UNum+LNum+1); var PutPrice = new Array(UNum+LNum+1); //풋 옵션중 2.0에 가장 가까운 종목 매도 //풋 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { PutPrice[i+UNum] = Math.abs(Option1.GetCurrent(1, i)-2.0); PutCode[i+UNum] = Option1.GetATMPutRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var PP = 99999999; PutOrderCode = ""; for (var i = -UNum; i <= LNum; i++) { if (PutPrice[i+UNum] < PP) { PP = PutPrice[i+UNum]; PutOrderCode = PutCode[i+UNum] } } Main.MessageList("PutOrderCode", PutOrderCode); var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; var CallCode = new Array(UNum+LNum+1); var CallPrice = new Array(UNum+LNum+1); //콜 옵션중 2.0에 가장 가까운 종목 //콜 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option1.GetCurrent(0, i)-2.0); CallCode[i+LNum] = Option1.GetATMCallRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var CC = 99999999; CallOrderCode = ""; for (var i = -LNum; i <= UNum; i++) { if (CallPrice[i+LNum] < CC) { CC = CallPrice[i+LNum]; CallOrderCode = CallCode[i+LNum]; } } Main.MessageList("CallOrderCode", CallOrderCode); }