커뮤니티

좀 복잡한 질문

프로필 이미지
하얀깃털
2010-11-05 19:59:40
801
글번호 33359
답변완료
선물 1분봉이나 3분 5분 봉에서 30분 이나 60분봉의 일목 균형표 값들을 구해보려다 보니 배열 처리에 문제가 생기는지 죽어버리네요. 아래가 제 코드 입니다. 어디가 잘못된건지 궁금하구요. 두번째로 15:00~15:15분에 생기는 마지막 봉의 고저 값도 여기 반영하고 싶은데 가능할런지 궁금합니다. Inputs : ₩ChartTime(1), ArrTime(30) ; Var : Cnt(0) ; Array : ArrHigh[52](0), ArrLow[52](0) ; If ((STime > 090000 And STime <= 150000) And TimeToMinutes(stime)%30 == 0) #### Or (STime > 150000 And STime == 151500) Then { For Cnt = 1 To 51 { ArrHigh[Cnt] = ArrHigh[Cnt-1][1] ; ArrLow[Cnt] = ArrLow[Cnt-1][1] ; } ArrHigh[0] = Highest(High, ArrTime/ChartTime) ; ArrLow[0] = Lowest(Low, ArrTime/ChartTime) ; } Value1 = Round((Highest(ArrHigh, 9) + Lowest(ArrLow, 9)) / 2, 2) ; //기준선 Value2 = Round((Highest(ArrHigh, 26) + Lowest(ArrLow, 26)) / 2, 2) ; //전환선 Value3 = Round((TurnLine + StndLine) / 2, 2); //선행스팬1 Value4 = Round((Highest(ArrHigh, 52) + Lowest(ArrLow, 52) ) / 2, 2) ;//선행스팬2
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-11-06 00:27:26

안녕하세요 예스스탁입니다. Value1 = Round((Highest(ArrHigh[0], 9) + Lowest(ArrLow[0], 9)) / 2, 2) ; //기준선 Value2 = Round((Highest(ArrHigh[0], 26) + Lowest(ArrLow[0], 26)) / 2, 2) ; //전환선 #Value3 = Round((TurnLine + StndLine) / 2, 2); //선행스팬1 Value4 = Round((Highest(ArrHigh[0], 52) + Lowest(ArrLow[0], 52) ) / 2, 2) ;//선행스팬2 ArrHigh와 ArrLow는 배열변수입니다. 사용하고자 하는 배열변수의 방번호를 꼭 지정하셔야 합니다. 분봉에서 타분봉의 값을 구하시므로 Round((Highest(ArrHigh[0], 9) + Lowest(ArrLow[0], 9)) 와 같이 계산하시면 단지 9개봉의 ArrHigh[0], 입니다. 따로 풀어서 저장된 값을 사용할 수 있도록 하셔야 합니다. 식을 아래와 같이 몇군데 수정했습니다. Inputs : ChartTime(1), ArrTime(30) ; Var : Cnt(0),count(0),HH9(0),LL9(0),HH26(0),LL26(0),HH52(0),LL52(0); Array : ArrHigh[52](0), ArrLow[52](0) ; If (dayindex == 0 or TimeToMinutes(stime)%ArrTime == 0)Then { ArrHigh[0] = H; ArrLow[0] = L; For Cnt = 1 To 51 { ArrHigh[Cnt] = ArrHigh[Cnt-1][1] ; ArrLow[Cnt] = ArrLow[Cnt-1][1] ; } } if H > ArrHigh[0] Then ArrHigh[0] = H; if L < ArrLow[0] Then ArrLow[0] = L; HH9 = ArrHigh[0]; LL9 = ArrLow[0]; HH26 = ArrHigh[0]; LL26 = ArrLow[0]; HH52 = ArrHigh[0]; LL52 = ArrLow[0]; for Count = 0 to 51{ if count < 9 Then{ if ArrHigh[Count] > HH9 Then HH9 = ArrHigh[Count]; if ArrLow[Count] < LL9 Then LL9 = ArrLow[Count]; } if count < 26 Then{ if ArrHigh[Count] > HH26 Then HH26 = ArrHigh[Count]; if ArrLow[Count] < LL26 Then LL26 = ArrLow[Count]; } if count < 52 Then{ if ArrHigh[Count] > HH52 Then HH52 = ArrHigh[Count]; if ArrLow[Count] < LL52 Then LL52 = ArrLow[Count]; } } Value1 = (HH9+ LL9) / 2 ; //기준선 Value2 = (HH26 + LL26) / 2 ; //전환선 Value3 = (value1 + value2) / 2; //선행스팬1 Value4 = (HH52 + LL52 ) / 2;//선행스팬2 plot1(value1); plot2(value2); plot3(value3); plot4(value4); 즐거운 하루되세요 > 하얀깃털 님이 쓴 글입니다. > 제목 : 좀 복잡한 질문 > 선물 1분봉이나 3분 5분 봉에서 30분 이나 60분봉의 일목 균형표 값들을 구해보려다 보니 배열 처리에 문제가 생기는지 죽어버리네요. 아래가 제 코드 입니다. 어디가 잘못된건지 궁금하구요. 두번째로 15:00~15:15분에 생기는 마지막 봉의 고저 값도 여기 반영하고 싶은데 가능할런지 궁금합니다. Inputs : ₩ChartTime(1), ArrTime(30) ; Var : Cnt(0) ; Array : ArrHigh[52](0), ArrLow[52](0) ; If ((STime > 090000 And STime <= 150000) And TimeToMinutes(stime)%30 == 0) #### Or (STime > 150000 And STime == 151500) Then { For Cnt = 1 To 51 { ArrHigh[Cnt] = ArrHigh[Cnt-1][1] ; ArrLow[Cnt] = ArrLow[Cnt-1][1] ; } ArrHigh[0] = Highest(High, ArrTime/ChartTime) ; ArrLow[0] = Lowest(Low, ArrTime/ChartTime) ; } Value1 = Round((Highest(ArrHigh, 9) + Lowest(ArrLow, 9)) / 2, 2) ; //기준선 Value2 = Round((Highest(ArrHigh, 26) + Lowest(ArrLow, 26)) / 2, 2) ; //전환선 Value3 = Round((TurnLine + StndLine) / 2, 2); //선행스팬1 Value4 = Round((Highest(ArrHigh, 52) + Lowest(ArrLow, 52) ) / 2, 2) ;//선행스팬2