커뮤니티

수식 요청 수정해주세요

프로필 이미지
회원
2007-06-18 06:02:27
999
글번호 12778
답변완료
안녕 하십니까 3일동안 잠도 안자구 수식끝마치려고 했으나 지식이 모자라 끙끙 앓았습니다 아래 수식 작성하다가 미완성 했습니다 주문식 시스템식 짜려구 애썼는데 저희가 해결이 어려워 부탁드립니다 아래 수식이 구현하는 두개의선이 교차돌파하면 매수또는매도 청산도 포함해서 만들어 주십시요 수정부탁드립니다 답변은 yang 12133 @ empal.com 으로 부탁합니다 하시는일 번창하길빕니다 감사합니다 [내용] Input:mm(30),n(14); Var:j(0),k(0),계산주기(0),X(0),sumXY(0),sumX(0),sumY(0),sumX²(0), MinLRS(0),MinB(0),MinLRL(0); Array:MinClose[100](0); if mm >= BarInterval() then { 계산주기 = mm/BarInterval(); } k = k + 1; if DayIndex()%계산주기 == 0 then { for j = 98 downto 0 { MinClose[j+1] = MinClose[j]; } X = X + 1; k = 0; } MinClose[0] = C; #==========================================================================# # 선형회귀방정식 # #==========================================================================# # n∑xy - (∑x)(∑y) # # 기울기 a = --------------------- # # n∑x²- (∑x)² # # # # = (n*sum(xy) - sum(x) * sum(y)) / (n*sum(x^2)-sum(x)^2) # # # # (∑y)(∑x²)-(∑x)(∑xy) # # 절편 b = --------------------------- # # n∑x²- (∑x)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# sumXY = 0; sumX = 0; sumY = 0; sumX² = 0; For j = 0 To n-1 { sumXY = sumXY + (X-j)*MinClose[j]; sumX = sumX + (X-j); sumY = sumY + MinClose[j]; sumX²= sumX²+ (X-j)^2; } MinLRS = (n*sumXY - sumX*sumY)/(n*sumX²- sumX^2); //선형회귀선 기울기 LRS MinB = (sumY*sumX²-sumX*sumXY)/(n*sumX²- sumX^2); //선형회귀선 절편 B MinLRL = MinLRS * X + MinB; Plot1(MinLRL); if plot1(minlrl) > plot2(minlrl[k+1]) then buy(); end if Plot2(MinLRL[k+1]); //현재가 미반영 LRL if plot1(minlrl) < plot2(minlrl[k+1]) then sell(); end if
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2007-06-18 15:09:43

> CJ_yang1130 님이 쓴 글입니다. > 제목 : 수식 요청 수정해주세요 > 안녕 하십니까 3일동안 잠도 안자구 수식끝마치려고 했으나 지식이 모자라 끙끙 앓았습니다 아래 수식 작성하다가 미완성 했습니다 주문식 시스템식 짜려구 애썼는데 저희가 해결이 어려워 부탁드립니다 아래 수식이 구현하는 두개의선이 교차돌파하면 매수또는매도 청산도 포함해서 만들어 주십시요 수정부탁드립니다 답변은 yang 12133 @ empal.com 으로 부탁합니다 하시는일 번창하길빕니다 감사합니다 [내용] Input:mm(30),n(14); Var:j(0),k(0),계산주기(0),X(0),sumXY(0),sumX(0),sumY(0),sumX²(0), MinLRS(0),MinB(0),MinLRL(0); Array:MinClose[100](0); if mm >= BarInterval() then { 계산주기 = mm/BarInterval(); } k = k + 1; if DayIndex()%계산주기 == 0 then { for j = 98 downto 0 { MinClose[j+1] = MinClose[j]; } X = X + 1; k = 0; } MinClose[0] = C; #==========================================================================# # 선형회귀방정식 # #==========================================================================# # n∑xy - (∑x)(∑y) # # 기울기 a = --------------------- # # n∑x²- (∑x)² # # # # = (n*sum(xy) - sum(x) * sum(y)) / (n*sum(x^2)-sum(x)^2) # # # # (∑y)(∑x²)-(∑x)(∑xy) # # 절편 b = --------------------------- # # n∑x²- (∑x)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# sumXY = 0; sumX = 0; sumY = 0; sumX² = 0; For j = 0 To n-1 { sumXY = sumXY + (X-j)*MinClose[j]; sumX = sumX + (X-j); sumY = sumY + MinClose[j]; sumX²= sumX²+ (X-j)^2; } MinLRS = (n*sumXY - sumX*sumY)/(n*sumX²- sumX^2); //선형회귀선 기울기 LRS MinB = (sumY*sumX²-sumX*sumXY)/(n*sumX²- sumX^2); //선형회귀선 절편 B MinLRL = MinLRS * X + MinB; Plot1(MinLRL); if plot1(minlrl) > plot2(minlrl[k+1]) then buy(); end if Plot2(MinLRL[k+1]); //현재가 미반영 LRL if plot1(minlrl) < plot2(minlrl[k+1]) then sell(); end if