커뮤니티

주석부탁드립니다

프로필 이미지
파생돌이
2022-10-18 19:17:26
1574
글번호 163087
답변완료
수고하십니다 아래수식을 자세하게 주석부탁드립니다 CS[7](0), ==5같다 ,==0같다 , +0.5을 왜 더하는지? cnt ,[cnt],(SymbolCode,1),StrToNum...등등 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); CC[2] = Data2(H); CC[3] = Data4(H); PP[2] = Data3(L); PP[3] = Data8(L); CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; For cnt = 2 to 6 { if CS[cnt] == ATM Then var1 = cnt; if CS[cnt] == ATM+2.5 Then Var2 = cnt; if CS[cnt] == ATM-2.5 Then Var3 = cnt; if PS[cnt] == ATM Then value1 = cnt; if PS[cnt] == ATM+2.5 Then Value2 = cnt; if PS[cnt] == ATM-2.5 Then
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-10-19 11:47:29

안녕하세요 예스스탁입니다. 1 해당식은 종목코드에서 마지막 3자리값을 가져와 옵션 행사가를 계산하게 됩니다. 행가가가 2.5, 7.5로 끝나는 옵션의 종목코드에 소숫점 자리수까지 없습니다. 행사가 292.5 --> 201SB292 그러므로 종목코드 마지막자리가 0이나 5가 아니면 0.5를 더하는 것입니다. 2 각 함수의 설명은 랭귀지 도움말을 찾아보시기 바랍니다. 3 반복되는 내용이므로 cs[2]만 주석 붙여 드립니다. var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); CC[2] = Data2(H); CC[3] = Data4(H); PP[2] = Data3(L); PP[3] = Data8(L); #Data2의 종목코드(SymbolCode)의 마지막글자를 숫자로 변환(StrToNum)하여 #5나 0이면 종목코드 마지막3자를 숫자로 변환하여 atm값으로 저장 #아니면 마지막3자를 숫자로 변환하고 0.5를 더해 atmr값으로으로 저장 CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; # 2~6을 리턴 For cnt = 2 to 6 { #CS[2]~CS[6]의 값중 ATM과 같은 값을 찾고 해당 방번호 저장 if CS[cnt] == ATM Then var1 = cnt; #CS[2]~CS[6]의 값중 ATM+2.5와 같은 값을 찾고 해당 방번호 저장 if CS[cnt] == ATM+2.5 Then Var2 = cnt; #CS[2]~CS[6]의 값중 ATM-2.5와 같은 값을 찾고 해당 방번호 저장 if CS[cnt] == ATM-2.5 Then Var3 = cnt; #PS[2]~PS[6]의 값중 ATM과 같은 값을 찾고 해당 방번호 저장 if PS[cnt] == ATM Then value1 = cnt; #PS[2]~PS[6]의 값중 ATM+2.5와 같은 값을 찾고 해당 방번호 저장 if PS[cnt] == ATM+2.5 Then Value2 = cnt; #PS[2]~PS[6]의 값중 ATM-2.5와 같은 값을 찾고 해당 방번호 저장 if PS[cnt] == ATM-2.5 Then Value2 = cnt; } 즐거운 하루되세요 > 파생돌이 님이 쓴 글입니다. > 제목 : 주석부탁드립니다 > 수고하십니다 아래수식을 자세하게 주석부탁드립니다 CS[7](0), ==5같다 ,==0같다 , +0.5을 왜 더하는지? cnt ,[cnt],(SymbolCode,1),StrToNum...등등 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); CC[2] = Data2(H); CC[3] = Data4(H); PP[2] = Data3(L); PP[3] = Data8(L); CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; For cnt = 2 to 6 { if CS[cnt] == ATM Then var1 = cnt; if CS[cnt] == ATM+2.5 Then Var2 = cnt; if CS[cnt] == ATM-2.5 Then Var3 = cnt; if PS[cnt] == ATM Then value1 = cnt; if PS[cnt] == ATM+2.5 Then Value2 = cnt; if PS[cnt] == ATM-2.5 Then