커뮤니티

지수볼린저밴드 수식 문의 드립니다.

프로필 이미지
선물만땅
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

셍 님에 의해 삭제된 답변입니다.