커뮤니티

고저점 질문입니다

프로필 이미지
코윈
2012-11-27 15:24:03
380
글번호 56863
답변완료

첨부 이미지

안녕하세요, 항상 친절한 답변 감사합니다. 고/저점을 swinglow, swinghigh 로 잡아보려고 합니다. 아래소스의 결과물을 첨부하였는데요. 그림판으로 정말 표시되어야 하는 날짜에만 초록색선으로 표시하였습니다. 빨간색은 저점, 파란색은 고점을 표시합니다. 다른날짜도 표시되는 이유를 모르겠습니다... 제가 이해기로는, SwingHighBar 에서 Period(20)일 중 가운데 기준으로 Left, Right 중 가장 높은 값의 위치로 알고있는데요. Left,Right 중 가장 높은 값은 하나 뽑았으니, 좌우 범위(아래 예로는 5)안에서 SwingHighBar 가 또 찾아지면 안되는거 아닌가요? var: period(0), percent(0), left(5), right(5), i(1), swing_low(0), swing_high(0); swing_low = SwingLowBar(1, L, left, right, 20); swing_high = SwingHighBar(1, H, left, right, 20); If ( swing_low != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", BLUE); } Else If ( swing_high != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", RED); } Else{ NoPlot(1); } - 그리고, 전체 봉의 갯수는 어떤 변수를 써야하나요?
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-11-27 17:31:02

안녕하세요 예스스탁입니다. SwingLowBar(1, L, left, right, 20) 는 최근 20봉 안에서 좌측 5개봉 우측 5개봉보다 작은 저가가 발생하면 그 인덱스를 리턴해 주고 값이 없으면 -1값을 리턴합니다. 가령 10개봉전에 해당 조건이 만족하는 봉이 있으면 10을 리턴하고 한봉뒤에는 11을 리턴하고 또 한봉 뒤에는 12가 리턴되므로 모두 -1이 아니므로 조건이 성립이 됩니다. 작성하신 식은 20개봉안에 그런 조건이 만족한 봉이 있으면 봉에 색을 칠하라는 내용입니다. 그러므로 현재 발생시점만을 따져야 할때는 SwingLowBar(1, L, left, right, left+right+1) 로 작성하셔야 합니다. 수정한 식입니다. var: period(0), percent(0), left(5), right(5), i(1), swing_low(0), swing_high(0); swing_low = SwingLowBar(1, L, left, right, left+right+1); swing_high = SwingHighBar(1, H, left, right, left+right+1); If ( swing_low != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", BLUE); } if ( swing_high != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", RED); } 즐거운 하루되세요 > 코윈 님이 쓴 글입니다. > 제목 : 고저점 질문입니다 > 안녕하세요, 항상 친절한 답변 감사합니다. 고/저점을 swinglow, swinghigh 로 잡아보려고 합니다. 아래소스의 결과물을 첨부하였는데요. 그림판으로 정말 표시되어야 하는 날짜에만 초록색선으로 표시하였습니다. 빨간색은 저점, 파란색은 고점을 표시합니다. 다른날짜도 표시되는 이유를 모르겠습니다... 제가 이해기로는, SwingHighBar 에서 Period(20)일 중 가운데 기준으로 Left, Right 중 가장 높은 값의 위치로 알고있는데요. Left,Right 중 가장 높은 값은 하나 뽑았으니, 좌우 범위(아래 예로는 5)안에서 SwingHighBar 가 또 찾아지면 안되는거 아닌가요? var: period(0), percent(0), left(5), right(5), i(1), swing_low(0), swing_high(0); swing_low = SwingLowBar(1, L, left, right, 20); swing_high = SwingHighBar(1, H, left, right, 20); If ( swing_low != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", BLUE); } Else If ( swing_high != -1 ) Then { PlotPaintBar(Low * 0.99, Low*0.9, "고저점", RED); } Else{ NoPlot(1); } - 그리고, 전체 봉의 갯수는 어떤 변수를 써야하나요?