inputs:
gam( numericseries );
variables:
L0(0),
L1(0),
L2(0),
L3(0),
CU(0),
CD(0),
LRSI(0);
L0 = (1 - gam)*Close + gam*L0[1];
L1 = - gam *L0 + L0[1] + gam *L1[1];
L2 = - gam *L1 + L1[1] + gam *L2[1];
L3 = - gam *L2 + L2[1] + gam *L3[1];
CU = 0;
CD = 0;
If L0 >= L1 then CU = L0 - L1 Else CD = L1 - L0;
If L1 >= L2 then CU = CU + L1 - L2 Else CD = CD + L2 - L1;
If L2 >= L3 then CU = CU + L2 - L3 Else CD = CD + L3 - L2;
If CU + CD <> 0 then LaguerreRSI = CU / (CU + CD);
EasyLanguage로 수식은 위와 같습니다.
실제로 예스스탁에 바로 넣어도 에러도 없고 직관적으로도 이해가 되는데 막상 작동을 안하네요.
수정부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2022-11-23 13:52:48
안녕하세요
예스스탁입니다.
차트 첫봉에 한봉전값이 없어 L0[1]과 같은 값이 N/A입니다.
해당식은 직전값을 이용하므로 한번 N/A가 들어가면 계속 계산불능상태가 됩니다.
수식에서 필요한 최소봉이상부터 계산하게 아래와 같이 처리하셔야 합니다.
inputs:
gam( numericseries );
variables:
L0(0),
L1(0),
L2(0),
L3(0),
CU(0),
CD(0),
LRSI(0);
if CurrentBar >= 1 Then
{
L0 = (1 - gam)*Close + gam*L0[1];
L1 = - gam *L0 + L0[1] + gam *L1[1];
L2 = - gam *L1 + L1[1] + gam *L2[1];
L3 = - gam *L2 + L2[1] + gam *L3[1];
CU = 0;
CD = 0;
If L0 >= L1 then CU = L0 - L1 Else CD = L1 - L0;
If L1 >= L2 then CU = CU + L1 - L2 Else CD = CD + L2 - L1;
If L2 >= L3 then CU = CU + L2 - L3 Else CD = CD + L3 - L2;
If CU + CD <> 0 then LaguerreRSI = CU / (CU + CD);
}
즐거운 하루되세요
> 오전만트레이딩 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> inputs:
gam( numericseries );
variables:
L0(0),
L1(0),
L2(0),
L3(0),
CU(0),
CD(0),
LRSI(0);
L0 = (1 - gam)*Close + gam*L0[1];
L1 = - gam *L0 + L0[1] + gam *L1[1];
L2 = - gam *L1 + L1[1] + gam *L2[1];
L3 = - gam *L2 + L2[1] + gam *L3[1];
CU = 0;
CD = 0;
If L0 >= L1 then CU = L0 - L1 Else CD = L1 - L0;
If L1 >= L2 then CU = CU + L1 - L2 Else CD = CD + L2 - L1;
If L2 >= L3 then CU = CU + L2 - L3 Else CD = CD + L3 - L2;
If CU + CD <> 0 then LaguerreRSI = CU / (CU + CD);
EasyLanguage로 수식은 위와 같습니다.
실제로 예스스탁에 바로 넣어도 에러도 없고 직관적으로도 이해가 되는데 막상 작동을 안하네요.
수정부탁드립니다.