아래의 수식을 예스언어로 변환부탁드립니다.
StdevIf(data, compare, value)
- data 벡터에서 value와 비교하여 해당되는 값들로만 전체 구간에 대해
표준편차를 구한다.
(compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼)
StdevIf(C-avg(C, 24), -1, 0)
종가-24일평균값이 0보다 작은 값들에 대해서만, 표준편차를 구한다.
사용법 : AvgIf(data, compare, value)
- data 벡터에서 value와 비교하여 해당되는 값들로만 평균을 구한다.
(compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼)
AvgIf(C-avg(C, 24), -1, 0)
종가-24일평균값이 0보다 작은 값들에 대해서만 평균값을 구한다.
답변 1
예스스탁
예스스탁 답변
2022-06-28 16:48:24
안녕하세요
예스스탁입니다.
해당 함수들은 차트 전체봉을 대상으로 계산을 합니다.
1
input : compare(-1),value(0);
var : mav(0),sum(0),bars(0),avgif(0),Data(0),cnt(0);
var : SumSqrt(0),Stdvif(0);
Array : diff[10000](0);
mav = ma(C,24);
data = c-mav;
if IsNan(mav) == False then
{
if compare == 1 Then
{
if data > value Then
{
bars = bars + 1;
diff[bars] = data;
sum = sum + data;
}
}
Else if compare == -1 Then
{
if data < value Then
{
bars = bars + 1;
diff[bars] = data;
sum = sum + data;
}
}
Else
{
if data == value Then
{
bars = bars + 1;
diff[bars] = data;
sum = sum + data;
}
}
avgif = sum/bars;
SumSqrt = 0;
For cnt = 1 To bars
{
SumSqrt = SumSqrt + (diff[cnt] - avgif)^2;
}
Stdvif = SquareRoot(SumSqrt / bars);
Plot1(Stdvif);
}
2
input : compare(-1),value(0);
var : mav(0),sum(0),bars(0),avgif(0),Data(0);
mav = ma(C,24);
data = c-mav;
if IsNan(mav) == False then
{
if compare == 1 Then
{
if data > value Then
{
sum = sum + (c-mav);
bars = bars + 1;
}
}
Else if compare == -1 Then
{
if data < value Then
{
sum = sum + (c-mav);
bars = bars + 1;
}
}
Else
{
if data == value Then
{
sum = sum + (c-mav);
bars = bars + 1;
}
}
avgif = sum/bars;
}
Plot1(avgif);
즐거운 하루되세요
> 심홍 님이 쓴 글입니다.
> 제목 : 수식변환의뢰
> 아래의 수식을 예스언어로 변환부탁드립니다.
StdevIf(data, compare, value)
- data 벡터에서 value와 비교하여 해당되는 값들로만 전체 구간에 대해
표준편차를 구한다.
(compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼)
StdevIf(C-avg(C, 24), -1, 0)
종가-24일평균값이 0보다 작은 값들에 대해서만, 표준편차를 구한다.
사용법 : AvgIf(data, compare, value)
- data 벡터에서 value와 비교하여 해당되는 값들로만 평균을 구한다.
(compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼)
AvgIf(C-avg(C, 24), -1, 0)
종가-24일평균값이 0보다 작은 값들에 대해서만 평균값을 구한다.