Search
📕

5. 사용자함수 만들기

사용자함수는 사용자가 직접 만들어 사용하는 함수를 말합니다. 자주 사용하는 계산 내용이 있는데 지표식이나 전략식마다 해당 계산 내용을 매번 입력하고 사용하는 것은 번거로운 작업입니다. 자주 사용하는 계산 내용으로 사용자 함수를 만들어 사용하면 수식에서 간단히 함수만 호출해서 사용하면 되므로 수식을 작성할 때 효율성을 높이기 위함입니다. 작성 예에서는 Stochastic RSI 계산식을 사용자 함수로 만들어 보겠습니다.
//외부변수 input : RSIPeriod(14),Kperiod(10),DPeriod(5); //내부변수 var : RSIV(0),Hv(0),Lv(0),StoRsi(0),SD(0); //1. RSI 계산 //RSI값을 리턴하는 함수가 있으므로 함수를 이용. //RSI의 기간은 외부변수 처리해서 속성에서 변경가능하게 함. RSIv = RSI(RSIPeriod); //2. RSI의 일정기간 최고값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Hv = highest(RSIV,Kperiod); //3. RSI의 일정기간 최저값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Lv = Lowest(RSIV,Kperiod); //4. Stochastic RSI 계산 //(RSI-최저가)/(최고가-최저가)*100 StoRsi= (RSIv- Lv) / (Hv-Lv) *100 ; // 5. Stochastic RSI의 이동평균값 //SlowD기간은 외부변수 처리해서 속성에서 변경가능하게 함. SD = ma(StoRsi,DPeriod); // 6. StoRsi값이 20 아래에서 slowK가 slowD를 상향돌파하면 매수 if StoRsi < 20 and CrossUp(StoRsi,SD) Then buy("B"); // 7. StoRsi값이 80 위에서 slowK가 slowD를 하향이탈하면 매도 if StoRsi > 80 and CrossDown(StoRsi,SD) Then Sell("S");
C
복사
위 수식은[전략식 작성하기]에서 작성한 Stochastic RSI의 전략식 내용입니다. 비교적 간단한 내용이지만 최종 StoRsi를 계산하기 위해서는 여러가지 계산을 해야하고 변수를 선언해서 값을 할당하는 등의 작업을 매번 반복해야 합니다. 계산식이 복잡하고 길다면 더욱 번거로운 작업이 되고 수식이 길어져 수식 독해를 어렵게 합니다. 위 계산 내용을 사용자함수로 만들면 간단히 함수 하나만 호출하면 되므로 수식이 간단 명료해 지게 되어 가독성이 높에 됩니다.
1.
새수식 클릭 수식편집기 오른쪽 상단에서 [새수식]을 클릭합니다.
2.
새 수식 만들기에서 수식 종류와 이름 지정 새수식을 클릭하면 수식종류 이름을 지정하는 [새 수식 만들기]화면이 나타납니다. 종류는 [사용자함수]을 선택하고 함수명을 입력하고 확인버튼을 클릭합니다. 작성예에서는 StochRSI로 지정했습니다.
3.
사용자함수 편집창
수식 입력하는 편집창이 나타나면 수식을 입력합니다. Stochastic RSI 지표를 작성하면 아래와 같습니다. 수식의 내용은 전체를 복사해서 편집창에 붙여넣기 하시면 됩니다.
//외부변수 (입력값의 타입으로 지정) input : RSIPeriod(Numeric),Kperiod(Numeric); //내부변수 var : RSIV(0),Hv(0),Lv(0),StoRsi(0),SD(0); //1. RSI 계산 //RSI값을 리턴하는 함수가 있으므로 함수를 이용. //RSI의 기간은 외부변수 처리해서 속성에서 변경가능하게 함. RSIv = RSI(RSIPeriod); //2. RSI의 일정기간 최고값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Hv = highest(RSIV,Kperiod); //3. RSI의 일정기간 최저값 계산 //기간은 기간은 외부변수 처리해서 속성에서 변경가능하게 함. Lv = Lowest(RSIV,Kperiod); //4. Stochastic RSI 계산 //(RSI-최저가)/(최고가-최저가)*100 //최종 계산값을 함수명에 저장되어 리턴되게 함 StochRsi= (RSIv- Lv) / (Hv-Lv) *100 ;
C
복사
주석을 통해 수식 내용을 확인하시기 바랍니다.
사용자 함수시 주의사항 사용자함수는 지표식과 전략식을 만드는 방법과 크게 2가지 차이가 있습니다.
함수식의 최종 계산값은 반드시 함수명에 할당되게 작성 함수명은 함수식 안에서 최종적으로 값을 저장받는 변수로 사용되어야 합니다. 최종값이 함수명에 할당되지 않으면 수식에 오류가 발생해 작성완료가 되지 않습니다.
외부변수는 특정 숫자를 지정하지 않고 입력값에 대한 타입으로 지정 사용자함수는 지표식이나 전략식에서 사용되어 각 지표나 전략에 맞게 기간 등의 값이 입력되어야 하므로 외부변수는 입력되는 값의 타입으로만 지정합니다. 특정 수치값으로 고정으로 지정하면 수식에 오류가 발생하게 됩니다.
4.
저장 수식 작성이 완료되면 편집기 오른쪽 상단에서 [저장]을 누르면 자동으로 문법검증과 함께 수식이 저장됩니다.
5.
작성된 사용자함수는 내수식의 사용자함수 목록으로 추가됩니다.
6.
사용자함수 적용 작성완료 된 StochRSI함수를 [전략식 작성하기]에서 작성한 수식에 적용하면 아래와 같이 변경됩니다.
//외부변수 input : RSIPeriod(14),Kperiod(10),DPeriod(5); //내부변수 var : StoRsi(0),SD(0); //1. Stochastic RSI(사용자함수 이용) StoRsi = StochRSI(RSIPeriod,Kperiod); // 2. Stochastic RSI의 이동평균값 //SlowD기간은 외부변수 처리해서 속성에서 변경가능하게 함. SD = ma(StoRsi ,DPeriod); // 3. StoRsi값이 20 아래에서 slowK가 slowD를 상향돌파하면 매수 if StoRsi < 20 and CrossUp(StoRsi,SD) Then buy("B"); // 4. StoRsi값이 80 위에서 slowK가 slowD를 하향이탈하면 매도 if StoRsi > 80 and CrossDown(StoRsi,SD) Then Sell("S");
C
복사
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.