커뮤니티

부턱드립니다.

프로필 이미지
묘선낭자
2014-04-02 20:33:38
636
글번호 74080
답변완료
아래식을 예스랭귀지로 부탁드립니다. input:p(192),stoch_k(14),stoch_d(5),stoch_s(3),mv(5),kstd(1.618); var:j(1),sum(0),ip(0),n(0),f(0),qq(0),mm(0),tt(0),ii(0),jj(0), kk(0),ll(0),nn(0),mi(0),kstd_internal(0.8); var:sq(0),stdv(0),StoK(0),StoD(0); array:ai[10,10](0),b[10](0),x[10](0),sx[20](0); array:fx[500](0),sqh[500](0),sql[500](0),stdh[500](0),stdl[500](0); //-------------------stochastic------------------- value1 = lowest(L,stoch_k); value2 = highest(H,stoch_k); value3 = (Close - value1) / (value2 - value1) * 100; StoK = Average(value3, stoch_d); StoD = Average(StoK,stoch_s); //-------------------sx--------------------------- sx[1] = p + 1; nn = mv + 1; //5 + 1 = 6 for mi = 1 to nn * 2 - 2 begin //1 ~ 10 sum = 0; for n = j to j + p begin //1 ~ 193 sum = sum + Power(n,mi); end; sx[mi + 1] = sum; end; //-------------------syx-------------------------- for mi = 1 to nn begin //1 ~ 6 sum = 0; for n = j to j + p begin //1 ~ 193 if mi = 1 then sum = sum + StoK[n] else sum = sum + StoK[n] * Power(n,mi - 1); end; b[mi] = sum; end; //===================Matrix======================= for jj = 1 to nn begin //1 ~ 6 for ii = 1 to nn begin //1 ~ 6 kk = ii + jj - 1; //1 ~ 11 ai[ii,jj] = sx[kk]; end; end; //===================Gauss======================== for kk = 1 to nn - 1 begin //1 ~ 5 ll = 0; mm = 0; for ii = kk to nn begin if AbsValue(ai[ii,kk]) > mm then begin mm = AbsValue(ai[ii,kk]); ll = ii; end; end; if ll = 0 then kk = 10 else if ll <> kk then begin for jj = 1 to nn begin //1 ~ 6 tt = ai[kk,jj]; ai[kk,jj] = ai[ll,jj]; ai[ll,jj] = tt; end; tt = b[kk]; b[kk] = b[ll]; b[ll] = tt; end; for ii = kk + 1 to nn begin qq = ai[ii,kk] / ai[kk,kk]; for jj = 1 to nn begin if jj = kk then begin ai[ii,jj] = 0; end else begin ai[ii,jj] = ai[ii,jj] - qq * ai[kk,jj]; end; end; b[ii] = b[ii] - qq * b[kk]; end; end; x[nn] = b[nn] / ai[nn,nn]; for ii = nn - 1 downto 1 begin tt =0; for jj = 1 to nn - ii begin tt = tt + ai[ii,ii + jj] * x[ii + jj]; x[ii] = (1 / ai[ii,ii]) * (b[ii] - tt); end; end; //================================================ for n = j to j + p begin sum = 0; for kk = 1 to mv begin sum = sum + x[kk + 1] * Power(n,kk); end; fx[n] = x[1] + sum; end; //-------------------Std-------------------------- sq = 0; for n = j to j + p begin sq = sq + Power(StoK[n] - fx[n],2); end; sq = SquareRoot(sq / (p + 1)) * kstd; stdv = StdDev(StoK,p)[j] * kstd_internal; for n = j to j + p begin sqh[n] = fx[n] + sq; sql[n] = fx[n] - sq; stdh[n] = fx[n] + stdv; stdl[n] = fx[n] - stdv; end; plot1(fx[1],"fx",RGB(190,190,190)); plot2(sqh[1],"sqh",RGB(205,92,92)); plot3(sql[1],"sql",RGB(95,158,160)); plot4(stdh[1],"stdh",RGB(255,192,203)); plot5(stdl[1],"stdl",RGB(176,224,230)); plot6(StoK[0],"StoK",BLUE); plot7(StoD[0],"StoD",RED); Plot999(80,"80",LightGray); Plot998(50,"50",LightGray); Plot997(20,"20",LightGray); Plot996(100,"100",LightGray); Plot995(0,"0",LightGray); SetPlotWidth(2,2); SetPlotWidth(3,2); SetPlotWidth(6,2); SetPlotWidth(999,0);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-04-03 13:20:29

