커뮤니티

함수질문드립니다.

프로필 이미지
stockric
2018-06-29 01:22:35
227
글번호 120158
답변완료
1. 함수이름 pivotlowvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN begin CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR >= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR > PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTLOWVSBAR = CURRENTBAR - PVTBAR ELSE PIVOTLOWVSBAR = -1; //////// 2. pivothighvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN BEGIN CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR <= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR < PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTHIGHVSBAR = CURRENTBAR - PVTBAR ELSE PIVOTHIGHVSBAR = -1; 3. volatility Inputs: Length(NumericSimple); If CurrentBar >= 1 AND Length <> 0 Then { If CurrentBar == 1 Then <----- currentbar = 1 이다를 표현하고 싶은데 안되네요... Volatility = TrueRange; Else Volatility = ((Length - 1) * Volatility[1] + TrueRange) / Length; } 1 2 3의 경우 수식을 모두 숫자형으로 해야하는지요? 감사합니다.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-06-29 09:39:27

안녕하세요 예스스탁입니다. 반환값형은 모두 숫자형입니다. 예스랭귀지에서 같다는 == 입니다. 3번과 같은 경우에는 그대로 사용하시면 됩니다. 1. pivotlowvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN begin CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR >= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR > PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTLOWVSBAR = CURRENTBAR - PVTBAR; ELSE PIVOTLOWVSBAR = -1; 2. pivothighvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN BEGIN CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR <= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR < PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTHIGHVSBAR = CURRENTBAR - PVTBAR; ELSE PIVOTHIGHVSBAR = -1; 3.volatility Inputs: Length(NumericSimple); If CurrentBar >= 1 AND Length <> 0 Then { If CurrentBar == 1 Then Volatility = TrueRange; Else Volatility = ((Length - 1) * Volatility[1] + TrueRange) / Length; } 즐거운 하루되세요 > stockric 님이 쓴 글입니다. > 제목 : 함수질문드립니다. > 1. 함수이름 pivotlowvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN begin CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR >= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR > PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTLOWVSBAR = CURRENTBAR - PVTBAR ELSE PIVOTLOWVSBAR = -1; //////// 2. pivothighvsbar INPUTS: PRICE(NUMERICSERIES), LSTREN(NUMERICSIMPLE), RSTREN(NUMERICSIMPLE), LENGTH(NUMERIC); VARS: SHBAR(0), MAINLOOP(0), PREPVT(0), PVTBAR(0); PREPVT = 0; FOR MAINLOOP = LENGTH-1 DOWNTO RSTREN BEGIN CONDITION1 = TRUE; CONDITION2 = TRUE; SHBAR = PRICE[MAINLOOP]; FOR VALUE1 = MAINLOOP - RSTREN TO MAINLOOP -1 BEGIN IF SHBAR <= PRICE[VALUE1] THEN CONDITION1 = FALSE; END; IF CONDITION1 THEN BEGIN FOR VALUE1 = MAINLOOP + 1 TO MAINLOOP + LSTREN BEGIN IF SHBAR < PRICE[VALUE1] THEN CONDITION2 = FALSE; END; END; IF CONDITION1 AND CONDITION2 THEN BEGIN PREPVT = MAINLOOP; PVTBAR = CURRENTBAR - MAINLOOP; END; END; IF PREPVT <> 0 THEN PIVOTHIGHVSBAR = CURRENTBAR - PVTBAR ELSE PIVOTHIGHVSBAR = -1; 3. volatility Inputs: Length(NumericSimple); If CurrentBar >= 1 AND Length <> 0 Then { If CurrentBar == 1 Then <----- currentbar = 1 이다를 표현하고 싶은데 안되네요... Volatility = TrueRange; Else Volatility = ((Length - 1) * Volatility[1] + TrueRange) / Length; } 1 2 3의 경우 수식을 모두 숫자형으로 해야하는지요? 감사합니다.