국내선물 지표인데 종가의 시간이 달라서 그런지 자정을 기준으로 바뀌네요.
해외선물이 끝나는 종가기준으로 수정부탁드립니다.
VARS: MAXDAYLINE.SHORT(60);
VARS: M5DP(5), M5D(0, DATA1), M5D.SUM(0, DATA1);
VARS: DayLineCnt(0);
ARRAY: CC[60](0, DATA1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) Then
{
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
CC[DayLineCnt] = CC[DayLineCnt - 1][1];
}
}
CC[0] = CLOSE;
M5D.SUM = 0;
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
if ( (DayLineCnt < M5DP) AND (CC[M5DP - 1] > 0) ) Then M5D.SUM = M5D.SUM + CC[DayLineCnt];
}
M5D = ((M5D.SUM + DATA1(OPEND(0))) / M5DP);
감사합니다.
답변 1
예스스탁
예스스탁 답변
2016-04-01 13:34:20
안녕하세요
예스스탁입니다.
date != date[1]는 0시 기준입니다.
영업일 변경시간을 기준으로 하신다면
Bdate != Bdate[1]로 변경하시면 됩니다.
또한 일간값을 가져오는 함수에서
OpenD,HighD,LowD,CloseD는 모두 0시 기준입니다.
data1이면 dayOpen,Dayhigh,daylow,dayclose를 사용하시면
영업일기준으로 일간값이 리턴됩니다.
참조데이터면 Bdate변경기준으로 따로 작성해 쓰셔야 합니다.
VARS: MAXDAYLINE.SHORT(60);
VARS: M5DP(5), M5D(0, DATA1), M5D.SUM(0, DATA1);
VARS: DayLineCnt(0);
ARRAY: CC[60](0, DATA1),HH[60](0, DATA1),LL[60](0, DATA1),OO[60](0, DATA1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(bDate <> bDate[1]) ) Then
{
OO[0] = Open;
HH[0] = High;
LL[0] = Low;
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
OO[DayLineCnt] = OO[DayLineCnt - 1][1];
HH[DayLineCnt] = HH[DayLineCnt - 1][1];
LL[DayLineCnt] = LL[DayLineCnt - 1][1];
CC[DayLineCnt] = CC[DayLineCnt - 1][1];
}
}
CC[0] = CLOSE;
if high > HH[0] Then
HH[0] = high;
if Low < LL[0] Then
LL[0] = Low;
M5D.SUM = 0;
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
if ( (DayLineCnt < M5DP) AND (CC[M5DP - 1] > 0) ) Then M5D.SUM = M5D.SUM + CC[DayLineCnt];
}
M5D = ((M5D.SUM + OO[0]) / M5DP);
즐거운 하루되세요
> gt 님이 쓴 글입니다.
> 제목 : 문의
> 국내선물 지표인데 종가의 시간이 달라서 그런지 자정을 기준으로 바뀌네요.
해외선물이 끝나는 종가기준으로 수정부탁드립니다.
VARS: MAXDAYLINE.SHORT(60);
VARS: M5DP(5), M5D(0, DATA1), M5D.SUM(0, DATA1);
VARS: DayLineCnt(0);
ARRAY: CC[60](0, DATA1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) Then
{
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
CC[DayLineCnt] = CC[DayLineCnt - 1][1];
}
}
CC[0] = CLOSE;
M5D.SUM = 0;
for DayLineCnt = 1 to MAXDAYLINE.SHORT - 1
{
if ( (DayLineCnt < M5DP) AND (CC[M5DP - 1] > 0) ) Then M5D.SUM = M5D.SUM + CC[DayLineCnt];
}
M5D = ((M5D.SUM + DATA1(OPEND(0))) / M5DP);
감사합니다.