안녕하세요 예스스탁입니다. 예스랭귀지 문법에 따라 문법오류만 수정해서 올려드립니다. SetPlotWidth는 제공되지 않은 함수라 주석처리했습니다. input:p(192),stoch_k(14),stoch_d(5),stoch_s(3),mv(5),kstd(1.618); var:j(1),sum(0),ip(0),n(0),f(0),qq(0),mm(0),tt(0),ii(0),jj(0), kk(0),ll(0),nn(0),mi(0),kstd_internal(0.8); var:sq(0),stdv(0),StoK(0),StoD(0); array:ai[10,10](0),b[10](0),x[10](0),sx[20](0); array:fx[500](0),sqh[500](0),sql[500](0),stdh[500](0),stdl[500](0); //-------------------stochastic------------------- value1 = lowest(L,stoch_k); value2 = highest(H,stoch_k); value3 = (Close - value1) / (value2 - value1) * 100; StoK = ma(value3, stoch_d); StoD = ma(StoK,stoch_s); //-------------------sx--------------------------- sx[1] = p + 1; nn = mv + 1; //5 + 1 = 6 for mi = 1 to nn * 2 - 2 begin //1 ~ 10 sum = 0; for n = j to j + p begin //1 ~ 193 sum = sum + Power(n,mi); end; sx[mi + 1] = sum; end; //-------------------syx-------------------------- for mi = 1 to nn begin //1 ~ 6 sum = 0; for n = j to j + p begin //1 ~ 193 if mi = 1 then sum = sum + StoK[n]; else sum = sum + StoK[n] * Power(n,mi - 1); end; b[mi] = sum; end; //===================Matrix======================= for jj = 1 to nn begin //1 ~ 6 for ii = 1 to nn begin //1 ~ 6 kk = ii + jj - 1; //1 ~ 11 ai[ii,jj] = sx[kk]; end; end; //===================Gauss======================== for kk = 1 to nn - 1 begin //1 ~ 5 ll = 0; mm = 0; for ii = kk to nn begin if AbsValue(ai[ii,kk]) > mm then begin mm = AbsValue(ai[ii,kk]); ll = ii; end; end; if ll = 0 then kk = 10; else if ll <> kk then begin for jj = 1 to nn begin //1 ~ 6 tt = ai[kk,jj]; ai[kk,jj] = ai[ll,jj]; ai[ll,jj] = tt; end; tt = b[kk]; b[kk] = b[ll]; b[ll] = tt; end; for ii = kk + 1 to nn begin qq = ai[ii,kk] / ai[kk,kk]; for jj = 1 to nn begin if jj = kk then begin ai[ii,jj] = 0; end else begin ai[ii,jj] = ai[ii,jj] - qq * ai[kk,jj]; end; end; b[ii] = b[ii] - qq * b[kk]; end; end; x[nn] = b[nn] / ai[nn,nn]; for ii = nn - 1 downto 1 begin tt =0; for jj = 1 to nn - ii begin tt = tt + ai[ii,ii + jj] * x[ii + jj]; x[ii] = (1 / ai[ii,ii]) * (b[ii] - tt); end; end; //================================================ for n = j to j + p begin sum = 0; for kk = 1 to mv begin sum = sum + x[kk + 1] * Power(n,kk); end; fx[n] = x[1] + sum; end; //-------------------Std-------------------------- sq = 0; for n = j to j + p begin sq = sq + Power(StoK[n] - fx[n],2); end; sq = SquareRoot(sq / (p + 1)) * kstd; stdv = Std(StoK,p)[j] * kstd_internal; for n = j to j + p begin sqh[n] = fx[n] + sq; sql[n] = fx[n] - sq; stdh[n] = fx[n] + stdv; stdl[n] = fx[n] - stdv; end; plot1(fx[1],"fx",RGB(190,190,190)); plot2(sqh[1],"sqh",RGB(205,92,92)); plot3(sql[1],"sql",RGB(95,158,160)); plot4(stdh[1],"stdh",RGB(255,192,203)); plot5(stdl[1],"stdl",RGB(176,224,230)); plot6(StoK[0],"StoK",BLUE); plot7(StoD[0],"StoD",RED); Plot99(80,"80",GRAY); Plot98(50,"50",Gray); Plot97(20,"20",Gray); Plot96(100,"100",Gray); Plot95(0,"0",Gray); #SetPlotWidth(2,2); #SetPlotWidth(3,2); #SetPlotWidth(6,2); #SetPlotWidth(999,0); 위 식 적용하시면 무한루프가 됩니다. 적용에 유의하시기 바랍니다. 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : 부턱드립니다. > 아래식을 예스랭귀지로 부탁드립니다. input:p(192),stoch_k(14),stoch_d(5),stoch_s(3),mv(5),kstd(1.618); var:j(1),sum(0),ip(0),n(0),f(0),qq(0),mm(0),tt(0),ii(0),jj(0), kk(0),ll(0),nn(0),mi(0),kstd_internal(0.8); var:sq(0),stdv(0),StoK(0),StoD(0); array:ai[10,10](0),b[10](0),x[10](0),sx[20](0); array:fx[500](0),sqh[500](0),sql[500](0),stdh[500](0),stdl[500](0); //-------------------stochastic------------------- value1 = lowest(L,stoch_k); value2 = highest(H,stoch_k); value3 = (Close - value1) / (value2 - value1) * 100; StoK = Average(value3, stoch_d); StoD = Average(StoK,stoch_s); //-------------------sx--------------------------- sx[1] = p + 1; nn = mv + 1; //5 + 1 = 6 for mi = 1 to nn * 2 - 2 begin //1 ~ 10 sum = 0; for n = j to j + p begin //1 ~ 193 sum = sum + Power(n,mi); end; sx[mi + 1] = sum; end; //-------------------syx-------------------------- for mi = 1 to nn begin //1 ~ 6 sum = 0; for n = j to j + p begin //1 ~ 193 if mi = 1 then sum = sum + StoK[n] else sum = sum + StoK[n] * Power(n,mi - 1); end; b[mi] = sum; end; //===================Matrix======================= for jj = 1 to nn begin //1 ~ 6 for ii = 1 to nn begin //1 ~ 6 kk = ii + jj - 1; //1 ~ 11 ai[ii,jj] = sx[kk]; end; end; //===================Gauss======================== for kk = 1 to nn - 1 begin //1 ~ 5 ll = 0; mm = 0; for ii = kk to nn begin if AbsValue(ai[ii,kk]) > mm then begin mm = AbsValue(ai[ii,kk]); ll = ii; end; end; if ll = 0 then kk = 10 else if ll <> kk then begin for jj = 1 to nn begin //1 ~ 6 tt = ai[kk,jj]; ai[kk,jj] = ai[ll,jj]; ai[ll,jj] = tt; end; tt = b[kk]; b[kk] = b[ll]; b[ll] = tt; end; for ii = kk + 1 to nn begin qq = ai[ii,kk] / ai[kk,kk]; for jj = 1 to nn begin if jj = kk then begin ai[ii,jj] = 0; end else begin ai[ii,jj] = ai[ii,jj] - qq * ai[kk,jj]; end; end; b[ii] = b[ii] - qq * b[kk]; end; end; x[nn] = b[nn] / ai[nn,nn]; for ii = nn - 1 downto 1 begin tt =0; for jj = 1 to nn - ii begin tt = tt + ai[ii,ii + jj] * x[ii + jj]; x[ii] = (1 / ai[ii,ii]) * (b[ii] - tt); end; end; //================================================ for n = j to j + p begin sum = 0; for kk = 1 to mv begin sum = sum + x[kk + 1] * Power(n,kk); end; fx[n] = x[1] + sum; end; //-------------------Std-------------------------- sq = 0; for n = j to j + p begin sq = sq + Power(StoK[n] - fx[n],2); end; sq = SquareRoot(sq / (p + 1)) * kstd; stdv = StdDev(StoK,p)[j] * kstd_internal; for n = j to j + p begin sqh[n] = fx[n] + sq; sql[n] = fx[n] - sq; stdh[n] = fx[n] + stdv; stdl[n] = fx[n] - stdv; end; plot1(fx[1],"fx",RGB(190,190,190)); plot2(sqh[1],"sqh",RGB(205,92,92)); plot3(sql[1],"sql",RGB(95,158,160)); plot4(stdh[1],"stdh",RGB(255,192,203)); plot5(stdl[1],"stdl",RGB(176,224,230)); plot6(StoK[0],"StoK",BLUE); plot7(StoD[0],"StoD",RED); Plot999(80,"80",LightGray); Plot998(50,"50",LightGray); Plot997(20,"20",LightGray); Plot996(100,"100",LightGray); Plot995(0,"0",LightGray); SetPlotWidth(2,2); SetPlotWidth(3,2); SetPlotWidth(6,2); SetPlotWidth(999,0);