커뮤니티
재질문드립니다
2015-03-10 20:20:11
122
글번호 83899
감사합니다
보내주신 코딩내용 매우 고맙게 받았습니다
몇가지 추가 질문 올립니다
1. 분봉에서 타분봉
INPUT : Ntime(5),P(20);
>>> 제가 원하는 내용을 정리해보겠습니다
1. DATA1, DATA2 : 10분차트 적용
2. 보내주신 코딩내용으로 지표를 만들어 적용하고자 함
60분봉 기준으로 P 값에 해당되는 기간은 80일 입니다
이럴경우 Ntime은 Ntime(60) 이렇게 입력하면 되는데
P 값은 어떻게 적용해야하나요?
60분봉으로 80일의 값을 넣고자합니다. P값을 100이상 넣으니
지표가 보이지 않네요
2, 분봉에서 일봉
INPUT : P(20);
>>> 제가 원하는 내용을 정리해보겠습니다
1. DATA1, DATA2 : 10분차트 적용
2. 보내주신 코딩내용으로 지표를 만들어 적용하고자 함
일봉 기준으로 P 값에 해당되는 기간은 240일 입니다
이럴경우 P 값은 어떻게 적용해야하나요?
이것역시 위와같이 P값을 100이상 넣으니
지표가 보이지 않네요
답변 1
예스스탁 예스스탁 답변
2015-03-11 09:32:50
안녕하세요
예스스탁입니다.
1
ntime이 다른분봉의 주기이므로 60으로 지정하시고
P는 이평의 기간값이므로 80으로 지정하시면 됩니다.
만약 지정해서 지표가 그려지지 않으면 않으면
수식 계산에 필요한 봉갯수가 부족한 것입니다.
수식은 차트의 데이터를 이용하므로
차트에서 제공되는 데이터 이상은 계산을 못합니다.
2.
현재 수식에는 배열변수가 100까지 지정되어 있습니다.
차트의 데이터가 충분하면 이평이 100기간까지만 계산됩니다.
해당 내용 늘려서 올려드립니다.
1번과 마찬가지로 차트의 데이터가 지정한 일수를 충족못하면
지표는 그려지지 않습니다.
1, 분봉에서 타분봉
INPUT : Ntime(5),P(20);
var : cnt1(0,data1),TF1(0,data1),sum1(0,data1),mav1(0,data1),SumSqrt1(0,data1),Stdv1(0,data1);
var : cnt2(0,data2),TF2(0,data2),sum2(0,data2),mav2(0,data2),SumSqrt2(0,data2),Stdv2(0,data2);
Array : C1[200](0),C2[200](0);
TF1 = data1(TimeToMinutes(stime)%Ntime);
if data1(dayindex() == 0 or (TF1 < TF1[1] and stime > stime[1])) Then{
for cnt1 = 1 to 199{
C1[cnt1] = C1[cnt1-1][1];
}
}
C1[0] = data1(C);
If C1[P-1] > 0 Then{
sum1 = 0;
for cnt1 = 0 to P-1{
sum1 = sum1+C1[cnt1];
}
mav1 = sum1/P;
SumSqrt1 = 0;
For cnt1 = 0 To P - 1 {
SumSqrt1 = SumSqrt1 + (C1[cnt1] - mav1) * (C1[cnt1] - mav1);
}
Stdv1 = SquareRoot(SumSqrt1 / P);
plot3(data1((C- mav1)/stdv1),"data1 타분봉");
}
TF2 = data2(TimeToMinutes(stime)%Ntime);
if data2(dayindex() == 0 or (TF2 < TF2[1] and stime > stime[1])) Then{
for cnt2 = 1 to 99{
C2[cnt2] = C2[cnt2-1][1];
}
}
C2[0] = data2(C);
If C2[P-1] > 0 Then{
sum2 = 0;
for cnt2 = 0 to P-1{
sum2 = sum2+C2[cnt2];
}
mav2 = sum2/P;
SumSqrt2 = 0;
For cnt2 = 0 To P - 1 {
SumSqrt2 = SumSqrt2 + (C2[cnt2] - mav2) * (C2[cnt2] - mav2);
}
Stdv2 = SquareRoot(SumSqrt2 / P);
plot4(data2((C- mav2)/stdv2),"data2 타분봉");
}
2, 분봉에서 일봉
INPUT : P(20);
var : Dcnt1(0,data1),Dsum1(0,data1),Dmav1(0,data1),DSumSqrt1(0,data1),DStdv1(0,data1);
var : Dcnt2(0,data2),Dsum2(0,data2),Dmav2(0,data2),DSumSqrt2(0,data2),DStdv2(0,data2);
Array : DC1[200](0),DC2[200](0);
if data1(date != date[1]) Then{
for Dcnt1 = 1 to 199{
DC1[Dcnt1] = DC1[Dcnt1-1][1];
}
}
DC1[0] = data1(C);
If DC1[P-1] > 0 Then{
Dsum1 = 0;
for Dcnt1 = 0 to P-1{
Dsum1 = Dsum1+DC1[Dcnt1];
}
Dmav1 = Dsum1/P;
DSumSqrt1 = 0;
For Dcnt1 = 0 To P - 1 {
DSumSqrt1 = DSumSqrt1 + (DC1[Dcnt1] - Dmav1) * (DC1[Dcnt1] - Dmav1);
}
DStdv1 = SquareRoot(DSumSqrt1 / P);
plot5(data1((C- Dmav1)/Dstdv1),"data1 일봉");
}
if data2(date != date[1]) Then{
for Dcnt2 = 1 to 99{
DC2[Dcnt2] = DC2[Dcnt2-1][1];
}
}
DC2[0] = data2(C);
If DC2[P-1] > 0 Then{
Dsum2 = 0;
for Dcnt2 = 0 to P-1{
Dsum2 = Dsum2+DC2[Dcnt2];
}
Dmav2 = Dsum2/P;
DSumSqrt2 = 0;
For Dcnt2 = 0 To P - 1 {
DSumSqrt2 = DSumSqrt2 + (DC2[Dcnt2] - Dmav2) * (DC2[Dcnt2] - Dmav2);
}
DStdv2 = SquareRoot(DSumSqrt2 / P);
plot6(data2((C- Dmav2)/Dstdv2),"data2 일봉");
}
즐거운 하루되세요
> HI_ll****** 님이 쓴 글입니다.
> 제목 : 재질문드립니다
> 감사합니다
보내주신 코딩내용 매우 고맙게 받았습니다
몇가지 추가 질문 올립니다
1. 분봉에서 타분봉
INPUT : Ntime(5),P(20);
>>> 제가 원하는 내용을 정리해보겠습니다
1. DATA1, DATA2 : 10분차트 적용
2. 보내주신 코딩내용으로 지표를 만들어 적용하고자 함
60분봉 기준으로 P 값에 해당되는 기간은 80일 입니다
이럴경우 Ntime은 Ntime(60) 이렇게 입력하면 되는데
P 값은 어떻게 적용해야하나요?
60분봉으로 80일의 값을 넣고자합니다. P값을 100이상 넣으니
지표가 보이지 않네요
2, 분봉에서 일봉
INPUT : P(20);
>>> 제가 원하는 내용을 정리해보겠습니다
1. DATA1, DATA2 : 10분차트 적용
2. 보내주신 코딩내용으로 지표를 만들어 적용하고자 함
일봉 기준으로 P 값에 해당되는 기간은 240일 입니다
이럴경우 P 값은 어떻게 적용해야하나요?
이것역시 위와같이 P값을 100이상 넣으니
지표가 보이지 않네요