커뮤니티

종목선정 문의

프로필 이미지
탄젠트80
2019-02-17 01:28:15
3004
글번호 224727
답변완료
안녕하세요 한결같은 답변이 매우 큰 도움이 되고 있습니다. 아래 수식은 옵션 2.7에 가까운 콜, 풋 옵션종목을 찾는 수식입니다. 이것을 콜풋 내가 5단계, 등가, 외가5단계 범위안에서 델타값이 0.4에 가장 가까운 콜,풋 옵션종목을 찾는 수식으로 변경해주시면 대단히 감사하겠습니다. // 아래는 수식임 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //1번 타이머 동작 if (nEventID == 1) { //ATM위 행사가 갯수 var UNum = Option.uppersATM; //ATM아래 행사가 갯수 var LNum = Option.lowersATM; //각 행사가의 콜종목의 종목코드를 저장할 변수를 배열변수로 선언 var CallCode = new Array(UNum+LNum+1); //각 행사가의 콜종목의 현재가를 저장할 변수를 배열변수로 선언 var CallPrice = new Array(UNum+LNum+1); //각 행사가의 풋종목의 종목코드를 저장할 변수를 배열변수로 선언 var PutCode = new Array(UNum+LNum+1); //각 행사가의 풋종목의 현재가를 저장할 변수를 배열변수로 선언 var PutPrice = new Array(UNum+LNum+1); //콜종목 찾기 //콜옵션중 2.7에 가장 가까운 종목 //콜옵션 모든 종목을 현재가-2.7을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.7); CallCode[i+LNum] = Option.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] } } //풋종목 찾기 //풋옵션중 2.7에 가장 가까운 종목 //풋옵션 모든 종목을 현재가-2.7을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { PutPrice[i+UNum] = Math.abs(Option.GetCurrent(1, i)-2.7); PutCode[i+UNum] = Option.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]; } } //종목을 찾았으면 if (CC < 99999999 && PP < 99999999) { Start = 1; SC = CallOrderCode; SP = PutOrderCode; } } } // 답변 미리 감사드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-02-21 17:13:07

안녕하세요 예스스탁입니다 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //1번 타이머 동작 if (nEventID == 1) { CMinDiff = 0; PMinDiff = 0; SC = ""; SP = ""; for (var i = -5; i <= 5; i++) { Main.MessageList(Option.GetATMCallRecent(i),Option.GetDelta(0,i),Option.GetATMPutRecent(i),Option.GetDelta(1,i)); if (CMinDiff == 0 || (CMinDiff != 0 && Math.abs(Math.abs(Option.GetDelta(0,i))-0.4) < CMinDiff)) { CMinDiff = Math.abs(Math.abs(Option.GetDelta(0,i))-0.4); SC = Option.GetATMCallRecent(i); } if (PMinDiff == 0 || (PMinDiff != 0 && Math.abs(Math.abs(Option.GetDelta(1,i))-0.4)< CMinDiff)) { PMinDiff = Math.abs(Math.abs(Option.GetDelta(1,i))-0.4); SP = Option.GetATMPutRecent(i); } } Main.MessageList(SC,SP) Start = 1; } } 즐거운 하루되세요 > 탄젠트80 님이 쓴 글입니다. > 제목 : 종목선정 문의 > 안녕하세요 한결같은 답변이 매우 큰 도움이 되고 있습니다. 아래 수식은 옵션 2.7에 가까운 콜, 풋 옵션종목을 찾는 수식입니다. 이것을 콜풋 내가 5단계, 등가, 외가5단계 범위안에서 델타값이 0.4에 가장 가까운 콜,풋 옵션종목을 찾는 수식으로 변경해주시면 대단히 감사하겠습니다. // 아래는 수식임 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //1번 타이머 동작 if (nEventID == 1) { //ATM위 행사가 갯수 var UNum = Option.uppersATM; //ATM아래 행사가 갯수 var LNum = Option.lowersATM; //각 행사가의 콜종목의 종목코드를 저장할 변수를 배열변수로 선언 var CallCode = new Array(UNum+LNum+1); //각 행사가의 콜종목의 현재가를 저장할 변수를 배열변수로 선언 var CallPrice = new Array(UNum+LNum+1); //각 행사가의 풋종목의 종목코드를 저장할 변수를 배열변수로 선언 var PutCode = new Array(UNum+LNum+1); //각 행사가의 풋종목의 현재가를 저장할 변수를 배열변수로 선언 var PutPrice = new Array(UNum+LNum+1); //콜종목 찾기 //콜옵션중 2.7에 가장 가까운 종목 //콜옵션 모든 종목을 현재가-2.7을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.7); CallCode[i+LNum] = Option.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] } } //풋종목 찾기 //풋옵션중 2.7에 가장 가까운 종목 //풋옵션 모든 종목을 현재가-2.7을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { PutPrice[i+UNum] = Math.abs(Option.GetCurrent(1, i)-2.7); PutCode[i+UNum] = Option.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]; } } //종목을 찾았으면 if (CC < 99999999 && PP < 99999999) { Start = 1; SC = CallOrderCode; SP = PutOrderCode; } } } // 답변 미리 감사드립니다.