안녕하세요
일전에 30분챠트 20이평선을 3분챠트에 표시하는 함수를 질문드렸고 당시 주신 답변은 아래와 같습니다.
그런데 30분챠트 240이평선을 3분챠트에 나타내려 혼자 시도해 봤는데 도저히 못하겠더군요;;
도움 부탁드립니다.
input : ntime(30),P(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : C1[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
Plot1(mav1);
}
}
답변 1
예스스탁
예스스탁 답변
2020-12-22 14:24:24
안녕하세요
예스스탁입니다.
수식의 타주기의 종가를 저장하는 배열변수(C1)가 총 100개의 공간만 사용합니다
그이상 사용하시기 위해서는 공간갯수를 늘려수셔야 하고 for문도 루프횟수를 늘리셔야 합니다.
3분차트에 30분봉의 240선이 계산될 만큼 충분한 봉수를 지정해 주셔야 합니다.
데이타가 부족하면 계산되지 않습니다.
input : ntime(30),P(240);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : C1[300](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
for cnt = 1 to 299
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
Plot1(mav1);
}
}
즐거운 하루되세요
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 안녕하세요
일전에 30분챠트 20이평선을 3분챠트에 표시하는 함수를 질문드렸고 당시 주신 답변은 아래와 같습니다.
그런데 30분챠트 240이평선을 3분챠트에 나타내려 혼자 시도해 봤는데 도저히 못하겠더군요;;
도움 부탁드립니다.
input : ntime(30),P(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : C1[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
Plot1(mav1);
}
}