커뮤니티
문의드립니다
2015-05-11 07:39:17
175
글번호 85871
안녕하세요
Wma(가중이평)를 적용한 keltner channel을
1. 1분차트에 5분봉과 15분봉의 keltner channel을 표시하는식
2. 60분차트에 240분봉의 keltner channel을 표시하는식
부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2015-05-11 13:25:39
안녕하세요
예스스탁입니다.
1.
Input : Ntime1(5),ntime2(15),P(10),atrs(0.8);
Var : cnt(0),TF1(0),TF2(0);
var : Sum1(0),CSum1(0),wma1(0),Tsum1(0),TH1(0),TL1(0),ATRV1(0),upper1(0),lower1(0);
var : Sum2(0),CSum2(0),wma2(0),Tsum2(0),TH2(0),TL2(0),ATRV2(0),upper2(0),lower2(0);
Array : C1[100](0),H1[100](0),L1[100](0),TR1[100](0);
Array : C2[100](0),H2[100](0),L2[100](0),TR2[100](0);
TF1 = TimeToMinutes(stime)%Ntime1;
if dayindex == 0 or (TF1 < TF1[1] and stime > stime[1]) or stime == 151500 Then{
H1[0] = H;
L1[0] = L;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
TR1[cnt] = TR1[cnt-1][1];
}
}
C1[0] = C;
if H > H1[0] Then
H1[0] = H;
if L < L1[0] Then
L1[0] = L;
if C1[1] > 0 Then{
If C1[1] > H1[0] then
TH1 = C1[1];
else
TH1 = H1[0];
If C1[1] < L1[0] then
TL1 = C1[1];
else
TL1 = L1[0];
TR1[0] = TH1-TL1;
}
if TR1[P] > 0 Then{
Sum1 = 0;
CSum1 = 0;
Tsum1 = 0;
For cnt = 0 To P - 1 {
Sum1 = Sum1 + C1[cnt] * (P - cnt);
CSum1 = CSum1 + P - cnt;
Tsum1 = Tsum1+ TR1[cnt];
}
wma1 = Sum1 / CSum1;
ATRV1 = Tsum1/P;
upper1 = wma1+ATRV1*atrs;
lower1 = wma1-ATRV1*atrs;
}
TF2 = TimeToMinutes(stime)%ntime2;
if dayindex == 0 or (TF2 < TF2[1] and stime > stime[1]) Then{
H2[0] = H;
L2[0] = L;
for cnt = 1 to 99{
C2[cnt] = C2[cnt-1][1];
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
TR2[cnt] = TR2[cnt-1][1];
}
}
C2[0] = C;
if H > H2[0] Then
H2[0] = H;
if L < L2[0] Then
L2[0] = L;
if C2[1] > 0 Then{
If C2[1] > H2[0] then
TH2 = C2[1];
else
TH2 = H2[0];
If C2[1] < L2[0] then
TL2 = C2[1];
else
TL2 = L2[0];
TR2[0] = TH2-TL2;
}
if TR2[P] > 0 Then{
Sum2 = 0;
CSum2 = 0;
Tsum2 = 0;
For cnt = 0 To P - 1 {
Sum2 = Sum2 + C2[cnt] * (P - cnt);
CSum2 = CSum2 + P - cnt;
Tsum2 = Tsum2+ TR2[cnt];
}
wma2 = Sum2 / CSum2;
ATRV2 = Tsum2/P;
upper2 = wma2+ATRV2*atrs;
lower2 = wma2-ATRV2*atrs;
}
plot1(upper1);
plot2(wma1);
plot3(lower1);
plot4(upper2);
plot5(wma2);
plot6(lower2);
2.
Input : Ntime1(240),P(10),atrs(0.8);
Var : cnt(0),TF1(0),TT(0);
var : Sum1(0),CSum1(0),wma1(0),Tsum1(0),TH1(0),TL1(0),ATRV1(0),upper1(0),lower1(0);
Array : C1[100](0),H1[100](0),L1[100](0),TR1[100](0);
if date != date[1] Then
TT = TimeToMinutes(stime);
TF1 = (TimeToMinutes(stime)-TT)%Ntime1;
if dayindex == 0 or (TF1 < TF1[1] and stime > stime[1]) Then{
H1[0] = H;
L1[0] = L;
for cnt = 1 to 99{
C1[cnt] = C1[cnt-1][1];
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
TR1[cnt] = TR1[cnt-1][1];
}
}
C1[0] = C;
if H > H1[0] Then
H1[0] = H;
if L < L1[0] Then
L1[0] = L;
if C1[1] > 0 Then{
If C1[1] > H1[0] then
TH1 = C1[1];
else
TH1 = H1[0];
If C1[1] < L1[0] then
TL1 = C1[1];
else
TL1 = L1[0];
TR1[0] = TH1-TL1;
}
if TR1[P] > 0 Then{
Sum1 = 0;
CSum1 = 0;
Tsum1 = 0;
For cnt = 0 To P - 1 {
Sum1 = Sum1 + C1[cnt] * (P - cnt);
CSum1 = CSum1 + P - cnt;
Tsum1 = Tsum1+ TR1[cnt];
}
wma1 = Sum1 / CSum1;
ATRV1 = Tsum1/P;
upper1 = wma1+ATRV1*atrs;
lower1 = wma1-ATRV1*atrs;
}
plot1(upper1);
plot2(wma1);
plot3(lower1);
즐거운 하루되세요
> 뉴스타트 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 안녕하세요
Wma(가중이평)를 적용한 keltner channel을
1. 1분차트에 5분봉과 15분봉의 keltner channel을 표시하는식
2. 60분차트에 240분봉의 keltner channel을 표시하는식
부탁드립니다.