커뮤니티

일 최고/저점

프로필 이미지
짱짱해야지
2021-03-11 17:01:34
965
글번호 147008
답변완료
1. <값구하기> 5거래일 동안 500틱봉에서 1일 동안의 최고점/최저점의 각각 H/L값 5개씩 그리고 이 10개 지점에서의 Index값 10개를 구하고 싶습니다. 그리고 한가지 조건은 오늘로 부터 과거 5일까지 차트에 점도표(최고값 red, 최저값 Blue)로 표시되고 이전 값은 차트에서 삭제!!! 2. 5일의 일 최고/최저값에 순위 부여(H값은 큰것부터 1, L값은 최소값 부터 1) 3. <선긋기> 5일전 최고점/최저점 -> 오늘과 1일전 최고점/최저점의 각각의 연결선 4개 5일전 최고점 -> 오늘과 1일전의 최저점의 연결선 2개 4. 마지막 질문은 barindex와 index의 차이는 무엇인가요? 항상 감사드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-12 14:10:57

안녕하세요 예스스탁입니다. 1,2,3번식 아래식 참고하시기 바랍니다. 올려주신 내용의 모든 출력이 일반 plot으로는 가능하지 않아 추세선과 텍스트 함수로 출력되게 작성했습니다. var : cnt(0); Array : HH[5](0),LL[5](0),HI[5](0),LI[5](0); Array : HTL1[5](0),LTL1[5](0); Array : HTL2[5](0),LTL2[5](0); if Bdate != Bdate[1] Then { HH[0] = H; Hi[0] = index; LL[0] = l; LI[0] = Index; For cnt = 1 to 4 { HH[cnt] = HH[cnt-1][1]; Hi[cnt] = Hi[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; Li[cnt] = Li[cnt-1][1]; } for cnt = 0 to 4 { #이전일 출력은 지움 TL_Delete(HTL1[cnt]); TL_Delete(LTL1[cnt]); TL_Delete(HTL2[cnt]); TL_Delete(LTL2[cnt]); if HH[cnt] > 0 and LL[cnt] > 0 Then { #최근 5일간 최고가와 최저가를 점선으로 출력 HTL1[cnt] = TL_new(sDate[Index-Hi[cnt]],sTime[Index-Hi[cnt]],HH[cnt],NextBarSdate,NextBarStime,HH[cnt]); LTL1[cnt] = TL_new(sDate[Index-Li[cnt]],sTime[Index-Li[cnt]],LL[cnt],NextBarSdate,NextBarStime,LL[cnt]); TL_SetColor(HTL1[cnt],RED); TL_SetColor(LTL1[cnt],BLUE); TL_SetExtRight(HTL1[cnt],true); TL_SetExtRight(LTL1[cnt],true); TL_SetStyle(HTL1[cnt],3); TL_SetStyle(LTL1[cnt],3); #과거일 최고가/최저가와 당일 최고가/최저가 연결 if cnt >= 1 Then { HTL2[cnt] = TL_new(sDate[Index-Hi[cnt]],sTime[Index-Hi[cnt]],HH[cnt],Sdate,Stime,HH[0]); LTL2[cnt] = TL_new(sDate[Index-Li[cnt]],sTime[Index-Li[cnt]],LL[cnt],Sdate,Stime,LL[0]); TL_SetColor(HTL2[cnt],MAGENTA); TL_SetColor(LTL2[cnt],CYAN); TL_SetStyle(HTL2[cnt],1); TL_SetStyle(LTL2[cnt],1); } } } } Else { if H > HH[0] Then { HH[0] = H; HI[0] = Index; #당일고가 갱신시 당일최고가선 변경 TL_SetBegin(HTL1[0],sDate[Index-Hi[0]],sTime[Index-Hi[0]],HH[0]); TL_SetEnd(HTL1[0],NextBarSdate,NextBarStime,HH[0]); #과거일 최고가와 당일 최고가 연결선의 끝을 현재봉의 고가로 변경 for cnt = 1 to 4 { if HH[cnt] > 0 and LL[cnt] > 0 Then { TL_SetEnd(HTL2[cnt],Sdate,Stime,HH[0]); } } } if L < LL[0] Then { LL[0] = L; LI[0] = Index; #당일저가 갱신시 당일최고가선 변경 TL_SetBegin(LTL1[0],sDate[Index-Li[0]],sTime[Index-Li[0]],LL[0]); TL_SetEnd(LTL1[0],NextBarSdate,NextBarStime,LL[0]); #과거일 최저가와 당일 최저가 연결선의 끝을 현재봉의 저가로 변경 for cnt = 1 to 4 { if HH[cnt] > 0 and LL[cnt] > 0 Then { TL_SetEnd(LTL2[cnt],Sdate,Stime,LL[0]); } } } } Var : X(0),Y(0),tempmax(0),tempMin(0),Hindex(0),Lindex(0); Array : HV[5](0),nHV[5](0),nHi[5](0),LV[5](0),nLV[5](0),nLi[5](0),HTX[5](0),LTX[5](0); if HH[4] > 0 and LL[4] > 0 Then { for cnt = 0 to 4 { HV[cnt] = HH[cnt]; LV[cnt] = LL[cnt]; } For Y = 0 to 4 { tempmax = -99999999; tempmin = 99999999; For X = 0 to 4 { if (HV[X] > tempmax) then { tempmax = HV[X]; Hindex = X; } if (LV[X] < tempmin) then { tempmin = LV[X]; Lindex = X; } } nHV[Y] = tempmax; HV[Hindex] = -99999999; NHi[Y] = Hindex; nLV[Y] = tempmax; LV[Lindex] = 99999999; nLi[Y] = Lindex; } for cnt = 0 to 4 { Text_Delete(HTX[cnt]); Text_Delete(LTX[cnt]); HTX[cnt] = Text_new(sDate[Index-HI[NHi[cnt]]],sTime[Index-HI[NHi[cnt]]],HH[NHi[cnt]],NumToStr(cnt+1,0)); Text_SetStyle(HTX[cnt],2,1); Text_SetColor(HTX[cnt],RED); LTX[cnt] = Text_new(sDate[Index-LI[NLi[cnt]]],sTime[Index-LI[NLi[cnt]]],LL[NLi[cnt]],NumToStr(cnt+1,0)); Text_SetStyle(LTX[cnt],2,0); Text_SetColor(LTX[cnt],BLUE); } } 즐거운 하루되세요 > 짱짱해야지 님이 쓴 글입니다. > 제목 : 일 최고/저점 > 1. <값구하기> 5거래일 동안 500틱봉에서 1일 동안의 최고점/최저점의 각각 H/L값 5개씩 그리고 이 10개 지점에서의 Index값 10개를 구하고 싶습니다. 그리고 한가지 조건은 오늘로 부터 과거 5일까지 차트에 점도표(최고값 red, 최저값 Blue)로 표시되고 이전 값은 차트에서 삭제!!! 2. 5일의 일 최고/최저값에 순위 부여(H값은 큰것부터 1, L값은 최소값 부터 1) 3. <선긋기> 5일전 최고점/최저점 -> 오늘과 1일전 최고점/최저점의 각각의 연결선 4개 5일전 최고점 -> 오늘과 1일전의 최저점의 연결선 2개 4. 마지막 질문은 barindex와 index의 차이는 무엇인가요? 항상 감사드립니다.