예스스탁
예스스탁 답변
2022-09-22 11:25:48
안녕하세요
예스스탁입니다.
input : 타주기분(15),LENGTH(21),SDEG(3);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),idx(0),sum11(0),sum22(0);
var : sum1(0),sum2(0),sum3(0),sum4(0),mav1(0),mav2(0),mav3(0),mav4(0);
var : calcB(0),calcA(0),LINREGS(0),SERR(0);
Array : C1[100](0),AccumValue[100](0),LRLv[100](0),STDERR[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%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx+1;
for cnt = 99 downto 1
{
C1[cnt] = C1[cnt-1];
AccumValue[cnt] = AccumValue[cnt-1];
LRLV[cnt] = LRLV[cnt-1];
STDERR[cnt] = STDERR[cnt-1];
}
AccumValue[0] = AccumValue[0]+1;
}
C1[0] = C;
if C1[LENGTH] > 0 Then
{
sum1 = 0;
sum11 = 0;
sum2 = 0;
sum22 = 0;
sum3 = 0;
sum4 = 0;
for cnt = 0 to LENGTH-1
{
sum1 = sum1 + AccumValue[cnt];
sum11 = sum11 + Square(AccumValue[cnt]);
sum2 = sum2 + C1[cnt];
sum22 = sum22 + C1[cnt]^2;
sum3 = sum3 + C1[cnt]*AccumValue[cnt];
sum4 = sum4 + AccumValue[cnt]^2;
}
mav1 = sum1/LENGTH;
mav2 = sum2/LENGTH;
mav3 = sum3/LENGTH;
mav4 = sum4/LENGTH;
LRLv[0] = (mav3 - mav1 * mav2) /(mav4 - (mav1^2)) * (AccumValue[0] - mav1) + mav2;
Value11 = sum3 - (Length * mav1 * mav2);
Value12 = sum11 - (Length * Square(mav1));
calcB = Value11/Value12;
calcA = mav2 - (calcB * mav1);
VALUE1 = (sum22) - ((CALCA * sum2)) - ((CALCB * sum3));
VALUE2 = LENGTH - 2;
VALUE3 = (VALUE1 / VALUE2);
IF VALUE3 > 0 THEN
STDERR[0] = SQRT(VALUE1 / VALUE2);
ELSE
STDERR[0] = STDERR[1];
}
if LRLv[SDEG-1] > 0 Then
{
var1 = 0;
Var2 = 0;
for cnt = 0 to SDEG-1
{
var1 = var1+LRLv[cnt];
var2 = var2+STDERR[cnt];
}
LINREGS = var1/SDEG;
SERR = 2 * var2/SDEG;
PLOT1(LINREGS, "LINREGS");
PLOT2(LINREGS + SERR, "+STDERRS");
PLOT3(LINREGS - SERR, "-STDERRS");
}
}
즐거운 하루되세요
> jdavid 님이 쓴 글입니다.
> 제목 : 타주기 지표
> 감사합니다.
==
INPUTS: LENGTH(21), SDEG(3);
VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0);
LINREGY = LRL(CLOSE, LENGTH);
X = INDEX;
Value11 = AccumN(X * Close, Length) - (Length * Average(X, Length) *Average(Close, Length));
Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length)));
calcB = Value11/Value12;
calcA = ma(Close, Length) - (calcB * ma(X, Length));
IF INDEX > LENGTH THEN BEGIN
VALUE1 = (ACCUMN(CLOSE^2, LENGTH)) - ((CALCA * ACCUMN(CLOSE, LENGTH))) -
((CALCB * ACCUMN(X * CLOSE, LENGTH)));
VALUE2 = LENGTH - 2;
VALUE3 = (VALUE1 / VALUE2);
IF VALUE3 > 0 THEN
STDERR = SQRT(VALUE1 / VALUE2);
ELSE
STDERR = STDERR[1];
LINREGS = MA(LINREGY, SDEG);
SERR = 2 * MA(STDERR, SDEG);
PLOT1(LINREGS, "LINREGS");
PLOT2(LINREGS + SERR, "+STDERRS");
PLOT3(LINREGS - SERR, "-STDERRS");
END;
==
1. 위 지표를 타주기 분봉지표로 만들어(1분봉에서 15분봉 지표를 사용) 사용하고 싶습니다.