안녕하세요?
아래와 같은 mcontiAtr 함수 부탁드립니다.
input: n(Numeric); // 이하에서는 n = 100 으로 놓고 설명함.
차트의 index : 0 ~ 99 : mcontiAtr: 아직 정의되지 않음
차트의 index == 100: mcontiAtr = Atr(1); // 1 == (100 - n) + 1 이니까
차트의 index == 101: mcontiAtr = Atr(2); // 2 == (101 - n) + 1 이니까
차트의 index == 102: mcontiAtr = Atr(3); // 3 == (102 - n) + 1 이니까
.....
만약 차트의 봉수가 5000개라면, 맨 마지막 봉에서의 함수값은
차트의 index == 4999: mcontiAtr = Atr(4900); // 4900 == (4999 - n(100)) + 1 이니까
요렇게 되기를 원합니다.
///////////////////////////////////
특히 n == 0 이면
첫봉은 Atr(1)
2번째 봉에서는 Atr(2)
3번째 봉에서는 Atr(3)
4번째 봉에서는 Atr(4)
...
의 값을 리턴하기를 원합니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2021-10-29 15:48:01
안녕하세요
예스스탁입니다.
함수에 가변적인 기간을 지정하면 최대 1024까지만 계산이 됩니다.
아래와 같이 풀어서 작성하셔야 하며 truerange는 봉 2개를 이용하므로
차트 첫봉에 값이 있을수 없습니다.
TR값이 N/A가 아닌봉이고 index가 n보다 클때부터 봉수 카운트해
누적하고 평균을 계산하게 됩니다.
input: n(1);
var : idx(0),TR(0),sum(0),cnt(0),mcontiAtr(0);
TR = TrueRange;
if Index >= n and IsNaN(TR) == False Then
{
idx = idx+1;
sum = sum + TR;
mcontiAtr = sum/idx;
Plot1(mcontiAtr);
}
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : 수식 문의
> 안녕하세요?
아래와 같은 mcontiAtr 함수 부탁드립니다.
input: n(Numeric); // 이하에서는 n = 100 으로 놓고 설명함.
차트의 index : 0 ~ 99 : mcontiAtr: 아직 정의되지 않음
차트의 index == 100: mcontiAtr = Atr(1); // 1 == (100 - n) + 1 이니까
차트의 index == 101: mcontiAtr = Atr(2); // 2 == (101 - n) + 1 이니까
차트의 index == 102: mcontiAtr = Atr(3); // 3 == (102 - n) + 1 이니까
.....
만약 차트의 봉수가 5000개라면, 맨 마지막 봉에서의 함수값은
차트의 index == 4999: mcontiAtr = Atr(4900); // 4900 == (4999 - n(100)) + 1 이니까
요렇게 되기를 원합니다.
///////////////////////////////////
특히 n == 0 이면
첫봉은 Atr(1)
2번째 봉에서는 Atr(2)
3번째 봉에서는 Atr(3)
4번째 봉에서는 Atr(4)
...
의 값을 리턴하기를 원합니다.
감사합니다.