질문1
사용자함수를만들려고하는데 어레이형태가리턴가능한지궁금합니다 가능하다면 예제가 궁금합니다
질문2
사용자함수를 만드려는데 numericserise 형태로 인풋을 받도록 구현한다면 예를들어 input : aa(뉴메릭시리즈)
함수이름이 kk라치면 kk(asks+bids,n)
이렇게 호출한다면
kk함수안에서
(asks+bids)[n] 이런식으로 n 이라는 변수로 ask와 bids의 히스토리컬데이터 그니깐 이전 봉의 데이터를 접근가능한가요? 질문이 좀 중구난방인데 인풋에 한 데이터를넣는게아니라 인풋으로 수식을 넣어주면 그수식값이 히스토리컬하게접근되는지궁금합니다
답변 1
예스스탁
예스스탁 답변
2024-07-12 10:23:17
안녕하세요
예스스탁입니다.
1
배열로 리턴받으시려면 NumericArrayRef 타입으로 함수를 만드셔야 합니다.
NumericArrayRef로 만드시면 함수의 매개변수로 배열변수를 지정하면
해당 변수에 값이 저장되서 다시 리턴됩니다.
아래 내용 참고하시기 바랍니다.
아래 함수는 이평골드/데드 기준으로
골드구간 최고가와 데드구간 최저가를 계산해서 지정한 배열변수에 저장해서
리턴하게 NumericArrayRef타입으로 작성된 함수입니다.
함수명은 kk입니다.
#p1,p2이평기간
#upv,dnv는 값 리턴받을 배열 매개변수
input : P1(Numeric),P2(Numeric),upv[a](NumericArrayRef),dnv[b](NumericArrayRef);
var : T(0),cnt(0);
var1 = ma(C,P1);
Var2 = ma(C,P2);
if CrossUp(var1,var2) Then
{
T = 1;
For cnt = 10 to 1
{
upv[cnt] = upv[cnt-1];
}
upv[0] = c;
}
if CrossDown(var1,var2) Then
{
T = -1;
For cnt = 10 to 1
{
dnv[cnt] = dnv[cnt-1];
}
dnv[0] = c;
}
if T == 1 Then
{
if h > upv[0] Then
upv[0] = h;
}
if T == -1 Then
{
if l < dnv[0] Then
dnv[0] = l;
}
kk = 1;
위 내용을 사용자함수로 만든 우에
아래 내용 지표식으로 작성해서 값 확인해 보시기 바랍니니다.
Array : HH[10](0),LL[10](0);
//함수에 3번째, 4번째 매개변수에 배열변수 지정
var1= kk(5,10,HH,LL);
Plot1(HH[0]);
Plot2(LL[0]);
2
예 가능합니다.
input : value(NumericSeries),n(Numeric);
kk = value[n];
위와 같이 사용자 함수 만드신 후에
아래 지표식 적용해 보시면 값 리턴되는 것을 확인하실 수 있습니다.
Plot1(kk(Bids/Asks,10));
즐거운 하루되세요
> 여유로운투자 님이 쓴 글입니다.
> 제목 : 사용자함수에서 리턴타입
> 질문1
사용자함수를만들려고하는데 어레이형태가리턴가능한지궁금합니다 가능하다면 예제가 궁금합니다
질문2
사용자함수를 만드려는데 numericserise 형태로 인풋을 받도록 구현한다면 예를들어 input : aa(뉴메릭시리즈)
함수이름이 kk라치면 kk(asks+bids,n)
이렇게 호출한다면
kk함수안에서
(asks+bids)[n] 이런식으로 n 이라는 변수로 ask와 bids의 히스토리컬데이터 그니깐 이전 봉의 데이터를 접근가능한가요? 질문이 좀 중구난방인데 인풋에 한 데이터를넣는게아니라 인풋으로 수식을 넣어주면 그수식값이 히스토리컬하게접근되는지궁금합니다