커뮤니티
부탁드립니다
2014-09-29 03:56:10
155
글번호 78889
수고많으세요
예스글로벌에 적용합니다.
1. 1시간마다 갱신되는 60분봉의 시가를 1분봉과 5분봉에 각각 해당시간동안 수평으로 표시하는식
2. 5분봉의 cci(60),ma(cci(60),15),cci(30)을 1분봉에 동시에 표시하는식
3. 아래지표에 중간선을 추가한후에,
15분,5분지표값을 각각 1분봉에 표시하는식.
240분 지표값을 60분봉에 표시하는식.
부탁드립니다.
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0);
Array:len[6](0),VBE_up[6](0),VBE_dn[6](0),
up_chg[6](0),dn_chg[6](0),up_cor[6](0),dn_cor[6](0),
fcstVBE_up[6](0),fcstVBE_dn[6](0);
len[0] = 21;
len[1] = 17;
len[2] = 13;
len[3] = 9;
len[4] = 5;
len[5] = 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);
for j = 0 to 5 {
VBE_up[j] = wma(rawVBE_up,len[j]); //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,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];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
for j = 1 to 5 {
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);
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]));
}
plot1(fcstVBE_up[0],"상-5"); //5봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-5"); //5봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 5봉만 추가로 출력
plot3(fcstVBE_up[5],"상0",RED);
plot4(fcstVBE_up[4],"상-1",RED); //1봉 뒤로 이동
plot5(fcstVBE_up[3],"상-2",RED); //2봉 뒤로 이동
plot6(fcstVBE_up[2],"상-3",RED); //3봉 뒤로 이동
plot7(fcstVBE_up[1],"상-4",RED); //4봉 뒤로 이동
plot8(fcstVBE_dn[5],"하0",BLUE);
plot9(fcstVBE_dn[4],"하-1",BLUE); //1봉 뒤로 이동
plot10(fcstVBE_dn[3],"하-2",BLUE); //2봉 뒤로 이동
plot11(fcstVBE_dn[2],"하-3",BLUE); //3봉 뒤로 이동
plot12(fcstVBE_dn[1],"하-4",BLUE); //4봉 뒤로 이동
}
답변 1
예스스탁 예스스탁 답변
2014-09-29 15:57:28
안녕하세요
예스스탁입니다.
1
var1 = TimeToMinutes(stime)%60;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then
value1 = O;
plot1(value1);
2.
input : Atime(5),P(60),P1(15),PP(30);
Var : Sum(0), Counter(0), MD(0), Avgvalue(0);
var : cnt(0),count(0),sum1(0);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0),sig(0);
var : sum2(0),avgvalue2(0),MD2(0),CCI2(0);
Array : CC[100](0),LL[100](0),HH[100](0),CCIv[100](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 < var1[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
HH[0] = H;
LL[0] = L;
CC[1] = C[1];
for cnt = 1 to 99{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CCIv[cnt] = CCiv[cnt-1][1];
if cnt >= 2 Then
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
If HH[P] > 0 Then {
sum1 = 0;
for count = 0 to P-1{
sum1 = sum1+(CC[count]+HH[count]+LL[count]);
}
Avgvalue = sum1/P;
MD = 0;
For counter = 0 To P - 1 {
MD = MD + Abs(HH[counter] + LL[counter] + CC[counter] - Avgvalue);
}
MD = MD / P;
If MD == 0 Then
CCIv[0] = 0;
Else
CCIv[0] = (HH[0] + LL[0] + CC[0] - Avgvalue) / (0.015 * MD);
plot1(CCIV[0],"CCI(60)");
}
If CCiv[P1] != 0 Then {
sum = 0;
For cnt = 0 To P1 - 1 {
sum = sum + CCiv[cnt];
}
sig = sum / P1;
plot2(sig,"ma(CCI(60),15)");
}
If HH[PP] > 0 Then {
sum2 = 0;
for count = 0 to PP-1{
sum2 = sum2+(CC[count]+HH[count]+LL[count]);
}
Avgvalue2 = sum2/PP;
MD2 = 0;
For counter = 0 To PP - 1 {
MD2 = MD2 + Abs(HH[counter] + LL[counter] + CC[counter] - Avgvalue2);
}
MD2 = MD2 / PP;
If MD == 0 Then
CCI2 = 0;
Else
CCI2 = (HH[0] + LL[0] + CC[0] - Avgvalue2) / (0.015 * MD2);
plot3(CCI2,"CCI(30)");
}
3.
3번과 같은 경우 식작성해 드리는데 많은 시간이 소모됩니다.
식상의 Correlation이나 std등 많은 함수를 을 타주기로 변경해야 하는데
수식을 답변을 드릴때 식하나에 너무 많은 시간이 소모되는 내용은
저희쪽에서 답변을 드리기 어렵습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 뉴스타트 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 수고많으세요
예스글로벌에 적용합니다.
1. 1시간마다 갱신되는 60분봉의 시가를 1분봉과 5분봉에 각각 해당시간동안 수평으로 표시하는식
2. 5분봉의 cci(60),ma(cci(60),15),cci(30)을 1분봉에 동시에 표시하는식
3. 아래지표에 중간선을 추가한후에,
15분,5분지표값을 각각 1분봉에 표시하는식.
240분 지표값을 60분봉에 표시하는식.
부탁드립니다.
Var:chng_rt(0),j(0),ma_val(0),std_val(0),dn_rng(0),up_rng(0),rawVBE_up(0),rawVBE_dn(0);
Array:len[6](0),VBE_up[6](0),VBE_dn[6](0),
up_chg[6](0),dn_chg[6](0),up_cor[6](0),dn_cor[6](0),
fcstVBE_up[6](0),fcstVBE_dn[6](0);
len[0] = 21;
len[1] = 17;
len[2] = 13;
len[3] = 9;
len[4] = 5;
len[5] = 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);
for j = 0 to 5 {
VBE_up[j] = wma(rawVBE_up,len[j]); //원시VBE를 가중이평으로 평활화
VBE_dn[j] = wma(rawVBE_dn,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];
}
fcstVBE_up[0] = VBE_up[0];
fcstVBE_dn[0] = VBE_dn[0];
for j = 1 to 5 {
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);
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]));
}
plot1(fcstVBE_up[0],"상-5"); //5봉 뒤로 이동
plot2(fcstVBE_dn[0],"하-5"); //5봉 뒤로 이동
if LastBarOnChart then { //마지막봉에서 아래 5봉만 추가로 출력
plot3(fcstVBE_up[5],"상0",RED);
plot4(fcstVBE_up[4],"상-1",RED); //1봉 뒤로 이동
plot5(fcstVBE_up[3],"상-2",RED); //2봉 뒤로 이동
plot6(fcstVBE_up[2],"상-3",RED); //3봉 뒤로 이동
plot7(fcstVBE_up[1],"상-4",RED); //4봉 뒤로 이동
plot8(fcstVBE_dn[5],"하0",BLUE);
plot9(fcstVBE_dn[4],"하-1",BLUE); //1봉 뒤로 이동
plot10(fcstVBE_dn[3],"하-2",BLUE); //2봉 뒤로 이동
plot11(fcstVBE_dn[2],"하-3",BLUE); //3봉 뒤로 이동
plot12(fcstVBE_dn[1],"하-4",BLUE); //4봉 뒤로 이동
}