커뮤니티

함수식 오류가 있는듯 싶습니다

프로필 이미지
스테디어드밴서
2019-01-21 19:40:59
300
글번호 125459
답변완료
선생님, 말씀해주신 함수식으로 그래프를 그려보았습니다. 그랬더니 확실히 오류가 있는듯 싶습니다. 어디에서 오류가 발생했는지는 잘 모르겠습니다만, 키움이나 이베스트증권의 표준오차밴드는 수치는 다를지언정 모양은 수축, 팽창이 있고 비슷합니다. [ 차트 캡쳐한 것들을 파일로 첨부합니다 ] 그런데 말씀해주신 수식으로 만든 예스트레이더의 표준오차밴드는 전혀 수축, 팽창이 없고 계속 밋밋한 모습입니다. 제가 만든 함수식과 지표는 선생님께서 말씀해주신 함수식을 그대로 복사해와서 저장을 하였습니다. 함수의 명칭만 바꿨습니다. 그 함수식과, 혹시나 해서 저장되어 있는 LRL함수식도 같이 아래에 복사해서 붙여넣기 하였습니다. 죄송하오나 어디서 잘못된 것인지 봐주시면 매우 감사하겠습니다. 건승하세요~ ----------------------- LRL함수식 Input : Value(NumericSeries), Period(NumericSimple); Var : value1(0), value2(0), AccumValue(0); AccumValue = accum(1); value1 = ma(AccumValue, Period); value2 = ma(Value, Period); LRL = (ma(Value * AccumValue, Period) - value1 * value2) / (ma(AccumValue^2, Period) - (ma(AccumValue, Period)^2)) * (AccumValue - value1) + value2; --------------------------------------------- SEBM 표준오차밴드 중심선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBM = LINREGS; END; ------------------------------------------------- SEBH 표준오차밴드 상한선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBH = LINREGS + SERR; END; ---------------------------------------- 지표식 - 종가 C, 승수 2, 기간 10 var:sh(0),sm(0),sl(0),ash(0),asm(0),asl(0); sh=SEBH(c,2,10); sl=SEBL(c,2,10); sm=SEBM(c,2,10); Plot1(sm, "이평"); Plot2(sh, "상단밴드"); Plot3(sl, "하단밴드"); ----------------------------------- 캡쳐한 차트들을 첨부파일로 첨부합니다.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-22 12:48:40

안녕하세요 예스스탁입니다. 문의하신 내용은 타사의 랭귀지로 작성한 수식을 올려주셔야 할것 같습니다. 완전히 풀어서 작성한 수식으로 올려주시면 저희 랭귀지로 변경해 드리겠습니다. 즐거운 하루되세요 > 스테디어드밴서 님이 쓴 글입니다. > 제목 : 함수식 오류가 있는듯 싶습니다 > 선생님, 말씀해주신 함수식으로 그래프를 그려보았습니다. 그랬더니 확실히 오류가 있는듯 싶습니다. 어디에서 오류가 발생했는지는 잘 모르겠습니다만, 키움이나 이베스트증권의 표준오차밴드는 수치는 다를지언정 모양은 수축, 팽창이 있고 비슷합니다. [ 차트 캡쳐한 것들을 파일로 첨부합니다 ] 그런데 말씀해주신 수식으로 만든 예스트레이더의 표준오차밴드는 전혀 수축, 팽창이 없고 계속 밋밋한 모습입니다. 제가 만든 함수식과 지표는 선생님께서 말씀해주신 함수식을 그대로 복사해와서 저장을 하였습니다. 함수의 명칭만 바꿨습니다. 그 함수식과, 혹시나 해서 저장되어 있는 LRL함수식도 같이 아래에 복사해서 붙여넣기 하였습니다. 죄송하오나 어디서 잘못된 것인지 봐주시면 매우 감사하겠습니다. 건승하세요~ ----------------------- LRL함수식 Input : Value(NumericSeries), Period(NumericSimple); Var : value1(0), value2(0), AccumValue(0); AccumValue = accum(1); value1 = ma(AccumValue, Period); value2 = ma(Value, Period); LRL = (ma(Value * AccumValue, Period) - value1 * value2) / (ma(AccumValue^2, Period) - (ma(AccumValue, Period)^2)) * (AccumValue - value1) + value2; --------------------------------------------- SEBM 표준오차밴드 중심선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBM = LINREGS; END; ------------------------------------------------- SEBH 표준오차밴드 상한선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBH = LINREGS + SERR; END; ---------------------------------------- 지표식 - 종가 C, 승수 2, 기간 10 var:sh(0),sm(0),sl(0),ash(0),asm(0),asl(0); sh=SEBH(c,2,10); sl=SEBL(c,2,10); sm=SEBM(c,2,10); Plot1(sm, "이평"); Plot2(sh, "상단밴드"); Plot3(sl, "하단밴드"); ----------------------------------- 캡쳐한 차트들을 첨부파일로 첨부합니다.