커뮤니티
안녕하세요?
2011-01-26 22:33:26
1147
글번호 35316
안녕하세요?
어제 아래식과 같은
일봉값을 이용해서 주봉adx를 구하는 식을 만들고 검토를 부탁드렸었습니다.
말씀대로 차트에 적용해 보니, 실제 주봉adx값과 다르더군요.
제가 만든 식은 수식지왕님 이란 분의 자료를 참고로 해서 만든 식입니다.
수식지왕님은 첨부한 pdf파일에서 모든 지표의 타주기참조식이 가능하다고
하였는데요.
수식지왕님의 자료는 맞는데 제가 부족해서 소화를 못한 탓으로
그런식이 나온듯 싶습니다.
게다가 제 마음대로 약칭을 쓰다보니, 선생님께서 제 식을 보기도 어려웠고요.
1)그래서 수식지왕님의 [pdf파일을 첨부]합니다. 거기서 191페이지 DMI를
참고해서, 제가 식을 만들었는데요. 분명히 제가 실수한 점이 있을 것입니다.
2)저에겐 꼭 필요한 식이라 정중히 부탁드립니다. [수식지왕님의 pdf파일 191페이지]를
참조하셔서, 일봉값으로 주봉adx,+di,-di를 만들어 주시면 정말 감사하겠습니다.
아래는 제가 잘못 만든 식입니다. 그래프가 나오긴 하나 수치가 틀리더군요.
건승하십시오.
==============================
array : 주봉O[100](0),주봉H[100](0),주봉L[100](0),주봉C[100](0);
var : k(0);
var : s1(0),s2(0),s5(0),s6(0),m5(0),m6(0),주봉diplus(0),주봉diminus(0),
주봉adx(0);
array : v1[100](0),v2[100](0),v3[100](0),v4[100](0);
if date[1]<date and dayofweek(date[1])>=dayofweek(date) then {
for k = 98 downto 0 {
주봉O[k+1] = 주봉O[k];
주봉H[k+1] = 주봉H[k];
주봉L[k+1] = 주봉L[k];
주봉C[k+1] = 주봉C[k];
v1[k+1] = v1[k];
v2[k+1] = v2[k];
v3[k+1] = v3[k];
v4[k+1] = v4[k];
}
주봉O[0] = O;
주봉H[0] = H;
주봉L[0] = L;
주봉C[0] = C;
}
주봉C[0] = C;
if H > 주봉H[0] Then
주봉H[0] = H;
if L < 주봉L[0] Then
주봉L[0] = L;
if 주봉C[1]>0 then {
v1[0]=iff(주봉H[0]-주봉H[1]>0 and 주봉H[0]-주봉H[1]>주봉L[1]-주봉L[0],
주봉H[0]-주봉H[1],0);
v2[0]=iff(주봉L[1]-주봉L[0]>0 and 주봉H[0]-주봉H[1]<주봉L[1]-주봉L[0],
주봉L[1]-주봉L[0],0);
}
s1=0; s2=0;
for k= 0 to 13 {
s1=s1+v1[k];
s2=s2+v2[k];
}
v3[0]=s1/14;
v4[0]=s2/14;
s5=0; s6=0;
for k= 0 to 13 {
s5 = s5 + max(주봉H[k]-주봉L[k],abs(주봉C[k+1]-주봉H[k]),
abs(주봉C[k+1]-주봉L[k]));
s6 = s6 + abs(v3[k]-v4[k])/(v3[k]+v4[k])*100;
}
m5 = s5/14; m6 = s6/14;
주봉diplus=v3[0]/m5*100;
주봉diminus=v4[0]/m5*100;
주봉adx=m6;
Plot1(주봉diplus,"주봉diplus");
Plot2(주봉diminus,"주봉diminus");
Plot3(주봉adx,"주봉adx");
- 1. 제5장타주기참조.pdf (0.72 MB)
답변 1
예스스탁 예스스탁 답변
2011-01-27 13:09:33
안녕하세요
예스스탁입니다.
올리신 자료라면 식을 2번과 같이 수정하시면 됩니다.
다만 비교하실때 1번에 올려드린 식을 주봉에 거시고
2번식은 일봉에 적용하여 값을 비교해 보샤야 하며 2개는 맞는식입니다
현재 제공하는 ADX와 조금 다른 계산법으로 작성된 식입니다.
_Y로 붙는 계산식은 예전버전에서 제공된 관련함수이고
현재 기본으로 제공되는 계산식과는 차이가 있습니다.
키움등이 지금올리신 것과 같은 계산법으로 제공되는 것으로 알고 있습니다.
1.
plot1(ADX_Y(14));
plot2(DiPlus_Y(14));
plot3(DiMinus_Y(14));
2.
Input:Period(14);
Var:j(0),sum1(0),sum2(0),sum5(0),sum6(0),ma5(0),ma6(0),K(0);
Array:value1[100](0),value2[100](0),value3[100](0),value4[100](0);
array : 주봉O[100](0),주봉H[100](0),주봉L[100](0),주봉C[100](0);
if date[1]<date and dayofweek(date[1])>=dayofweek(date) then {
for k = 98 downto 0 {
주봉O[k+1] = 주봉O[k];
주봉H[k+1] = 주봉H[k];
주봉L[k+1] = 주봉L[k];
주봉C[k+1] = 주봉C[k];
}
주봉O[0] = O;
주봉H[0] = H;
주봉L[0] = L;
주봉C[0] = C;
}
주봉C[0] = C;
if H > 주봉H[0] Then
주봉H[0] = H;
if L < 주봉L[0] Then
주봉L[0] = L;
if Date[1] < Date and DayOfWeek(sdate) <= DayOfWeek(sdate[1]) then {
for j = 98 downto 0 {
value1[j+1] = value1[j];
value2[j+1] = value2[j];
value3[j+1] = value3[j];
value4[j+1] = value4[j];
}
}
if 주봉C[1] > 0 then {
value1[0] = iff(주봉H[0]-주봉H[1]>0 and 주봉H[0]-주봉H[1]>주봉L[1]-주봉L[0],주봉H[0]-주봉H[1],0);
value2[0] = iff(주봉L[1]-주봉L[0]>0 and 주봉H[0]-주봉H[1]<주봉L[1]-주봉L[0],주봉L[1]-주봉L[0],0);
}
sum1 = 0; sum2 = 0;
for j = 0 to Period-1 {
sum1 = sum1 + value1[j];
sum2 = sum2 + value2[j];
}
value3[0] = sum1/Period;
value4[0] = sum2/period;
sum5 = 0;
sum6 = 0;
for j = 0 to Period-1 {
sum5 = sum5 + max(주봉H[j]-주봉L[j],abs(주봉C[j+1]-주봉H[j]),abs(주봉C[j+1]-주봉L[j]));
sum6 = sum6 + abs(value3[j]-value4[j])/(value3[j]+value4[j])*100;
}
ma5 = sum5/Period;
ma6 = sum6/Period;
Plot1(value3[0]/ma5*100, "DIPlus");
Plot2(value4[0]/ma5*100, "DIMinus");
Plot3(ma6, "ADX");
즐거운 하루되세요
> 스테디어드밴서 님이 쓴 글입니다.
> 제목 : 안녕하세요?
> 안녕하세요?
어제 아래식과 같은
일봉값을 이용해서 주봉adx를 구하는 식을 만들고 검토를 부탁드렸었습니다.
말씀대로 차트에 적용해 보니, 실제 주봉adx값과 다르더군요.
제가 만든 식은 수식지왕님 이란 분의 자료를 참고로 해서 만든 식입니다.
수식지왕님은 첨부한 pdf파일에서 모든 지표의 타주기참조식이 가능하다고
하였는데요.
수식지왕님의 자료는 맞는데 제가 부족해서 소화를 못한 탓으로
그런식이 나온듯 싶습니다.
게다가 제 마음대로 약칭을 쓰다보니, 선생님께서 제 식을 보기도 어려웠고요.
1)그래서 수식지왕님의 [pdf파일을 첨부]합니다. 거기서 191페이지 DMI를
참고해서, 제가 식을 만들었는데요. 분명히 제가 실수한 점이 있을 것입니다.
2)저에겐 꼭 필요한 식이라 정중히 부탁드립니다. [수식지왕님의 pdf파일 191페이지]를
참조하셔서, 일봉값으로 주봉adx,+di,-di를 만들어 주시면 정말 감사하겠습니다.
아래는 제가 잘못 만든 식입니다. 그래프가 나오긴 하나 수치가 틀리더군요.
건승하십시오.
==============================
array : 주봉O[100](0),주봉H[100](0),주봉L[100](0),주봉C[100](0);
var : k(0);
var : s1(0),s2(0),s5(0),s6(0),m5(0),m6(0),주봉diplus(0),주봉diminus(0),
주봉adx(0);
array : v1[100](0),v2[100](0),v3[100](0),v4[100](0);
if date[1]<date and dayofweek(date[1])>=dayofweek(date) then {
for k = 98 downto 0 {
주봉O[k+1] = 주봉O[k];
주봉H[k+1] = 주봉H[k];
주봉L[k+1] = 주봉L[k];
주봉C[k+1] = 주봉C[k];
v1[k+1] = v1[k];
v2[k+1] = v2[k];
v3[k+1] = v3[k];
v4[k+1] = v4[k];
}
주봉O[0] = O;
주봉H[0] = H;
주봉L[0] = L;
주봉C[0] = C;
}
주봉C[0] = C;
if H > 주봉H[0] Then
주봉H[0] = H;
if L < 주봉L[0] Then
주봉L[0] = L;
if 주봉C[1]>0 then {
v1[0]=iff(주봉H[0]-주봉H[1]>0 and 주봉H[0]-주봉H[1]>주봉L[1]-주봉L[0],
주봉H[0]-주봉H[1],0);
v2[0]=iff(주봉L[1]-주봉L[0]>0 and 주봉H[0]-주봉H[1]<주봉L[1]-주봉L[0],
주봉L[1]-주봉L[0],0);
}
s1=0; s2=0;
for k= 0 to 13 {
s1=s1+v1[k];
s2=s2+v2[k];
}
v3[0]=s1/14;
v4[0]=s2/14;
s5=0; s6=0;
for k= 0 to 13 {
s5 = s5 + max(주봉H[k]-주봉L[k],abs(주봉C[k+1]-주봉H[k]),
abs(주봉C[k+1]-주봉L[k]));
s6 = s6 + abs(v3[k]-v4[k])/(v3[k]+v4[k])*100;
}
m5 = s5/14; m6 = s6/14;
주봉diplus=v3[0]/m5*100;
주봉diminus=v4[0]/m5*100;
주봉adx=m6;
Plot1(주봉diplus,"주봉diplus");
Plot2(주봉diminus,"주봉diminus");
Plot3(주봉adx,"주봉adx");
다음글
이전글