커뮤니티
지수볼린저밴드 수식 문의 드립니다.
2014-06-16 21:22:18
216
글번호 75879
수고하십니다.
일반볼린저밴드를 지수볼린저밴드로 변경하려고 16164에 있는 수식을 붙여 넣었는데 선언되지 않은 std-e나 price등이 있다며 수식에 에러가 자꾸 뜹니다.
아래는 제가 붙여넣은 수식인데 뭐가 잘못된건지 봐 주십시요
Input : Period(20), D(2);
var : Base(0), BollUp(0), BollDn(0);
Base = ema(C, period);
BollUP = ema(C, Period) + (D * std_e(C, Period));
BollDn = ema(C, Period) - (D * std_e(C, Period));
plot1(Base);
plot2(BollUp);
plot3(BollDn);
[사용자함수식 : std_e]
Input : Price(NumericSeries), Length(NumericSimple);
Var : SumSqrt(0), Avg(0), Counter(0);
If Length != 0 Then Begin
Avg = eMa(Price, Length);
SumSqrt = 0;
For Counter = 0 To Length - 1 Begin
SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg);
End;
Std_e = SquareRoot(SumSqrt / Length);
End
Else
Std_e = 0;
답변 2
예스스탁 예스스탁 답변
2014-06-17 11:30:14
안녕하세요
예스스탁입니다.
해당 지표식 사용하시기 위해서는
사용자함수를 하나를 직접 만들어 추가하신 후에 사용하셔야 합니다.
1,
예스랭귀지 편집기의 상단 파일메뉴에서
새로만들기 --> 일반탭에서 사용자함수 아이콘 선택 후 확인
--> 사용자함수 새로작성화면에서 반환값형은 숫자형으로 선택하고 이름에 std_e입력하고 확인
--> 아래 내용 복사후 붙여넣기 하시고 문법검증(f4)
Input : Price(NumericSeries), Length(NumericSimple);
Var : SumSqrt(0), Avg(0), Counter(0);
If Length != 0 Then Begin
Avg = eMa(Price, Length);
SumSqrt = 0;
For Counter = 0 To Length - 1 Begin
SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg);
End;
Std_e = SquareRoot(SumSqrt / Length);
End
Else
Std_e = 0;
2.
아래내용은 지표식으로 작성후 차트에 적용하시면 됩니다.
Input : Period(20), D(2);
var : Base(0), BollUp(0), BollDn(0);
Base = ema(C, period);
BollUP = ema(C, Period) + (D * std_e(C, Period));
BollDn = ema(C, Period) - (D * std_e(C, Period));
plot1(Base);
plot2(BollUp);
plot3(BollDn);
즐거운 하루되세요
> 선물만땅 님이 쓴 글입니다.
> 제목 : 지수볼린저밴드 수식 문의 드립니다.
> 수고하십니다.
일반볼린저밴드를 지수볼린저밴드로 변경하려고 16164에 있는 수식을 붙여 넣었는데 선언되지 않은 std-e나 price등이 있다며 수식에 에러가 자꾸 뜹니다.
아래는 제가 붙여넣은 수식인데 뭐가 잘못된건지 봐 주십시요
Input : Period(20), D(2);
var : Base(0), BollUp(0), BollDn(0);
Base = ema(C, period);
BollUP = ema(C, Period) + (D * std_e(C, Period));
BollDn = ema(C, Period) - (D * std_e(C, Period));
plot1(Base);
plot2(BollUp);
plot3(BollDn);
[사용자함수식 : std_e]
Input : Price(NumericSeries), Length(NumericSimple);
Var : SumSqrt(0), Avg(0), Counter(0);
If Length != 0 Then Begin
Avg = eMa(Price, Length);
SumSqrt = 0;
For Counter = 0 To Length - 1 Begin
SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg);
End;
Std_e = SquareRoot(SumSqrt / Length);
End
Else
Std_e = 0;
셍
2015-02-24 09:53:25
셍 님에 의해 삭제된 답변입니다.
다음글
이전글