커뮤니티

문의 드립니다.

프로필 이미지
7out
2014-12-03 19:46:09
209
글번호 81035
답변완료

첨부 이미지

아래 수식에서 지금현재 'hOpen'값을 인식을 못하는것 같습니다. plotpaintbar로 해서 나오는 결과는 hOpen값이 N/A로 잡히면서 무조건 hClose < hOpen으로 인식하는데 어디서 잘못된건지 한번 확인 부탁드리겠습니다.. 혹시 haOpen = (haOpen[previous bar] + haClose[previous bar])/2 이것을 haOpen = (haOpen[1]+ haClose[1])/2; 표현했는데 여기서 문제가 생긴건지 아니면 추가조건을 걸어야지 haOpen값을 구할 수 있는건지 꼭 답변 부탁드립니다. p.s: 수식 검증에서는 아무런 문제 없다고 나옵니다. //------------------------------------------------------------------------------- var : xOpen(0),xHigh(0),xLow(0),xClose(0), haClose(0),haOpen(0),haHigh(0),haLow(0),hClose(0),hOpen(0),hHigh(0),hLow(0); xOpen = MA(Open,6); xHigh = MA(High,6); xLow = MA(Low,6); xClose = MA(Close,6); haClose = (xOpen + xHigh + xLow + xClose)/4; haOpen = (haOpen[1]+ haClose[1])/2; haHigh = max(xHigh, haOpen); haLow = min(xLow, haOpen); hOpen = WMA(haOpen,2); hHigh = WMA(haHigh,2); hLow = WMA(haLow,2); hClose = WMA(haClose,2); if hClose > hOpen Then PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",red); Else PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",blue); //-------------------------------------------------------------------------------
강조
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-12-04 11:33:00

안녕하세요 예스스탁입니다. haOpen = (haOpen[1]+ haClose[1])/2; haOpen이 이전값이 존재하지 않은 상태에서 계산식이 이루어 지므로 N/A가 됩니다. 아래와 같이 변경되시면 수식에 필요로 하는 계산이 모두 충족되는 봉이전에는 봉의 시가를 저장하고 그 이후에는 Haopen의 이전값을 이용해 계산을 하게 됩니다. if CurrentBar <= 1 Then Haopen = O; Else haOpen = (haOpen+ haClose[1])/2; 아래는 수정한 식입니다. var : xOpen(0),xHigh(0),xLow(0),xClose(0), haClose(0),haOpen(0),haHigh(0),haLow(0),hClose(0),hOpen(0),hHigh(0),hLow(0); xOpen = MA(Open,6); xHigh = MA(High,6); xLow = MA(Low,6); xClose = MA(Close,6); haClose = (xOpen + xHigh + xLow + xClose)/4; if CurrentBar <= 1 Then Haopen = O; Else haOpen = (haOpen+ haClose[1])/2; haHigh = max(xHigh, haOpen); haLow = min(xLow, haOpen); hOpen = WMA(haOpen,2); hHigh = WMA(haHigh,2); hLow = WMA(haLow,2); hClose = WMA(haClose,2); if hClose > hOpen Then PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",red); Else PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",blue); 즐거운 하루되세요 > 7out 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 아래 수식에서 지금현재 'hOpen'값을 인식을 못하는것 같습니다. plotpaintbar로 해서 나오는 결과는 hOpen값이 N/A로 잡히면서 무조건 hClose < hOpen으로 인식하는데 어디서 잘못된건지 한번 확인 부탁드리겠습니다.. 혹시 haOpen = (haOpen[previous bar] + haClose[previous bar])/2 이것을 haOpen = (haOpen[1]+ haClose[1])/2; 표현했는데 여기서 문제가 생긴건지 아니면 추가조건을 걸어야지 haOpen값을 구할 수 있는건지 꼭 답변 부탁드립니다. p.s: 수식 검증에서는 아무런 문제 없다고 나옵니다. //------------------------------------------------------------------------------- var : xOpen(0),xHigh(0),xLow(0),xClose(0), haClose(0),haOpen(0),haHigh(0),haLow(0),hClose(0),hOpen(0),hHigh(0),hLow(0); xOpen = MA(Open,6); xHigh = MA(High,6); xLow = MA(Low,6); xClose = MA(Close,6); haClose = (xOpen + xHigh + xLow + xClose)/4; haOpen = (haOpen[1]+ haClose[1])/2; haHigh = max(xHigh, haOpen); haLow = min(xLow, haOpen); hOpen = WMA(haOpen,2); hHigh = WMA(haHigh,2); hLow = WMA(haLow,2); hClose = WMA(haClose,2); if hClose > hOpen Then PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",red); Else PlotPaintBar(hHigh,hLow,hOpen,hClose,"heiken ashi smoothed",blue); //-------------------------------------------------------------------------------