커뮤니티
부턱드립니다.
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);
다음글
이전글