커뮤니티

전저점 전고점을 찾는 코드

프로필 이미지
퀀트드래곤
2019-08-22 15:04:15
397
글번호 131364
답변완료
다음과 같이 코딩을 했는데, 실제로 찍어보면 근소한 차이로 전고점과 전저점이 다르네요 실제로 봉 30개만 띄워놓고 해봐도 오늘 봉을 찍어보면 이전의 전고점과 전저점이 다르게 나오는데 왜그런건가요. 혹시 코드가 틀렸다면 30일간의 (오늘봉을 제외하고)전고점과 전저점을 찾는 코드를 부탁드릴게요 스윙하이, 스윙로우는 메뉴얼과 다른 대답들을 봐도 이해를 못하겠더라구요.. 그리고 제가 생각하던 전저점, 전고점 개념과 다른거같아서 그냥 특정 기간 내에 가장 높은점과 가장 낮은 점을 찾는것이 목표입니다. # 30일간의 전고점과 전저점을 찾아주는 코드 (스윙을 쓰진 않음. 스윙은 무슨 뜻인지도 모르겠음) input : BeforePeriod(30); var : BeforeHigh(0), BeforeLow(0), Cnt(0), barCnt(0); for Cnt = 1 To BeforePeriod { if BeforeHigh < H[Cnt] Then BeforeHigh = H[Cnt]; if BeforeLow > L[Cnt] Then BeforeLow = L[Cnt]; } PLOT1(BeforeHigh, "전고점"); PLOT2(BeforeLow, "전저점");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-08-22 17:11:31

안녕하세요 예스스탁입니다. 1 for문 전에 기초값의 필요여부를 판단하셔야 합니다. BeforeLow가 기본값이 0입니다. 어떤 종목도 0보다 작은 값을 가지지 않기 때문에 BeforeLow > L[Cnt]가 성립되지 않습니다. 1봉전 부터 30봉전 까지의 최고가와 최저가를 계산하므로 초기값으로 1봉전 고가와 저가를 지정해 주시면 됩니다. input : BeforePeriod(30); var : BeforeHigh(0), BeforeLow(0), Cnt(0), barCnt(0); BeforeHigh = H[1]; Beforelow = L[1]; for Cnt = 1 To BeforePeriod { if BeforeHigh < H[Cnt] Then BeforeHigh = H[Cnt]; if BeforeLow > L[Cnt] Then BeforeLow = L[Cnt]; } PLOT1(BeforeHigh, "전고점"); PLOT2(BeforeLow, "전저점"); 2 최근 n개봉의 최고값과 최저값이면 for문은 필요가 업습니다. 아래와 같이 작성하시면 됩니다. input : BeforePeriod(30); var : BeforeHigh(0), BeforeLow(0), Cnt(0), barCnt(0); BeforeHigh = highest(H,BeforePeriod)[1]; Beforelow = lowest(L,BeforePeriod)[1]; PLOT1(BeforeHigh, "전고점"); PLOT2(BeforeLow, "전저점"); 분봉이하에서 전일기준 30일간이면 아래와 같이 코딩하셔야 합니다. input : BeforePeriod(30); var : BeforeHigh(0), BeforeLow(0), Cnt(0), barCnt(0); BeforeHigh = DayHigh(1); Beforelow = DayLow(1); for Cnt = 1 To BeforePeriod { if BeforeHigh < DayHigh(Cnt) Then BeforeHigh = DayHigh(Cnt); if BeforeLow > DayLow(Cnt) Then BeforeLow = DayLow(Cnt); } PLOT1(BeforeHigh, "전고점"); PLOT2(BeforeLow, "전저점"); 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 전저점 전고점을 찾는 코드 > 다음과 같이 코딩을 했는데, 실제로 찍어보면 근소한 차이로 전고점과 전저점이 다르네요 실제로 봉 30개만 띄워놓고 해봐도 오늘 봉을 찍어보면 이전의 전고점과 전저점이 다르게 나오는데 왜그런건가요. 혹시 코드가 틀렸다면 30일간의 (오늘봉을 제외하고)전고점과 전저점을 찾는 코드를 부탁드릴게요 스윙하이, 스윙로우는 메뉴얼과 다른 대답들을 봐도 이해를 못하겠더라구요.. 그리고 제가 생각하던 전저점, 전고점 개념과 다른거같아서 그냥 특정 기간 내에 가장 높은점과 가장 낮은 점을 찾는것이 목표입니다. # 30일간의 전고점과 전저점을 찾아주는 코드 (스윙을 쓰진 않음. 스윙은 무슨 뜻인지도 모르겠음) input : BeforePeriod(30); var : BeforeHigh(0), BeforeLow(0), Cnt(0), barCnt(0); for Cnt = 1 To BeforePeriod { if BeforeHigh < H[Cnt] Then BeforeHigh = H[Cnt]; if BeforeLow > L[Cnt] Then BeforeLow = L[Cnt]; } PLOT1(BeforeHigh, "전고점"); PLOT2(BeforeLow, "전저점");