커뮤니티
수식 문의
2013-06-05 13:50:17
289
글번호 63990
please check attaschment.
always thank you.
답변 3
예스스탁 예스스탁 답변
2013-06-05 13:49:05
안녕하세요
예스스탁입니다.
input : N(3);
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]));
}
var1 = fcstVBE_up[5];#상0
var2 = fcstVBE_dn[5];#하0
#1
if var1 < var1[1] and H > var1 Then
sell();
#2
if var1 < var1[1] and var1[1] > var1[2] and
countif(var1 > var1[1] and H > var1,N) >= 1 Then
sell();
#3
if var2 > var2[1] and var2 > L Then
buy();
#4
if var2 > var2[1] and var2[1] < var2[2] and
countif(var2 < var2[1] and var2 > L,N) >= 1 Then
buy();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
>
please check attaschment.
always thank you.
흑수돌
2013-06-05 14:16:22
매수조건이 완성되어 매수신호가 발생되었는데도
이전에 완성된 매도조건에 의해 매도신호가 다시 발생되고 있습니다.
매도(수) 신호가 발생되면
이전에 발생된 매수(도)조건에 의해 반대 신호가 발생되지
않도록 부탁드립니다.
감사합니다.
============================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의
> 안녕하세요
예스스탁입니다.
input : N(3);
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]));
}
var1 = fcstVBE_up[5];#상0
var2 = fcstVBE_dn[5];#하0
#1
if var1 < var1[1] and H > var1 Then
sell();
#2
if var1 < var1[1] and var1[1] > var1[2] and
countif(var1 > var1[1] and H > var1,N) >= 1 Then
sell();
#3
if var2 > var2[1] and var2 > L Then
buy();
#4
if var2 > var2[1] and var2[1] < var2[2] and
countif(var2 < var2[1] and var2 > L,N) >= 1 Then
buy();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
>
please check attaschment.
always thank you.
예스스탁 예스스탁 답변
2013-06-10 10:04:59
안녕하세요
예스스탁입니다.
작성한 식 중 #1과 #3은 현재봉에서 모두 만족하는 내용이므로
이전 만족여부와 관계가 없고
#2 #4는 현재봉에서 조건3이 만족하고 단지 이전 N봉안에
조건1과 조건2가 만족해 있으면 신호가 발생합니다.
무포지션 일때는 청산 후 N봉 이후,
포지션 진입행중일때는 진입 후 N봉 이후에 조건만족하면 신호발생하게 처리했습니다.
input : N(3);
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]));
}
var1 = fcstVBE_up[5];#상0
var2 = fcstVBE_dn[5];#하0
#1
if var1 < var1[1] and H > var1 Then
sell();
#2
if var1 < var1[1] and var1[1] > var1[2] and
countif(var1 > var1[1] and H > var1,N) >= 1 Then{
if MarketPosition == 0 and BarsSinceExit(1) >= N Then
sell();
if MarketPosition == 1 and BarsSinceEntry >= N Then
sell();
}
#3
if var2 > var2[1] and var2 > L Then
buy();
#4
if var2 > var2[1] and var2[1] < var2[2] and
countif(var2 < var2[1] and var2 > L,N) >= 1 Then{
if MarketPosition == 0 and BarsSinceExit(1) >= N Then
buy();
if MarketPosition == -1 and BarsSinceEntry >= N Then
Buy();
}
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 오류 수정 부탁드립니다.
>
매수조건이 완성되어 매수신호가 발생되었는데도
이전에 완성된 매도조건에 의해 매도신호가 다시 발생되고 있습니다.
매도(수) 신호가 발생되면
이전에 발생된 매수(도)조건에 의해 반대 신호가 발생되지
않도록 부탁드립니다.
감사합니다.
============================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의
> 안녕하세요
예스스탁입니다.
input : N(3);
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]));
}
var1 = fcstVBE_up[5];#상0
var2 = fcstVBE_dn[5];#하0
#1
if var1 < var1[1] and H > var1 Then
sell();
#2
if var1 < var1[1] and var1[1] > var1[2] and
countif(var1 > var1[1] and H > var1,N) >= 1 Then
sell();
#3
if var2 > var2[1] and var2 > L Then
buy();
#4
if var2 > var2[1] and var2[1] < var2[2] and
countif(var2 < var2[1] and var2 > L,N) >= 1 Then
buy();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
>
please check attaschment.
always thank you.
다음글
이전글