두 가지 문의사항이 있습니다
1번 문의사항
Excel로 치자면 LARGE, SMALL 함수를 사용자 함수화 시키고 싶습니다.
NthMaxList
설명 : 리스트에 포함된 값 중에서 N번째 큰 값을 구함.
항목은 모두 수치 값이어야 함
함수 : NthMaxList(N,num1,num2,num3,num4,….)
예제 : NthMaxList (3,10, 20, 30, 40) 20 반환
NthMaxList (3, Open, HH, ma(c,5), dayclose(1))
지정한 4개의 항목 값 중 세번째 높은 값을 구함 .
NthMaxList를 사용하자니
함수 안에 일일이 값을 넣어주어야 하니 수식이 너무 길어지더라고요
예를 들어서 현재 봉 기준으로 최근 5개 봉의 종가 중 2번째로 큰 값을 구하려면
NthMaxList(2, C, C[1], C[2], C[3], C[4])
이렇게 사용하면 되는 것 같은데
현재 봉 기준으로 특정 과거 시점까지 (N개라고 가정), x번째로 큰 값을 구한다 쳤을때
N개가 많아지면.. 많이 불편한데
Excel에 있는 LARGE, SMALL 함수는
LARGE(범위, x) 라고 간단히 쓸 수 있잖아요?
이것을 예스랭귀지로 사용자함수화 시킬 수 없을까요?
이를테면
Large(N, 조건, x) 이렇게 해서
N : Navigation 기간 설정
조건 : Open, High, Low, Close
x : 몇 번째인지
N을 갖고 for문을 작성하거나 array를 활용해야하나..?
코딩 실력이 미진하여서 만들기가 너무 난해하네요..
---------------------------------------------------------
2 번 문의사항
만약에 60분봉을 쓴다고 가정하였을 때에
하루에 봉의 개수는 7개가 나오잖아요?
만약 DayIndex가 7이라면(오늘의 마지막 봉이라면)
-> ABS(하루 전 7번봉의 시가 - 오늘의 7번봉의 종가)
아니라면 이전의 자기 자신의 값을 지정
이렇게 설정하려면 수식작성을 어떻게 해야하나요?
설명을 좀 애매하게 적은 것 같은데 구체적으로 예를 들자면
그저께
7번봉 - 값 계산 -> 2
어제
1 - 2
2 - 2
3 - 2
4 - 2
5 - 2
6 - 2
7 - 값 계산 -> 4란 값 산출
오늘
1 - 4
2 - 4
3 - 4
4 - 4
5 - 4
6 - 4
7 - 값 계산 -> 3란 값 산출
Var : Calculation(0);
If Index > 30 and DayIndex == 7
Then Calculation = ABS(Open[7] - Close[0]);
Else Calculation = Calculation[1];
Plot1(Calculation);
이렇게 작성해보았는데 지표창에 아무것도 출력이 되지 않습니다
isNan(value) == false 를 사용해야 하는 것 같기도 한데..
결측값 처리를 어떻게 해야할지 모르겠습니다..
제가 첫 프로그래밍 언어가 YesLanguage이고 비전공자이다 보니까 어렵네요..
-------------------------------------------------------------------------
늘 많은 도움 받고 있습니다!
꼭 좀 도와주세요ㅠㅠㅠㅠ
답변 1
예스스탁
예스스탁 답변
2021-06-28 14:10:26
안녕하세요
예스스탁입니다.
1
NthHighest,NthLowest 함수 이용하시면 됩니다.
NthHighest(2,C,5) --> 최근 5개의 종가중 2번째 큰값
2
dayindex는 당일 첫봉을 0으로 시작하므
dayindex == 6 또는 dayindex+1 == 7로 지정하셔야 합니다.
var : Calculation(0);
if DayIndex+1 == 7 Then
{
var1 = O;
Var2 = var1[1];
if var2 > 0 Then
Calculation = abs(Var2-C);
}
if Calculation > 0 Then
Plot1(Calculation);
즐거운 하루되세요
> 파트라 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다
> 두 가지 문의사항이 있습니다
1번 문의사항
Excel로 치자면 LARGE, SMALL 함수를 사용자 함수화 시키고 싶습니다.
NthMaxList
설명 : 리스트에 포함된 값 중에서 N번째 큰 값을 구함.
항목은 모두 수치 값이어야 함
함수 : NthMaxList(N,num1,num2,num3,num4,….)
예제 : NthMaxList (3,10, 20, 30, 40) 20 반환
NthMaxList (3, Open, HH, ma(c,5), dayclose(1))
지정한 4개의 항목 값 중 세번째 높은 값을 구함 .
NthMaxList를 사용하자니
함수 안에 일일이 값을 넣어주어야 하니 수식이 너무 길어지더라고요
예를 들어서 현재 봉 기준으로 최근 5개 봉의 종가 중 2번째로 큰 값을 구하려면
NthMaxList(2, C, C[1], C[2], C[3], C[4])
이렇게 사용하면 되는 것 같은데
현재 봉 기준으로 특정 과거 시점까지 (N개라고 가정), x번째로 큰 값을 구한다 쳤을때
N개가 많아지면.. 많이 불편한데
Excel에 있는 LARGE, SMALL 함수는
LARGE(범위, x) 라고 간단히 쓸 수 있잖아요?
이것을 예스랭귀지로 사용자함수화 시킬 수 없을까요?
이를테면
Large(N, 조건, x) 이렇게 해서
N : Navigation 기간 설정
조건 : Open, High, Low, Close
x : 몇 번째인지
N을 갖고 for문을 작성하거나 array를 활용해야하나..?
코딩 실력이 미진하여서 만들기가 너무 난해하네요..
---------------------------------------------------------
2 번 문의사항
만약에 60분봉을 쓴다고 가정하였을 때에
하루에 봉의 개수는 7개가 나오잖아요?
만약 DayIndex가 7이라면(오늘의 마지막 봉이라면)
-> ABS(하루 전 7번봉의 시가 - 오늘의 7번봉의 종가)
아니라면 이전의 자기 자신의 값을 지정
이렇게 설정하려면 수식작성을 어떻게 해야하나요?
설명을 좀 애매하게 적은 것 같은데 구체적으로 예를 들자면
그저께
7번봉 - 값 계산 -> 2
어제
1 - 2
2 - 2
3 - 2
4 - 2
5 - 2
6 - 2
7 - 값 계산 -> 4란 값 산출
오늘
1 - 4
2 - 4
3 - 4
4 - 4
5 - 4
6 - 4
7 - 값 계산 -> 3란 값 산출
Var : Calculation(0);
If Index > 30 and DayIndex == 7
Then Calculation = ABS(Open[7] - Close[0]);
Else Calculation = Calculation[1];
Plot1(Calculation);
이렇게 작성해보았는데 지표창에 아무것도 출력이 되지 않습니다
isNan(value) == false 를 사용해야 하는 것 같기도 한데..
결측값 처리를 어떻게 해야할지 모르겠습니다..
제가 첫 프로그래밍 언어가 YesLanguage이고 비전공자이다 보니까 어렵네요..
-------------------------------------------------------------------------
늘 많은 도움 받고 있습니다!
꼭 좀 도와주세요ㅠㅠㅠㅠ