예스스탁
예스스탁 답변
2021-01-18 15:43:21
안녕하세요
예스스탁입니다.
2번계산을 하는 것을 막을 수는 없습니다.
다만 2번을 계산해도 동일값이 리턴되게
계산에 필요한 변수등을 선언할떄
var : 변수(0,data1);
과 같이 변수에 사용되는 값을 특정데이타를 기준으로
저장되게 하셔야 합니다.
어떤 계산식인지 알수 없어 정확히 답변이 가능하지 않으므로
해당 계산식 부분만 올려주시기 바랍니다.
즐거운 하루되세요
> 데미안 님이 쓴 글입니다.
> 제목 : Data1과 Data2사용시
> data1과 data2 모두 10분봉 사용
data1에서 날짜가 바뀌면 data1과 data2를 이용, 새로이 지표를 1회만 계산하고자 함
문제)
data1은 15시 20분 데이터(전일자 마지막 데이터)가 없고, 익일 시가 데이터가 있음
data2는 15시 20분 데이터(전일자 마지막 데이터)가 있고, 익일 시가 데이터가 있음
이 경우 data1은 data2에 비교해서 당일자 마지막 봉이 없어서 (비어있어서),
위의 경우에 날짜가 바뀌는 것을 1회가 아니라 2회로 인식해서,
지표 계산을 2회에 걸쳐 함.
이 경우 1회만 지표를 계산하게 하려고 합니다. 어찌해야 할까요.
해당 부분은 미니 코스피 기준 10분 봉기준 2018-8-13 ~ 8-17에 발생하였습니다
수식은 다음과 같습니다. 날짜가 달라지는 경우 시가를 기준으로 각각의 이평을 1회만 계산하도록 부탁드립니다.
감사합니다.
Input : AvgLen(2);
Array : Book[50,10](0);
var : Counter(0),SubCounter(0);
var : SumAvgD1(0),SumAvgD2(0);
//{**********************************************************************}
If Date<>Date[1] then begin
SumAvgD1=0; SumAvgD2=0;
For Counter=49 downto 1 begin
Book[Counter+1,1]=Book[Counter,1]; //{Ksf Open}
Book[Counter+1,2]=Book[Counter,2]; //{Ssf Open}
Book[Counter+1,3]=Book[Counter,4]; //{SumKsf}
Book[Counter+1,4]=Book[Counter,5]; //{SumSsf}
Book[Counter+1,5]=Book[Counter,6]; //{AvgKsf}
Book[Counter+1,6]=Book[Counter,7]; //{AvgSsf}
End;
// {**********************************************************************}
Book[1,1]=Data1(Open);
Book[1,2]=Data2(Open);
For SubCounter=1 to AvgLen begin
SumAvgD1=SumAvgD1+Book[SubCounter,1];
SumAvgD2=SumAvgD2+Book[SubCounter,2];
End;
Book[1,3]=SumAvgD1;
Book[1,4]=SumAvgD2;
Book[1,5]=Book[1,3]/AvgLen;
Book[1,6]=Book[1,4]/AvgLen;
End;
Plot1(Book[1,5]);
plot2(Book[1,6]);