아래 TS의 함수를 예스에서 사용하고 싶은데 함수 사용방법설명쫌 부탁드립니다
숫자형, 문자형,논리형으로 나오는데 이 부분을 어떻게 지정해서 만들어야 되나요?
inputs:
Length( numericsimple ),
oBullishEngulfing( numericref ),
oBearishEngulfing( numericref ) ;
variables:
Body( 0 ),
PriceAvg( 0 ),
BodyAvg( 0 ) ;
Body = MaxList( Close, Open ) - MinList( Close, Open ) ;
PriceAvg = XAverage( Close, Length ) ;
BodyAvg = XAverage( Body, Length ) ;
oBullishEngulfing = 0 ;
oBearishEngulfing = 0 ;
if CurrentBar > 1 then
begin
if Close < PriceAvg
{ TREND IS down }
and Close > Open
{ CURRENT BODY white... }
and Body > BodyAvg
{ ...AND LONG }
and Close[1] < Open[1]
{ PREVIOUS BODY black... }
and Body[1] < BodyAvg[1]
{ ...AND SMALL }
and Close >= Open[1]
{ BullEng COND 1 }
and Open <= Close[1]
{ BullEng COND 2 }
and ( Close > Open[1] or Open < Close[1] )
{ BullEng COND 3 }
then
oBullishEngulfing = 1
else if Close > PriceAvg
{ TREND IS up }
and Close < Open
{ CURRENT BODY black... }
and Body > BodyAvg
{ ...AND LONG }
and Close[1] > Open[1]
{ PREVIOUS BODY white... }
and Body[1] < BodyAvg[1]
{ ...AND SMALL }
and Close <= Open[1]
{ BearEng COND 1 }
and Open >= Close[1]
{ BearEng COND 2 }
and ( Close < Open[1] or Open > Close[1] )
{ BearEng COND 3 }
then
oBearishEngulfing = 1 ;
end ;
C_BullEng_BearEng = 1 ;
답변 1
예스스탁
예스스탁 답변
2025-06-04 13:07:53
안녕하세요
예스스탁입니다.
1. 함수식
사용자함수명 : C_BullEng_BearEng
반환값형 : 숫자형
inputs:
Length( numericsimple ),
oBullishEngulfing( numericref ),
oBearishEngulfing( numericref ) ;
variables:
Body( 0 ),
PriceAvg( 0 ),
BodyAvg( 0 ) ;
Body = MaxList( Close, Open ) - MinList( Close, Open ) ;
PriceAvg = EmA( Close, Length ) ;
BodyAvg = EmA( Body, Length ) ;
oBullishEngulfing = 0 ;
oBearishEngulfing = 0 ;
if CurrentBar > 1 then
{
if Close < PriceAvg
#{ TREND IS down }
and Close > Open
#{ CURRENT BODY white... }
and Body > BodyAvg
#{ ...AND LONG }
and Close[1] < Open[1]
#{ PREVIOUS BODY black... }
and Body[1] < BodyAvg[1]
#{ ...AND SMALL }
and Close >= Open[1]
#{ BullEng COND 1 }
and Open <= Close[1]
#{ BullEng COND 2 }
and ( Close > Open[1] or Open < Close[1] )
#{ BullEng COND 3 }
then
oBullishEngulfing = 1 ;
else if Close > PriceAvg
#{ TREND IS up }
and Close < Open
#{ CURRENT BODY black... }
and Body > BodyAvg
#{ ...AND LONG }
and Close[1] > Open[1]
#{ PREVIOUS BODY white... }
and Body[1] < BodyAvg[1]
#{ ...AND SMALL }
and Close <= Open[1]
#{ BearEng COND 1 }
and Open >= Close[1]
#{ BearEng COND 2 }
and ( Close < Open[1] or Open > Close[1] )
#{ BearEng COND 3 }
then
oBearishEngulfing = 1 ;
}
C_BullEng_BearEng = 1 ;
2.
위 내용을 사용자함수로 만드신 후에 아래와 같이 수식에서 사용하시면 됩니다.
VAR1 = C_BullEng_BearEng(40,value1,Value2);
Plot1(value1);
PLOT2(Value2);
함수에서 input변수를 numericref로 지정하면 수식내에서 계산한 값이 해당 변수로 다시 리턴됩니다.
그러므로 두번째, 세번째 매개변수에 변수 지정해 BullishEngulfing값, BearishEngulfing값을 리턴받아 사용하시면 됩니다.
함수자체는 1만 리턴되므로 var1은 1입니다.
즐거운 하루되세요
> 소드노 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래 TS의 함수를 예스에서 사용하고 싶은데 함수 사용방법설명쫌 부탁드립니다
숫자형, 문자형,논리형으로 나오는데 이 부분을 어떻게 지정해서 만들어야 되나요?
inputs:
Length( numericsimple ),
oBullishEngulfing( numericref ),
oBearishEngulfing( numericref ) ;
variables:
Body( 0 ),
PriceAvg( 0 ),
BodyAvg( 0 ) ;
Body = MaxList( Close, Open ) - MinList( Close, Open ) ;
PriceAvg = XAverage( Close, Length ) ;
BodyAvg = XAverage( Body, Length ) ;
oBullishEngulfing = 0 ;
oBearishEngulfing = 0 ;
if CurrentBar > 1 then
begin
if Close < PriceAvg
{ TREND IS down }
and Close > Open
{ CURRENT BODY white... }
and Body > BodyAvg
{ ...AND LONG }
and Close[1] < Open[1]
{ PREVIOUS BODY black... }
and Body[1] < BodyAvg[1]
{ ...AND SMALL }
and Close >= Open[1]
{ BullEng COND 1 }
and Open <= Close[1]
{ BullEng COND 2 }
and ( Close > Open[1] or Open < Close[1] )
{ BullEng COND 3 }
then
oBullishEngulfing = 1
else if Close > PriceAvg
{ TREND IS up }
and Close < Open
{ CURRENT BODY black... }
and Body > BodyAvg
{ ...AND LONG }
and Close[1] > Open[1]
{ PREVIOUS BODY white... }
and Body[1] < BodyAvg[1]
{ ...AND SMALL }
and Close <= Open[1]
{ BearEng COND 1 }
and Open >= Close[1]
{ BearEng COND 2 }
and ( Close < Open[1] or Open > Close[1] )
{ BearEng COND 3 }
then
oBearishEngulfing = 1 ;
end ;
C_BullEng_BearEng = 1 ;