Search
📕

3. 사용자함수 만들기

사용자함수는 사용자가 직접 만들어 사용하는 함수를 말합니다. 자주 사용하는 계산 내용이 있는데 지표식이나 전략식마다 해당 계산 내용을 매번 입력하고 사용하는 것은 번거로운 작업입니다. 자주 사용하는 계산 내용은 사용자 함수를 만들어 사용하면 수식에서 간단히 함수만 호출해서 사용하면 되므로 작성할 때 효율성을 높일 수 있습니다.
//외부변수 선언 input : RSIPeriod(14); input : FKLength(5); input : smoothK(5); input : smoothD(3); //내부변수 선언 var : R(0),HV(0),LV(0); var : FK(0),SK(0),SD(0); //1. RSI 계산(RSI값을 리턴하는 함수가 있으므로 함수를 이용). //RSI의 기간은 외부변수 처리해서 속성에서 변경가능하게 함. R = RSI(RSIPeriod); //2. RSI의 일정기간 최고값/최저값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Hv = highest(R,FKLength); Lv = Lowest(R,FKLength); //3. RSI FastK값 계산 //(RSI- 일정기간RSI최저가)/(일정기간RSI최고가 - 일정기간RSI최저가)*100 FK = (R-LV)/(HV-LV)*100; //4. RSI SlowK 계산 (FastK의 일정기간 이동평균) SK = ma(FK, smoothK); //5. RSI SlowD 계산 (SlowK의 일정기간 이동평균) SD = ma(SK, smoothD); //6. SlowK가 SlowD를 상향돌파하면 매수 if CrossUp(SK,SD) Then Buy(); //7. Slowk가 SLowD를 하향이탈하면 매도 if CrossDown(SK,SD) Then Sell();
C
복사
위 수식은[시스템식 작성하기]에서 작성한 전략식 내용입니다. 비교적 간단한 내용이지만 최종 RSI SlowK와 RSI SlowD를 계산하기 위해서는 여러가지 변수를 선언해서 계산값들을 할당하는 등의 작업을 해야 합니다. 계산식이 복잡하고 길다면 더욱 번거로운 작업이 되고 수식이 길어져 수식 독해를 어렵게 합니다. 위 계산 내용을 사용자함수로 만들면 간단히 함수 하나만 호출하면 되므로 수식이 간단 명료해 지게 되고 가독성도 좋아지게 됩니다.
작성예에서는 RSI SlowK값을 사용자함수로 만들어 위 수식의 계산식을 대체하는 내용으로 작성합니다.
JavaScript
복사
1.
새로운 사용자함수 편집창 열기 아래 2가지 방법 중 하나 선택해서 새로 만들기 시작하시면 됩니다.
a.
편집기 상단 파일메뉴 → 새로만들기 → 일반탭에서 사용자함수 아이콘 선택 → 확인
b. 파일관리자 → 사용자함수탭 선택 → 상단 파일관리도구에서 새수식 아이콘 클릭
2.
사용자함수 이름 지정.
[사용자함수 새로 작성]화면이 나타나면 이름을 입력하고 확인 버튼을 클릭합니다. 작성예에서는 RSISlowK로 지정합니다.
3.
사용자함수 편집창
수식 입력하는 편집창이 나타나면 수식을 입력합니다. RSI SlowK를 작성하면 아래와 같습니다.
//※※※외부변수 (입력값의 타입으로 지정) input : RSIPeriod(Numeric); input : FKLength(Numeric); input : smoothK(Numeric); //내부변수 선언 var : R(0),HV(0),LV(0),FK(0); //1. RSI 계산(RSI값을 리턴하는 함수가 있으므로 함수를 이용). //RSI의 기간은 외부변수 처리해서 속성에서 변경가능하게 함. R = RSI(RSIPeriod); //2. RSI의 일정기간 최고값/최저값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Hv = highest(R,FKLength); Lv = Lowest(R,FKLength); //3. RSI FastK값 계산 //(RSI- 일정기간RSI최저가)/(일정기간RSI최고가 - 일정기간RSI최저가)*100 FK = (R-LV)/(HV-LV)*100; //4. RSI SlowK 계산 (FastK의 일정기간 이동평균) //※※※최종 계산값을 함수명에 저장되어 리턴되게 함 RSISlowK = ma(FK, smoothK);
C
복사
수식의 내용은 전체를 복사해서 편집창에 붙여넣기 하시면 됩니다.
4.
문법 검증 수식 작성이 되었으면 마지막에 문법검증을 실행합니다. 상단 편집도구에서 를 누르거나 키보드에서 F4키를 누르면 문법검증이 실행됩니다. 혹은 수식 위에서 마우스 우클릭하면 나오는 메뉴에서 검증을 선택해도 됩니다.
문법검증 후 오류창에 [검증이 완료 되었습니다.]라는 메시지가 출력되면 해당 수식에 문법상 오류없이 작성되었고 자동으로 저장됩니다.
5.
작성된 사용자함수는 파일관리자의 사용자함수 목록에 추가됩니다.
6.
사용자함수 적용 작성완료 된 RSISlowK함수를 [전략식 작성하기]에서 작성한 수식에 적용해서 계산식을 대체하면 아래와 같이 변경됩니다.
//외부변수 선언 input : RSIPeriod(14); input : FKLength(5); input : smoothK(5); input : smoothD(3); //내부변수 선언 var : SK(0),SD(0); //1. RSI SlowK 계산 (RSISlowK함수이용) SK = RSISlowK(RSIPeriod,FKLength,smoothK); //2. RSI SlowD 계산 (SlowK의 일정기간 이동평균) SD = ma(SK, smoothD); //3. SlowK가 SlowD를 상향돌파하면 매수 if CrossUp(SK,SD) Then Buy(); //4. Slowk가 SLowD를 하향이탈하면 매도 if CrossDown(SK,SD) Then Sell();
C
복사
7.
사용자함수 작성 주의사항 사용자함수는 다른 수식을 작성하는 방법과 크게 2가지 차이가 있습니다.
함수식의 최종 계산값은 반드시 함수명에 할당되게 작성합니다. 함수명은 함수식 안에서 최종적으로 값을 저장받는 변수로 사용되어야 합니다. 최종값이 함수명에 할당되지 않으면 수식에 오류가 발생해 작성완료가 되지 않습니다.
외부변수는 특정 숫자를 지정하지 않고 입력값에 대한 타입으로 지정해야 합니다. 사용자함수는 지표식이나 전략식에서 사용되어 각 지표나 전략에 맞게 기간 등의 값이 입력되어야 하므로 외부변수는 입력되는 값의 타입으로만 지정합니다. 특정 수치값으로 고정으로 지정하면 수식에 오류가 발생하게 됩니다.
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.