예스스탁
예스스탁 답변
2025-03-10 10:10:36
안녕하세요
예스스탁입니다.
input : ntime(5),MALEN(10),CONST(0.8),ATRs(0);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0);
var : sum(0),csum(0),mav(0),sumTR(0),ATRV(0);
VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0);
Array : CC[100](0),TH[100](0),TL[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
for cnt = 99 downto 1
{
TH[cnt] = TH[cnt-1];
TL[cnt] = TL[cnt-1];
CC[cnt] = CC[cnt-1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC[0] = c;
if CC[1] > 0 then
{
TH[0] = max(CC[1],HH);
TL[0] = Min(CC[1],LL);
}
if CC[MALEN-1] > 0 then
{
sum = 0;
csum = 0;
for cnt = 0 to MALEN-1
{
Sum = Sum + CC[cnt] * (MALEN - cnt);
CSum = CSum + MALEN - cnt;
}
mav = sum/CSum;
}
if TH[MALEN-1] > 0 and TL[MALEN-1] > 0 then
{
sumTR = 0;
for cnt = 0 to MALEN-1
{
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/MALEN;
CENTLINE = mav+ATRV*ATRS;
UPPER=CENTLINE+(ATRV*CONST);
LOWER=CENTLINE-(ATRV*CONST);
PLOT1(CENTLINE,"CENTLINE");
PLOT2(UPPER,"UPPER");
PLOT3(LOWER,"LOWER");
}
}
즐거운 하루되세요
> 해암 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 틱차트에 분봉차트의 keltner channel 지표(단순이평기준이 아닌 가중평균선 기준으로)를 나타내고자 합니다.
수식의 변수값과 분봉의 기간값은 수정가능하게 부탁드립니다. 수고하세요!!!
항상 감사합니다.