답변완료
수정부탁드립니다
색상 이 한색만 나오니 수정부탁드립니다.
input: ATRLength27(5), ATRMult27(2.1);
vars: ATR27(0), avg27(0), dn27(0), up27(0), trend27(1), flag27(0), flagh27(0), qqq27(0);
var:avar1(0),aVar2(0),avar3(0);
ATR27 = ATR(ATRLength27) * ATRMult27;
avg27 = (highest(H,1)+lowest(L,1))/2;
up27 = avg27 + ATR27;
dn27 = avg27 - ATR27;
if date != date[1] Then
if close > up27[1] then trend27 = 1;
else if close < dn27[1] then trend27 = -1;
if trend27 < 0 and trend27[1] > 0 then flag27 = 1; else flag27 = 0;
if trend27 > 0 and trend27[1] < 0 then flagh27 = 1; else flagh27 = 0;
if trend27 > 0 and dn27 < dn27[1] then dn27 = dn27[1];
if trend27 < 0 and up27 > up27[1] then up27 = up27[1];
if flag27 == 1 then up27 = avg27 + ATR27;
if flagh27 == 1 then dn27 = avg27 - ATR27;
if trend27 == 1 then qqq27 = dn27; else qqq27 = up27;
//PlotPaintBar(H,L,"qqq27",iff(trend27 == 1, Red, Blue));
avar2 = up27;
avar3 = dn27;
var : box11(0);
If AVar3>0 Then
{
box11 = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box11,Pink);
Box_SetFill(box11,true,80);// 투명도조절 255까지가능
Box_SetExtFill(box11,true);
}
If AVar3<0 Then
{
box11 = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box11,LightBlue);
Box_SetFill(box11,true,80);// 투명도조절 255까지가능
Box_SetExtFill(box11,true);
}
Else
{
Box_SetEnd(box11,NextBarSdate,NextBarStime,L);
}
2022-11-19
1062
글번호 163951
지표
답변완료
지표식 요청입니다.
한꺼번에 여러 질문을 드려서 죄송합니다.
몇년만에 다시 시작하니, 뭐가 잘 안되네요.
1. 예전에 작성해주신 수식을 변형한건데 값이 찍히질 않습니다. 오류가 있는 부분을 검토해주실 수 있으신지요?
개요
- data2, 3, 4, 5: 각각 코스닥 일봉, 나스닥 일봉, 다우 일봉, 코스피 일봉
- 이걸 이용해서, 2와 3의 30일 동안 상관관계, 4와 5의 30일 동안 상관관계를 구한 후 두 값을 평균하는 것이 목표임
- 이때, 2와 5(즉, 우리나라 장)는 어제 종가대비 오늘 시가 상승률(즉, 오늘 갭의 크기를 의미)
- 3, 4(즉, 미국장)는 어제 종가 상승률(어제밤 몇 프로 상승 혹은 하락하고 끝났는지)
- 또한, 여기서 중요한 것은 미국과 우리나라 시장에서 혹시라도 장이 열리지 않는 경우에는 상관관계를 구하는 것이 의미가 없으므로 계산에서 제외를 해야한다는 것임. 그래서 미국이 어제 밤에 장이 열렸으며, 오늘 우리나라 장도 장이 열린 경우에만 30일에 포함을 시키고, 두 장 중 한쪽이라도 장이 열리지 않는 경우에는 계산에서 제외시키도록함
구문을 아래와 같이 작성했는데, 모두 N/A로 값이 찍힙니다
Input : 상관기간(30);
Var: K(0,data2), R2(0, Data2), R3(0,data3),R4(0,data4), R5(0,data5), 상관도(0, Data2), 상관도2(0, Data4), 상관도평균(0);
Var: j(0,data3),sumXY(0,data3), sumX(0,data3), sumY(0,data3), sumX2(0,data3), sumY2(0,data3);
Var: j3(0,data3),sumXY3(0,data3), sumX3(0,data3), sumY3(0,data3), sumX23(0,data3), sumY23(0,data3);
//코스닥, 나스닥
Array : o2[30](0,Data2), C2[30](0,Data2),C3[30](0,Data2);
if Data2(bDate) == data3(Bdate) Then
{
O2[0] = Data2(O);
C2[0] = Data2(c);
C3[0] = Data3(c);
For k = 1 to 상관기간
{
o2[k] = o2[k-1][1];
C2[k] = C2[k-1][1];
C3[k] = C3[k-1][1];
}
}
if C2[상관기간] > 0 and C3[상관기간] > 0 Then
{
sumXY = 0; sumX = 0; sumY = 0; sumX2 = 0; sumY2 = 0;
for j = 0 to 상관기간 - 1
{
R2 = Data2((o2[k]-C2[k+1])/C2[k+1]*100); //코스닥 일봉 - 당일 갭
R3 = Data3((C3[k]-C3[k+1])/C3[k+1]*100); //나스닥 일봉
sumXY = sumXY + R2[j]*R3[j];
sumX = sumX + R2[j];
sumY = sumY + R3[j];
sumX2 = sumX2 + R2[j]^2;
sumY2 = sumY2 + R3[j]^2;
}
상관도 = (상관기간 * sumXY - sumX * sumY)/
Sqrt((상관기간 * sumX2- sumX^2) * (상관기간 * sumY2- sumY^2));
}
//다우 코스피
Array : C4[30](0,Data2),C5[30](0,Data2), o5[30](0,Data2);
if Data4(bDate) == data5(Bdate) Then
{
C4[0] = Data4(c);
C5[0] = Data5(c);
O5[0] = Data5(O);
For k = 1 to 상관기간
{
C4[k] = C4[k-1][1];
C5[k] = C5[k-1][1];
o5[k] = o5[k-1][1];
}
}
if C2[상관기간] > 0 and C3[상관기간] > 0 Then
{
sumXY3 = 0; sumX3 = 0; sumY3 = 0; sumX23 = 0; sumY23 = 0;
for j3 = 0 to 상관기간 - 1
{
R4 = Data4((C4[k]-C4[k+1])/C4[k+1]*100); //다우 일봉
R5 = Data5((o5[k]-C5[k+1])/C5[k+1]*100); //코스피 일봉 - 당일 갭
sumXY3 = sumXY3 + R4[j]*R5[j];
sumX3 = sumX3 + R4[j];
sumY3 = sumY3 + R5[j];
sumX23 = sumX23 + R4[j]^2;
sumY23 = sumY23 + R5[j]^2;
}
상관도2 = (상관기간 * sumXY3 - sumX3 * sumY3)/
Sqrt((상관기간 * sumX23- sumX^23) * (상관기간 * sumY23- sumY3^2));
}
상관도평균 = (상관도 + 상관도2)/2;
Plot1(상관도, "상관도", Red);
Plot2(상관도2, "상관도2", Blue);
Plot3(상관도평균, "상관도평균", Black);
2. 신규 요청 (위와 아주 아주 비슷합니다)
개요
- data2: 코스닥 일봉
- data3: 나스닥 일봉
- 위의 자료를 이용해서, "어제 나스닥 종가 상승률 - 오늘 코스닥 시가 상승률"의 30일 평균값을 구하고자 함
30일 평균을 구할때, 전일 미국장이 열리지 않은 날은 제외함(즉, 전일 미장도 열리고 오늘 우리장도 열린 경우에만 계산에 포함)
이때, 우리장이 안 열리다고 오랜만에 열리고, 그 동안 미국장은 계속 열렸을때: 미국장의 가장 최근일 종가상승률과 우리나라의 오늘 시가상승률을 비교
이렇게 가능할까요~?
다 적고보니, 1번의 답만 알면 2번도 아주 쉬울거 같습니다.
감사합니다.
2022-11-18
786
글번호 163945
지표
답변완료
79635번 마지막 확인질문입니다.
안녕하세요
예스스탁입니다.
죄송합니다.수식내용에 오류가 있었습니다.
수정한 식입니다.
input : N(10);
var : V2(0,data2),V3(0,data3),V4(0,data4),V5(0,data5);
var : CR23(0,Data2),CR45(0,data4);
V2 = Data2((O-C[1])/C[1]*100);
V3 = Data3((C-C[1])/C[1]*100);
V4 = Data4((C-C[1])/C[1]*100);
V5 = Data5((O-C[1])/C[1]*100);
CR23 = Data2(Correlation(V2,V3,N));
CR45 = Data4(Correlation(V4,V5,N));
Plot1(CR23);
plot2(CR45);
즐거운 하루되세요
위의 내용을 해석하는 과정에서 2가지만 더 확인하고자 합니다.
1.
V2 = Data2((O-C[1])/C[1]*100);
위 식에서 data2는 일봉이므로 장중에 봉이 미완성인 상태에서 계속 움직이게 됩니다.
그래도 시초가는 이미 정해진 것이기 때문에, 당일 장중에 시초가를 정상적으로 불러올 수 있는 것이죠? 그리고 장종료 후 봉완성된 상태에서도 마찬가지로 당일 시초가가 찍히는 것이고요? (다음날이 시작되기 전까지는)
2.
var : CR23(0,Data2);
여기서 CR23 같은 경우에느 data2와 data3이 모두 사용되는데, 왜 0, 뒤에 data2로 표기하는지 구체적인 기준이 있는지 궁금합니다.
2.1. 만약 data2를 data3으로 쓰면 결과가 바뀌는지?
2.2. 만약 아무것도 안쓰고 그냥 cr23(0)으로 끝내버리면 결과가 바뀌는지?
2.3. 혹은 전혀 무관한, data1이나 data4를 쓰면 결과가 어떻게 달라지는지 궁금합니다.
감사합니다.
2022-11-18
625
글번호 163944
지표
답변완료
79635번 재질문입니다. 이해가 안가는 부분이 있습니다.
nput : N(10);
var : V2(0,data2),V3(0,data3),V4(0,data4),V5(0,data5);
var : CR23(0,Data2),CR45(0,data4);
V2 = Data2((O-C[1])/C[1]*100);
V3 = Data3(C-C[1]/C[1]-100);
V4 = Data4(C-C[1]/C[1]-100);
V5 = Data5((O-C[1])/C[1]*100);
CR23 = Data2(Correlation(V2,V3,N));
CR45 = Data4(Correlation(V4,V5,N));
Plot1(CR23);
plot2(CR45);
위 내용에서, 아래식은 어떤 의미인가요?
V3 = Data3(C-C[1]/C[1]-100);
V4 = Data4(C-C[1]/C[1]-100);
이거대로 계산하면,
중간에 C[1]/C[1]가 먼저 계산되므로,
C - 1 - 100이 되어버립니다..
중간에 분자를 묶는 괄호도 있어야 하고, 젤 뒤에도 -100이 아니라 곱하기 100이 되는거 아닌가요..?
2022-11-18
772
글번호 163938
지표