커뮤니티
문의드립니다.
2015-01-28 16:32:27
127
글번호 82741
안녕하세요. 늘 감사드립니다.
1분봉에 5분봉의 아래 지표값이 plot 되도록 꼭 좀부탁드립니다.
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0),rawVBE_ma(0);
Array:len[2](0),VBE_up[2](0),VBE_dn[2](0),VBE_ma[2](0),
up_chg[2](0),dn_chg[2](0),ma_chg[2](0),up_cor[2](0),dn_cor[2](0),ma_cor[2](0),
fcstVBE_up[2](0),fcstVBE_dn[2](0),fcstVBE_ma[2](0);
len[0] = 5;
len[1] = 2;
chng_rt = (C/C[1]-1); //가격 변동률
ma_val = ma(chng_rt,len[0]); //가격변동률의 평균
std_val = Std(chng_rt,len[0]); //가격변동률의 표준편차
dn_rng = ma_val - (std_val * 2);
up_rng = ma_val + (std_val * 2);
rawVBE_up = C * (1 + up_rng); //원시VBE
rawVBE_dn = C * (1 + dn_rng);
rawVBE_ma = C * (1 + ma_val);
for j = 0 to 1 {
VBE_up[j] = wma(rawVBE_up,len[j]); //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,len[j]);
VBE_ma[j] = wma(rawVBE_ma,len[j]);
if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; //VBE의 변동률
if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1];
if VBE_ma[j][1] > 0 then ma_chg[j] = (VBE_ma[j]-VBE_ma[j][1])/VBE_ma[j][1];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
fcstVBE_ma[0] = VBE_ma[0];
for j = 1 to 1 {
up_cor[j] = Correlation(up_chg[0], up_chg[j],63); //21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도
dn_cor[j] = Correlation(dn_chg[0], dn_chg[j],63);
ma_cor[j] = Correlation(ma_chg[0], ma_chg[j],63);
fcstVBE_up[j] = fcstVBE_up[j-1] * (1+(up_chg[j]*up_cor[j])); //이전값에 상관도와 변동률을 곱해서 계산
fcstVBE_dn[j] = fcstVBE_dn[j-1] * (1+(dn_chg[j]*dn_cor[j]));
fcstVBE_ma[j] = fcstVBE_ma[j-1] * (1+(ma_chg[j]*ma_cor[j]));
}
plot1(fcstVBE_up[0],"상-1"); //1봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-1"); //1봉 뒤로 이동
plot3(fcstVBE_ma[0],"중간-1"); //1봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 1봉만 추가로 출력
plot4(fcstVBE_up[1],"상0");
plot5(fcstVBE_dn[1],"하0");
plot6(fcstVBE_ma[1],"중간0");
}
답변 1
예스스탁 예스스탁 답변
2015-01-29 09:57:19
안녕하세요
예스스탁입니다.
올려주신식 참조데이터를 이용하셔야 합니다.
주종목 자체에서 계산하기에는 식작성해 보는데 너무 많은 시간이 걸려
작성해 드리기 어렵습니다.
참조데이터(data2)로 5분봉 추가하시고 아래식 적용하시면 됩니다.
Var : chng_rt(0,data2),j(0,data2),ma_val(0,data2),std_val(0,data2);
var : dn_rng(0,data2),up_rng(0,data2),rawVBE_up(0,data2),rawVBE_dn(0,data2),rawVBE_ma(0,data2);
Array:len[2](0,data2),VBE_up[2](0,data2),VBE_dn[2](0,data2),VBE_ma[2](0,data2),
up_chg[2](0,data2),dn_chg[2](0,data2),ma_chg[2](0,data2),up_cor[2](0,data2),
dn_cor[2](0,data2),ma_cor[2](0,data2),fcstVBE_up[2](0,data2),
fcstVBE_dn[2](0,data2),fcstVBE_ma[2](0,data2),
Wmav1[2](0,data2),Wmav2[2](0,data2),Wmav3[2](0,data2),
cor1[2](0,data2),cor2[2](0,data2),cor3[2](0,data2);
len[0] = 5;
len[1] = 2;
chng_rt = data2((C/C[1]-1)); //가격 변동률
ma_val = data2(ma(chng_rt,len[0])); //가격변동률의 평균
std_val = data2(Std(chng_rt,len[0])); //가격변동률의 표준편차
dn_rng = ma_val - (std_val * 2);
up_rng = ma_val + (std_val * 2);
rawVBE_up = data2(C * (1 + up_rng)); //원시VBE
rawVBE_dn = data2(C * (1 + dn_rng));
rawVBE_ma = data2(C * (1 + ma_val));
Wmav1[0] = data2(wma(rawVBE_up,len[0]));
Wmav1[1] = data2(wma(rawVBE_up,len[1]));
Wmav2[0] = data2(wma(rawVBE_dn,len[0]));
Wmav2[1] = data2(wma(rawVBE_dn,len[1]));
Wmav3[0] = data2(wma(rawVBE_ma,len[0]));
Wmav3[1] = data2(wma(rawVBE_ma,len[1]));
for j = 0 to 1 {
VBE_up[j] = wmav1[j]; //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wmav2[j];
VBE_ma[j] = wmav3[j];
if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; //VBE의 변동률
if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1];
if VBE_ma[j][1] > 0 then ma_chg[j] = (VBE_ma[j]-VBE_ma[j][1])/VBE_ma[j][1];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
fcstVBE_ma[0] = VBE_ma[0];
cor1[0] = data2(Correlation(up_chg[0], up_chg[0],63));
cor1[1] = data2(Correlation(up_chg[0], up_chg[0],63));
cor2[0] = data2(Correlation(dn_chg[0], dn_chg[0],63));
cor2[1] = data2(Correlation(dn_chg[0], dn_chg[0],63));
cor3[0] = data2(Correlation(ma_chg[0], ma_chg[0],63));
cor3[1] = data2(Correlation(ma_chg[0], ma_chg[0],63));
for j = 1 to 1 {
up_cor[j] = Cor1[j]; //21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도
dn_cor[j] = Cor2[j];
ma_cor[j] = Cor3[j];
fcstVBE_up[j] = fcstVBE_up[j-1] * (1+(up_chg[j]*up_cor[j])); //이전값에 상관도와 변동률을 곱해서 계산
fcstVBE_dn[j] = fcstVBE_dn[j-1] * (1+(dn_chg[j]*dn_cor[j]));
fcstVBE_ma[j] = fcstVBE_ma[j-1] * (1+(ma_chg[j]*ma_cor[j]));
}
plot1(fcstVBE_up[0],"상-1"); //1봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-1"); //1봉 뒤로 이동
plot3(fcstVBE_ma[0],"중간-1"); //1봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 1봉만 추가로 출력
plot4(fcstVBE_up[1],"상0");
plot5(fcstVBE_dn[1],"하0");
plot6(fcstVBE_ma[1],"중간0");
}
즐거운 하루되세요
> 뉴스타트 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요. 늘 감사드립니다.
1분봉에 5분봉의 아래 지표값이 plot 되도록 꼭 좀부탁드립니다.
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0),rawVBE_ma(0);
Array:len[2](0),VBE_up[2](0),VBE_dn[2](0),VBE_ma[2](0),
up_chg[2](0),dn_chg[2](0),ma_chg[2](0),up_cor[2](0),dn_cor[2](0),ma_cor[2](0),
fcstVBE_up[2](0),fcstVBE_dn[2](0),fcstVBE_ma[2](0);
len[0] = 5;
len[1] = 2;
chng_rt = (C/C[1]-1); //가격 변동률
ma_val = ma(chng_rt,len[0]); //가격변동률의 평균
std_val = Std(chng_rt,len[0]); //가격변동률의 표준편차
dn_rng = ma_val - (std_val * 2);
up_rng = ma_val + (std_val * 2);
rawVBE_up = C * (1 + up_rng); //원시VBE
rawVBE_dn = C * (1 + dn_rng);
rawVBE_ma = C * (1 + ma_val);
for j = 0 to 1 {
VBE_up[j] = wma(rawVBE_up,len[j]); //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,len[j]);
VBE_ma[j] = wma(rawVBE_ma,len[j]);
if VBE_up[j][1] > 0 then up_chg[j] = (VBE_up[j]-VBE_up[j][1])/VBE_up[j][1]; //VBE의 변동률
if VBE_dn[j][1] > 0 then dn_chg[j] = (VBE_dn[j]-VBE_dn[j][1])/VBE_dn[j][1];
if VBE_ma[j][1] > 0 then ma_chg[j] = (VBE_ma[j]-VBE_ma[j][1])/VBE_ma[j][1];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
fcstVBE_ma[0] = VBE_ma[0];
for j = 1 to 1 {
up_cor[j] = Correlation(up_chg[0], up_chg[j],63); //21일 VBE변동률과 17,13,9,5,2 변동률간의 상관도
dn_cor[j] = Correlation(dn_chg[0], dn_chg[j],63);
ma_cor[j] = Correlation(ma_chg[0], ma_chg[j],63);
fcstVBE_up[j] = fcstVBE_up[j-1] * (1+(up_chg[j]*up_cor[j])); //이전값에 상관도와 변동률을 곱해서 계산
fcstVBE_dn[j] = fcstVBE_dn[j-1] * (1+(dn_chg[j]*dn_cor[j]));
fcstVBE_ma[j] = fcstVBE_ma[j-1] * (1+(ma_chg[j]*ma_cor[j]));
}
plot1(fcstVBE_up[0],"상-1"); //1봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-1"); //1봉 뒤로 이동
plot3(fcstVBE_ma[0],"중간-1"); //1봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 1봉만 추가로 출력
plot4(fcstVBE_up[1],"상0");
plot5(fcstVBE_dn[1],"하0");
plot6(fcstVBE_ma[1],"중간0");
}
다음글
이전글