1.원래 있는 함수들이나 지표들(보라색이나 파란색 또는 빨간색 글씨들)은 사용할 때 변수 선언을 하지 않아도 된다는거죠?
사용자 함수를 만든다는 게 지표나 시스템을 만들 때 특정 공식을 매번 쓰기 귀찮으니까 함수로 만들어놓는건가요 ?
2. 근데 프로그래밍을 접해본 적이 없어서 이것저것 보면서 해보고 있습니다.
다름이 아니라 어떤 함수를 만들고 싶은데 검증을 하면 항상
"외부함수의 입력값이 1개 필요합니다"
값을 대입할 수 있는 변수나 배열의 요소, 입력변수,..."
이 두 문장이 항상 뜹니다.
3. 기존에 있는 함수를 복사해서 새로 만들기에 붙여넣기 해도 같은 오류가 발생하는데 뭐가 문제인가요?
만들고 싶은 함수는 많은데 그중 Q&A를 보고 따라해보다 안되는 예시를 올려보겠습니다.
---
아래식은 최근 100봉중 거래량이 1000개인 봉의 갯수를 게산하는 지표식입니다.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 99{
if v[cnt] == 1000 Then
count = count+1;
}
plot1(count);
---
4. 만약 이 지표식을 함수식으로 만들려면 어떻게 해야 하나요?
5. 그리고 제가 이 지표를 좀 변경해서
n일에 n일부터 최근 10일간 양봉의 갯수를 세는 지표를 만들어봤는데 잘 안됩니다.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if OpenD(cnt) < CloseD(cnt) Then
count = count+1;
}
plot1(count);
긴 글 읽어주셔서 감사합니다 수고하세요
답변 1
예스스탁
예스스탁 답변
2022-02-28 13:22:24
안녕하세요
예스스탁입니다.
1
예 맞습니다.
2
사용자함수는 작성하실때
계산식의 최종값이 사용자함수명에 할당되게 하셔야 합니다.
예스랭귀지 편집기에서 제공되는 사용자함수를 열어보시면
함수식안에서 계산된 값이 최종적으로는 사용자함수명에 저장되게 작성된 것을 보실수 있습니다.
Inputs : Price(NumericSeries);
Var : Value_Accum(0);
if CurrentBar > 1 then
Value_Accum = Value_Accum + Price;
else
Value_Accum = Price;
Accum = Value_Accum;
예를 들어 accum함수를 열어보시면
마지막에 Accum = Value_Accum;과 같이 함수명에 값이 저장됩니다.
즉 계산된 최종값은 지정한 함수명으로 리턴한다는 의미입니다.
3
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if OpenD(cnt) < CloseD(cnt) Then
count = count+1;
}
만약 위와 같은 수식을 함수식으로 작성하고 함수명을 "음봉갯수"라고 한다면
사용자함수 새로작성화면에서 이름은 음봉갯수로 지정하고
함수의 계산값이 숫자이므로 반환값형은 숫자형으로 지정하고 확인버튼을 클릭합니다
수식은 아래와 같이 작성하고 사용하시면 됩니다.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if OpenD(cnt) < CloseD(cnt) Then
count = count+1;
}
음봉갯수 = count;
지표식에서는 계산식없이 아래와 같이만 작성해 사용하시면 됩니다.
plot1(음봉갯수);
즐거운 하루되세요
> 초심자의행운 님이 쓴 글입니다.
> 제목 : 함수를 만들고 싶은데요
> 1.원래 있는 함수들이나 지표들(보라색이나 파란색 또는 빨간색 글씨들)은 사용할 때 변수 선언을 하지 않아도 된다는거죠?
사용자 함수를 만든다는 게 지표나 시스템을 만들 때 특정 공식을 매번 쓰기 귀찮으니까 함수로 만들어놓는건가요 ?
2. 근데 프로그래밍을 접해본 적이 없어서 이것저것 보면서 해보고 있습니다.
다름이 아니라 어떤 함수를 만들고 싶은데 검증을 하면 항상
"외부함수의 입력값이 1개 필요합니다"
값을 대입할 수 있는 변수나 배열의 요소, 입력변수,..."
이 두 문장이 항상 뜹니다.
3. 기존에 있는 함수를 복사해서 새로 만들기에 붙여넣기 해도 같은 오류가 발생하는데 뭐가 문제인가요?
만들고 싶은 함수는 많은데 그중 Q&A를 보고 따라해보다 안되는 예시를 올려보겠습니다.
---
아래식은 최근 100봉중 거래량이 1000개인 봉의 갯수를 게산하는 지표식입니다.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 99{
if v[cnt] == 1000 Then
count = count+1;
}
plot1(count);
---
4. 만약 이 지표식을 함수식으로 만들려면 어떻게 해야 하나요?
5. 그리고 제가 이 지표를 좀 변경해서
n일에 n일부터 최근 10일간 양봉의 갯수를 세는 지표를 만들어봤는데 잘 안됩니다.
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if OpenD(cnt) < CloseD(cnt) Then
count = count+1;
}
plot1(count);
긴 글 읽어주셔서 감사합니다 수고하세요