커뮤니티

69517 관련 최종 질문입니다.

프로필 이미지
중박주식
2020-10-14 20:58:52
1096
글번호 143105
답변완료
69517 중 마지막 질문 관련입니다. 예시로 보여주신 바와 같이, 다우와 나스닥으로 하지 않고, data2를 코스닥, data3을 나스닥으로 하면 1이 찍힙니다. 혹시 이 경우에는 수식을 달리 작성해야할까요? 매번 번거로운 질문에 응해주셔서 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-10-15 16:24:36

안녕하세요 예스스탁입니다. 현재수식이 data1은 국내 data2와 data3은 해외로 보고 작성되어 있습니다. 각 데이타가 국내나 해외일때 아래 부분에 값을 다르게 지정해 주셔야 합니다. if Data1(Bdate != Bdate[1]) Then { if Data1(bDate[1]) == Data2(bDate[1]) and Data1(bDate[1]) == data3(Bdate) Then { C1[0] = Data1(c[1]); C2[0] = Data2(c[1]); C3[0] = Data3(c); For cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; C2[cnt] = C2[cnt-1][1]; C3[cnt] = C3[cnt-1][1]; } } } data1은 국내, data2와 data3은 전일값으로 보고 위와 같이 저장되게 되어 있습니다. 해외데이타는 최근데이타가 전일데이타이므로 날짜 변경시 data1의 전일날짜와 data2와 data3의 최근 날자를 비교하고 각 가격도 data1은 전일종가를 data2와 data3은 최근값을 넣게 되어 있습니다. if Data1(bDate[1]) == Data2(bDate) and Data1(bDate[1]) == data3(Bdate) Then { C1[0] = Data1(c[1]); C2[0] = Data2(c); C3[0] = Data3(c); data2가 국내이면 data2도 전일봉의 값으로 비교와 값저장이 되게 하셔야 합니다. if Data1(bDate[1]) == Data2(bDate[1]) and Data1(bDate[1]) == data3(Bdate) Then { C1[0] = Data1(c[1]); C2[0] = Data2(c[1]); C3[0] = Data3(c); 1 input : 상관기간(10); var : cnt(0,Data1),R3(0,data1),R4(0,data1); var : 상관계수(0,Data1),j(0,data1),sumXY(0,data1), sumX(0,data1), sumY(0,data1), sumX2(0,data1), sumY2(0,data1); Array : C1[100](0,Data1),C2[100](0,Data1),C3[100](0,Data1); if Data1(Bdate != Bdate[1]) Then { if Data1(bDate[1]) == Data2(bDate[1]) and Data1(bDate[1]) == data3(Bdate) Then { C1[0] = Data1(c[1]); C2[0] = Data2(c[1]); C3[0] = Data3(c); For cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; C2[cnt] = C2[cnt-1][1]; C3[cnt] = C3[cnt-1][1]; } } } if C2[상관기간] > 0 and C3[상관기간] > 0 Then { sumXY = 0; sumX = 0; sumY = 0; sumX2 = 0; sumY2 = 0; for j = 0 to 상관기간 - 1 { R3 = (C2[j]-C2[j+1])/C2[j+1]; R4 = (C3[j]-C3[j+1])/C3[j+1]; sumXY = sumXY + R3*R4; sumX = sumX + R3; sumY = sumY + R4; sumX2 = sumX2 + R3^2; sumY2 = sumY2 + R4^2; } 상관계수 = (상관기간 * sumXY - sumX * sumY)/ Sqrt((상관기간 * sumX2- sumX^2) * (상관기간 * sumY2- sumY^2)); Plot1(상관계수); } 2 input : 상관기간(10); var : cnt(0,Data1),Counter1(0,Data1), Counter2(0,Data1),Ind(0,Data1),dep(0,data1),상관도(0,Data1); Array : C1[100](0,Data1),C2[100](0,Data1),C3[100](0,Data1); if Data1(Bdate != Bdate[1]) Then { if Data1(bDate[1]) == Data2(bDate[1]) and Data1(bDate[1]) == data3(Bdate) Then { C1[0] = Data1(c[1]); C2[0] = Data2(c[1]); C3[0] = Data3(c); For cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; C2[cnt] = C2[cnt-1][1]; C3[cnt] = C3[cnt-1][1]; } } } if C1[상관기간] > 0 and C2[상관기간] > 0 Then { Counter1 = 0; Counter2 = 0; For Cnt = 0 To 상관기간 - 1 { If (C1[Cnt] >= C1[Cnt + 1] AND C2[Cnt] >= C2[Cnt + 1]) OR (C1[Cnt] < C1[Cnt + 1] AND C2[Cnt] < C2[Cnt + 1]) Then Counter1 = Counter1 + 1; Else Counter2 = Counter2 + 1; } If Counter1 + Counter2 <> 0 Then 상관도 = (Counter1 - Counter2) / (Counter1 + Counter2); Else 상관도 = 0; Plot1(상관도); } 즐거운 하루되세요 > 중박주식 님이 쓴 글입니다. > 제목 : 69517 관련 최종 질문입니다. > 69517 중 마지막 질문 관련입니다. 예시로 보여주신 바와 같이, 다우와 나스닥으로 하지 않고, data2를 코스닥, data3을 나스닥으로 하면 1이 찍힙니다. 혹시 이 경우에는 수식을 달리 작성해야할까요? 매번 번거로운 질문에 응해주셔서 감사합니다.