수고하십니다.
아래 2번 함수식의 오류 점검을 부탁드립니다.
함수식:분봉차트에서 일봉의 기간값을 분봉으로 환산하여 일봉기간내의 분봉갯수를 계산한다
오류 1번: 분봉개수의 계산이 틀립니다.(1일간의 dayindex 차이 발생)
오류 2번: n전일 last dayindex에서 당일 last dayindex까지 선이 이어져야 하는데, 그러하지 않습니다. 오류1번 때문인지 하루의 중간에서 선이 바뀝니다.
# 1번 지표식
Input : Period(10), sPeriod(05) ;
Var : Box_Top(0), Box_Bottom(0), sBox_Top(0), sBox_Bottom(0) ;
Var : BarCount(0), sBarCount(0) ;
If DataCompress == 3 Then # 일봉
{
Box_Top = highest(C, Period) ;
Box_Bottom = lowest( C, Period) ;
sBox_Top = highest(C,sPeriod) ;
sBox_Bottom = lowest( C,sPeriod) ;
}
If DataCompress == 2 Then # 분봉
{
# 일봉차트의 봉개수를 분봉차트의 봉갯수로 구한다.
BarCount = _분봉갯수_일봉(Period) ;
sBarCount = _분봉갯수_일봉(sPeriod) ;
# 기준값 : last DayIndex의 DayClose
Box_Top = highest(iff(Bdate<NextBarSdate, DayClose, 0), BarCount - 0 ) ;
Box_Bottom = lowest( iff(Bdate<NextBarSdate, DayClose, Box_Top), BarCount - 0 ) ;
sBox_Top = highest(iff(Bdate<NextBarSdate, DayClose, 0), sBarCount - 0 ) ;
sBox_Bottom = lowest( iff(Bdate<NextBarSdate, DayClose, sBox_Top), sBarCount - 0 ) ;
}
Plot1(Box_Top, "Box_Top") ; # 일자 그래프 & 빨강
Plot2(Box_Bottom, "Box_Bottom") ; # 일자 그래프 & 파랑
Plot51(sBox_Top, "sBox_Top") ; # 일자 그래프 & 빨강
Plot52(sBox_Bottom, "sBox_Bottom") ; # 일자 그래프 & 파랑
# 2번 함수식
#======================================================#
# 함수명 : _분봉갯수_일봉.yfu
# 지표명 : _분봉갯수_일봉.yin
# 개 요 : 분봉차트에서 일봉의 기간값을 분봉으로 환산하여 일봉기간내의 분봉갯수를 계산한다.
#======================================================#
input : P(Numeric) ;
var : cnt(0), SumDayIndex(0) ;
array : svDayIndex[241](0);
if Bdate[0] < NextBarSdate Then
{
cnt = cnt + 1 ;
if cnt <= P-0 Then
{
svDayIndex[cnt%(P-0)] = DayIndex+1 ;
SumDayIndex = SumDayIndex + svDayIndex[cnt%(P-0)] ;
}
Else
{
SumDayIndex = SumDayIndex
- svDayIndex[cnt%(P-0)]
+ DayIndex+1 ;
svDayIndex[cnt%(P-0)] = DayIndex+1 ;
}
}
_분봉갯수_일봉 = SumDayIndex ;
답변 1
예스스탁
예스스탁 답변
2023-02-13 18:18:34
안녕하세요
예스스탁입니다.
함수의 기간이 변동주기이면 최대 1024봉까지만 계산이 가능합니다.
고정으로는 2000,3000과 같이 크게 사용할 수 있지만
변동이면 1024봉이 최대입니다.
즐거운 하루되세요
> 목포댁 님이 쓴 글입니다.
> 제목 : 수식 체크 부탁 드립니다.
> 수고하십니다.
아래 2번 함수식의 오류 점검을 부탁드립니다.
함수식:분봉차트에서 일봉의 기간값을 분봉으로 환산하여 일봉기간내의 분봉갯수를 계산한다
오류 1번: 분봉개수의 계산이 틀립니다.(1일간의 dayindex 차이 발생)
오류 2번: n전일 last dayindex에서 당일 last dayindex까지 선이 이어져야 하는데, 그러하지 않습니다. 오류1번 때문인지 하루의 중간에서 선이 바뀝니다.
# 1번 지표식
Input : Period(10), sPeriod(05) ;
Var : Box_Top(0), Box_Bottom(0), sBox_Top(0), sBox_Bottom(0) ;
Var : BarCount(0), sBarCount(0) ;
If DataCompress == 3 Then # 일봉
{
Box_Top = highest(C, Period) ;
Box_Bottom = lowest( C, Period) ;
sBox_Top = highest(C,sPeriod) ;
sBox_Bottom = lowest( C,sPeriod) ;
}
If DataCompress == 2 Then # 분봉
{
# 일봉차트의 봉개수를 분봉차트의 봉갯수로 구한다.
BarCount = _분봉갯수_일봉(Period) ;
sBarCount = _분봉갯수_일봉(sPeriod) ;
# 기준값 : last DayIndex의 DayClose
Box_Top = highest(iff(Bdate<NextBarSdate, DayClose, 0), BarCount - 0 ) ;
Box_Bottom = lowest( iff(Bdate<NextBarSdate, DayClose, Box_Top), BarCount - 0 ) ;
sBox_Top = highest(iff(Bdate<NextBarSdate, DayClose, 0), sBarCount - 0 ) ;
sBox_Bottom = lowest( iff(Bdate<NextBarSdate, DayClose, sBox_Top), sBarCount - 0 ) ;
}
Plot1(Box_Top, "Box_Top") ; # 일자 그래프 & 빨강
Plot2(Box_Bottom, "Box_Bottom") ; # 일자 그래프 & 파랑
Plot51(sBox_Top, "sBox_Top") ; # 일자 그래프 & 빨강
Plot52(sBox_Bottom, "sBox_Bottom") ; # 일자 그래프 & 파랑
# 2번 함수식
#======================================================#
# 함수명 : _분봉갯수_일봉.yfu
# 지표명 : _분봉갯수_일봉.yin
# 개 요 : 분봉차트에서 일봉의 기간값을 분봉으로 환산하여 일봉기간내의 분봉갯수를 계산한다.
#======================================================#
input : P(Numeric) ;
var : cnt(0), SumDayIndex(0) ;
array : svDayIndex[241](0);
if Bdate[0] < NextBarSdate Then
{
cnt = cnt + 1 ;
if cnt <= P-0 Then
{
svDayIndex[cnt%(P-0)] = DayIndex+1 ;
SumDayIndex = SumDayIndex + svDayIndex[cnt%(P-0)] ;
}
Else
{
SumDayIndex = SumDayIndex
- svDayIndex[cnt%(P-0)]
+ DayIndex+1 ;
svDayIndex[cnt%(P-0)] = DayIndex+1 ;
}
}
_분봉갯수_일봉 = SumDayIndex ;