커뮤니티
사용자 함수를 만들고 싶은데...
2008-03-09 12:36:38
890
글번호 14893
수소하십니다..
아래 지표식을 사용자 함수로 만들고 싶은데 검증해 보면
" 함수가 값을 리턴하고 있지 않습니다 함수는 반드시 값을 리턴해야 합니다"
이런 메세지가 뜹니다
어떻게 해야 하나요?
감사합니다
VARS: SWITCH(0);
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
//PLOT1(HIGH[1], "ZIGUP");
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
//PLOT1(LOW[1], "ZIGUP");
SWITCH = 0;
}
}
답변 2
예스스탁 예스스탁 답변
2008-03-10 09:20:01
안녕하세요
예스스탁입니다.
사용자함수에서 최종 계산된 값은 사용자함수의 이름과 같아야 합니다.
즉 사용자함수를 만들때 이름은 최종 계산값이 할당되는
변수이므로 선정시 주의하셔야 합니다.
switch값으로 함수를 만드실 의향이시라면
사용자 함수의 이름을 switch로 하시고
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
//PLOT1(HIGH[1], "ZIGUP");
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
//PLOT1(LOW[1], "ZIGUP");
SWITCH = 0;
}
}
위 식을 붙여넣기 하시면 됩니다.
또는
zigzag와 같이 다른이름으로 사용자함수를 만드신다면
사용자함수 이름 : zigzag
VARS: SWITCH(0);
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
ZigZag = HIGH[1];
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
ZigZag = LOW[1];
SWITCH = 0;
}
}
와 같이 작성할 수 있습니다.
사용자 함수의 이름으로 최종값이 할당되게 하고
그 이름은 새로작성시 이름으로 넣었기 때문에
따로 선언하지 않습니다.
즐거운 하루되세요
> 게바라 님이 쓴 글입니다.
> 제목 : 사용자 함수를 만들고 싶은데...
> 수소하십니다..
아래 지표식을 사용자 함수로 만들고 싶은데 검증해 보면
" 함수가 값을 리턴하고 있지 않습니다 함수는 반드시 값을 리턴해야 합니다"
이런 메세지가 뜹니다
어떻게 해야 하나요?
감사합니다
VARS: SWITCH(0);
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
//PLOT1(HIGH[1], "ZIGUP");
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
//PLOT1(LOW[1], "ZIGUP");
SWITCH = 0;
}
}
게바라
2008-03-11 00:21:23
답변에 감사드립니다.
아래 수식을 복사하여 붙여 넣어도 같은 메세지가 나옵니다.
죄송하지만 검증하여 메일로 보내주시면 감ㅅ하겠습니다.
그럼 수고하세요
j14568@hanmail.net
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 사용자 함수를 만들고 싶은데...
> 안녕하세요
예스스탁입니다.
사용자함수에서 최종 계산된 값은 사용자함수의 이름과 같아야 합니다.
즉 사용자함수를 만들때 이름은 최종 계산값이 할당되는
변수이므로 선정시 주의하셔야 합니다.
switch값으로 함수를 만드실 의향이시라면
사용자 함수의 이름을 switch로 하시고
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
//PLOT1(HIGH[1], "ZIGUP");
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
//PLOT1(LOW[1], "ZIGUP");
SWITCH = 0;
}
}
위 식을 붙여넣기 하시면 됩니다.
또는
zigzag와 같이 다른이름으로 사용자함수를 만드신다면
사용자함수 이름 : zigzag
VARS: SWITCH(0);
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
ZigZag = HIGH[1];
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
ZigZag = LOW[1];
SWITCH = 0;
}
}
와 같이 작성할 수 있습니다.
사용자 함수의 이름으로 최종값이 할당되게 하고
그 이름은 새로작성시 이름으로 넣었기 때문에
따로 선언하지 않습니다.
즐거운 하루되세요
> 게바라 님이 쓴 글입니다.
> 제목 : 사용자 함수를 만들고 싶은데...
> 수소하십니다..
아래 지표식을 사용자 함수로 만들고 싶은데 검증해 보면
" 함수가 값을 리턴하고 있지 않습니다 함수는 반드시 값을 리턴해야 합니다"
이런 메세지가 뜹니다
어떻게 해야 하나요?
감사합니다
VARS: SWITCH(0);
IF SWITCH == 0 THEN {
IF HIGH[1] > HIGH[2] AND HIGH[1] > HIGH THEN {
//PLOT1(HIGH[1], "ZIGUP");
SWITCH = 1;
}
}
IF SWITCH == 1 THEN {
IF LOW[1] < LOW[2] AND LOW[1] < LOW THEN {
//PLOT1(LOW[1], "ZIGUP");
SWITCH = 0;
}
}
다음글
이전글