커뮤니티
1초 챠트로 기간 초봉 거래량 을 구하는데 도와주세요.
2014-02-28 05:59:23
178
글번호 73022
일단 1초 챠트 입니다.
1초마다 거래량을 합하고 10초가 지나면
배열 sum_vps[0] 에 각 값을 배당합니다. .
메세지 로그로 확인해 보니 값은 정확하게 들어갑니다..
그런데... 로그를 쭈욱 살펴 보니 .. 시간이 맞지 않는겁니다.
sum_vps[0] 값이 10 초마다 변해야 하는데. 맞지 않기에
그 부분을 살펴보니....
챠트에서 시간자체가 빠져 있는것을 발견했습니다..
090018 다음에 090019초가 아니라 090020 초가 바로 나오더군요.. 챠트에도 그 시간에 대한 데이타 자체가 빠져 있었습니다..
이것은 왜 그런가요? 그 시간에 거래가 없었다면 거래량이 0으로 잡혀야 정상아닌가요?
단순한 프로그램 오류인지.. 그렇게 되는 이유가 있는지..
설명좀 해주세요.
var: vps(0),time_std(0),count(0);
var: sum_cnt(0),cnt(0);
array: sum_vps[4320](0);
if date[1] != sdate then{
vps=0; time_std=0;count=0;
sum_cnt=0; cnt=0;
for cnt = 0 to 4319
sum_vps[cnt]=0;
}
if time >= 090000 Then{
if count == 0 Then{
vps = 0;
}
vps = vps + v;
time_std = time;
count=count+1;
}
if count == 10 then{
sum_cnt = sum_cnt+1;
sum_vps[0] =vps;
for cnt = 1 to sum_cnt{
sum_vps[cnt]=sum_vps[cnt-1][1];
}
count = 0;
time_std = time;
}
//MessageLog("sum_vps %.f",sum_vps[0]);
MessageLog("1- %.f",sum_vps[0]);
//MessageLog("2- %.f",sum_vps[1]);
MessageLog("v %.f",v);
buy("a",AtStop,300);
답변 1
예스스탁 예스스탁 답변
2014-02-28 13:39:48
안녕하세요
예스스탁입니다.
예스트레이더는 기본설정이 거래가 없는 구간의 봉은 표시하지 않습니다.
거래가 없는 구간의 허수봉을 그리고자 하시면
차트창 속성의 기타탭에서 [거래없는 구간 봉 그리기]를 체크해야 합니다.
아래는 1초차트에서 10초간격으로 거래량을 누적하는 식입니다.
var : stimeTosecond(0),timeTosecond(0),Second(0),TT(0),VV(0);
if dayindex == 0 Then{
var1 = TimeToMinutes(stime)*60;
var2 = FracPortion(stime/100)*100;//시작시간 초
stimeTosecond = var1+var2;
}
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;//긑시간 초
timeTosecond = value1+value2;
Second = timeTosecond-stimeTosecond;
TT = Second%10;
if dayindex == 0 or (TT < TT[1]) Then
VV = 0;
VV = VV+V;
plot1(VV);
즐거운 하루되세요
> nadogaja 님이 쓴 글입니다.
> 제목 : 1초 챠트로 기간 초봉 거래량 을 구하는데 도와주세요.
> 일단 1초 챠트 입니다.
1초마다 거래량을 합하고 10초가 지나면
배열 sum_vps[0] 에 각 값을 배당합니다. .
메세지 로그로 확인해 보니 값은 정확하게 들어갑니다..
그런데... 로그를 쭈욱 살펴 보니 .. 시간이 맞지 않는겁니다.
sum_vps[0] 값이 10 초마다 변해야 하는데. 맞지 않기에
그 부분을 살펴보니....
챠트에서 시간자체가 빠져 있는것을 발견했습니다..
090018 다음에 090019초가 아니라 090020 초가 바로 나오더군요.. 챠트에도 그 시간에 대한 데이타 자체가 빠져 있었습니다..
이것은 왜 그런가요? 그 시간에 거래가 없었다면 거래량이 0으로 잡혀야 정상아닌가요?
단순한 프로그램 오류인지.. 그렇게 되는 이유가 있는지..
설명좀 해주세요.
var: vps(0),time_std(0),count(0);
var: sum_cnt(0),cnt(0);
array: sum_vps[4320](0);
if date[1] != sdate then{
vps=0; time_std=0;count=0;
sum_cnt=0; cnt=0;
for cnt = 0 to 4319
sum_vps[cnt]=0;
}
if time >= 090000 Then{
if count == 0 Then{
vps = 0;
}
vps = vps + v;
time_std = time;
count=count+1;
}
if count == 10 then{
sum_cnt = sum_cnt+1;
sum_vps[0] =vps;
for cnt = 1 to sum_cnt{
sum_vps[cnt]=sum_vps[cnt-1][1];
}
count = 0;
time_std = time;
}
//MessageLog("sum_vps %.f",sum_vps[0]);
MessageLog("1- %.f",sum_vps[0]);
//MessageLog("2- %.f",sum_vps[1]);
MessageLog("v %.f",v);
buy("a",AtStop,300);