예스스탁
예스스탁 답변
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이 찍힙니다.
혹시 이 경우에는 수식을 달리 작성해야할까요?
매번 번거로운 질문에 응해주셔서 감사합니다.