Search
📕

6. 인라인 함수 만들기

인라인 함수는 수식 안에서 정의된 함수를 말합니다. 사용자함수와 인라인함수의 차이는 사용의 범위에 있습니다. 사용자함수는 자주 사용하는 계산식 등을 함수로 만들어 여러 지표식이나 전략식에서 사용하기 위함이지만 인라인함수는 함수를 정의한 수식 안에서만 통용되는 함수를 만들기 위함입니다. 특정 수식에서만 반복적으로 사용되는 내용이면 인라인 함수를 만들어 수식내에서 활용하게 됩니다. 또는 수식을 다른 사람에게 전달할 때 해당 수식에 별도의 사용자함수가 있으면 해당 내용도 같이 알려줘야 하는 불편함이 있으므로 수식내에서 인라인함수로 처리하는 경우도 있습니다.
1.
인라인함수 형식
Function 함수명 ReturnType 함수식 내용(사용자함수식과 동일) EndFunction ※ ReturnType : Numeric/Boolean/String 중 택일, 생략하면 Numeric
인라인함수는 기본적으로 사용자함수의 함수식 내용과 동일합니다. 다만 지표나 전략식에서 함수를 정의가 되므로 인라인 함수임을 알려주는 Function과 EndFunction 키워드 안에 작성되어야 하고 함수 시작시 Function과 함께 이름과 반환값 형태를 지정해야 합니다.
2.
인라인함수 작성
[사용자함수 만들기]에서 만든 위 RSISlowK함수식을 지표, 시스템 등 수식 안에서 인라인함수로 처리하면 아래와 같습니다.
//Function으로 시작하고 함수명과 반환값의 타입을 지정 Function RSISlowK Numeric //외부변수 (입력값의 타입으로 지정) 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); EndFunction //EndFunction으로 마무리 //외부변수 선언 input : RSIPeriod(14); input : FKLength(5); input : smoothK(5); input : smoothD(3); //내부변수 선언 var : SK(0),SD(0); //1. RSI SlowK 계산 (FastK의 일정기간 이동평균) 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
복사
※ 인라인 함수는 수식 내에서 해당 함수가 호출되기 전에 먼저 정의가 되어 있어야 하므로 편집창 위 쪽에 먼저 작성을 해야 합니다.
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.