커뮤니티

문의드립니다.

프로필 이미지
예스매니아
2014-02-05 14:30:02
166
글번호 72201
답변완료
안녕하세요,,,새해 복 많이 받으세요~ rsi지표에서요,,, 1. 시간봉 rsi를 분봉에서 볼수 있게 (입력변수가 시간이 되겠지요) 2. 일봉 rsi를 분봉에서 볼수 있게 3. 주봉 rsi를 분봉에서 볼수 있게 해주시면 감사하겠습니다. 맨날 귀찮은 질문을 해드려서 죄송합니다.
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2014-02-05 16:20:57

안녕하세요 예스스탁입니다. 주차트의 데이터로 타주기의 값을 계산하는 것은 차트의 봉수등의 문제로 값의 차이가 발생할 수 있습니다. 이용에 참고하시기 바랍니다. 1. 60분봉 Inputs:Atime(60), Length(14); input : sig(10); var : SigSum(0),count2(0),RSIsig(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0), RSI(0); var : Dindex(0), PreUpAvg(0), preDownAvg(0),cnt1(0),TF(0); Array : CC[100](0),RSIV[100](0); if date != date[1] Then; var1 = TimeToMinutes(stime); TF = (TimeToMinutes(stime)-var1)%Atime; if dayindex() == 0 or (TF <= TF[1] and stime > stime[1]) Then{ for cnt1 = 1 to 99{ CC[cnt1] = CC[cnt1-1][1]; } PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; Dindex = dindex + 1; } CC[0] = C; If Dindex == Length Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End If Dindex > Length Then { UpAmt = CC[0]-Cc[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } if Dindex <=1 Then { UpAvg = 1; DownAvg = 1; } Else { UpAvg = (PreUpAvg * (Length - 1) + UpAmt) / Length; DownAvg = (preDownAvg * (Length - 1) + DownAmt) / Length; } } If UpAvg + DownAvg <> 0 Then RSIv[0] = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv[0] = 0; SigSum = 0; for count2 = 0 to sig-1{ SigSum = SigSum+RSIv[count2]; } RSIsig = SigSum/Sig; plot1(RSI,"RSI"); plot2(RSIsig,"sig"); 2. 일봉 Inputs: Length(9); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); var : RSIv(0),didx(0), UpAvg1(0), DownAvg1(0); if date != date[1] Then{ didx = didx+1; UpAvg1 = UpAvg[1]; DownAvg1 = DownAvg[1]; } If didx <= 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = DayClose(Counter) - DayClose(Counter+1); If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If didx > 1 AND Length > 0 Then Begin UpAmt = DayClose(0) - DayClose(1); If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg1 * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg1 * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; plot1(RSIV); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); 3. 주봉 Inputs:Length(9); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0), wRSI(0); var : Dindex(0), PreUpAvg(0), preDownAvg(0),cnt1(0); Array : CC[100](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ for cnt1 = 1 to 99{ CC[cnt1] = CC[cnt1-1][1]; } PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; Dindex = dindex + 1; } CC[0] = C; If Dindex <= Length Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End If Dindex > Length Then { UpAmt = CC[0]-Cc[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } if Dindex <=1 Then { UpAvg = 1; DownAvg = 1; } Else { UpAvg = (PreUpAvg * (Length - 1) + UpAmt) / Length; DownAvg = (preDownAvg * (Length - 1) + DownAmt) / Length; } } If UpAvg + DownAvg <> 0 Then wRSI = 100 * UpAvg / (UpAvg + DownAvg); Else wRSI = 0; plot1(wRSI,"RSI"); PlotBaseLine1(30, "기준선 30", gray); PlotBaseLine2(70, "기준선 70", gray); 즐거운 하루되세요 > 예스매니아 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요,,,새해 복 많이 받으세요~ rsi지표에서요,,, 1. 시간봉 rsi를 분봉에서 볼수 있게 (입력변수가 시간이 되겠지요) 2. 일봉 rsi를 분봉에서 볼수 있게 3. 주봉 rsi를 분봉에서 볼수 있게 해주시면 감사하겠습니다. 맨날 귀찮은 질문을 해드려서 죄송합니다.
프로필 이미지

예스스탁 예스스탁 답변

2014-02-17 16:48:13

안녕하세요 예스스탁입니다. 다시 작성했습니다. 60분 주기의 RSI입니다. input : Atime(60),RSIP(9),RSISP(10); var : rSI2(0),RSIS2(0); var : RSigSum(0),Rcount2(0),RSIsig(0); Var : RCounter(0), RDownAmt(0), RUpAmt(0), RUpSum(0), RDownSum(0), RUpAvg(0), RDownAvg(0); var : RDindex(0), RPreUpAvg(0), RpreDownAvg(0),Rcnt1(0),TF(0); Array : RC[100](0),RSIV1[100](0); TF = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (TF < TF[1] and stime > stime[1]) Then{ for Rcnt1 = 1 to 99{ RC[Rcnt1] = RC[Rcnt1-1][1]; RSIv1[Rcnt1] = RSIv1[Rcnt1-1][1]; } RPreUpAvg = RUpAvg[1]; RpreDownAvg = RDownAvg[1]; RDindex = Rdindex + 1; } RC[0] = C; If RDindex == RSIP Then Begin RUpSum = 0; RDownSum = 0; For RCounter = 0 To RSIP - 1 Begin RUpAmt = C[RCounter] - C[RCounter+1]; If RUpAmt >= 0 Then RDownAmt = 0; Else Begin RDownAmt = -RUpAmt; RUpAmt = 0; End; RUpSum = RUpSum + RUpAmt; RDownSum = RDownSum + RDownAmt; End; RUpAvg = RUpSum / RSIP; RDownAvg = RDownSum / RSIP; End If RDindex > RSIP Then { RUpAmt = RC[0]-Rc[1]; If RUpAmt >= 0 Then RDownAmt = 0; Else { RDownAmt = -RUpAmt; RUpAmt = 0; } if RDindex <=1 Then { RUpAvg = 1; RDownAvg = 1; } Else { RUpAvg = (RPreUpAvg * (RSIP - 1) + RUpAmt) / RSIP; RDownAvg = (RpreDownAvg * (RSIP - 1) + RDownAmt) / RSIP; } } If RUpAvg + RDownAvg <> 0 Then RSIv1[0] = 100 * RUpAvg / (RUpAvg + RDownAvg); Else RSIv1[0] = 0; RSI2 = RSIv1[0]; RSigSum = 0; for Rcount2 = 0 to RSISP-1{ RSigSum = RSigSum+RSIv1[Rcount2]; } RSIS2 = RSigSum/RSISP; plot1(RSI2); plot2(RSIS2); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 주차트의 데이터로 타주기의 값을 계산하는 것은 차트의 봉수등의 문제로 값의 차이가 발생할 수 있습니다. 이용에 참고하시기 바랍니다. 1. 60분봉 Inputs:Atime(60), Length(14); input : sig(10); var : SigSum(0),count2(0),RSIsig(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0), RSI(0); var : Dindex(0), PreUpAvg(0), preDownAvg(0),cnt1(0),TF(0); Array : CC[100](0),RSIV[100](0); if date != date[1] Then; var1 = TimeToMinutes(stime); TF = (TimeToMinutes(stime)-var1)%Atime; if dayindex() == 0 or (TF <= TF[1] and stime > stime[1]) Then{ for cnt1 = 1 to 99{ CC[cnt1] = CC[cnt1-1][1]; } PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; Dindex = dindex + 1; } CC[0] = C; If Dindex == Length Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End If Dindex > Length Then { UpAmt = CC[0]-Cc[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } if Dindex <=1 Then { UpAvg = 1; DownAvg = 1; } Else { UpAvg = (PreUpAvg * (Length - 1) + UpAmt) / Length; DownAvg = (preDownAvg * (Length - 1) + DownAmt) / Length; } } If UpAvg + DownAvg <> 0 Then RSIv[0] = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv[0] = 0; SigSum = 0; for count2 = 0 to sig-1{ SigSum = SigSum+RSIv[count2]; } RSIsig = SigSum/Sig; plot1(RSI,"RSI"); plot2(RSIsig,"sig"); 2. 일봉 Inputs: Length(9); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); var : RSIv(0),didx(0), UpAvg1(0), DownAvg1(0); if date != date[1] Then{ didx = didx+1; UpAvg1 = UpAvg[1]; DownAvg1 = DownAvg[1]; } If didx <= 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = DayClose(Counter) - DayClose(Counter+1); If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If didx > 1 AND Length > 0 Then Begin UpAmt = DayClose(0) - DayClose(1); If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg1 * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg1 * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; plot1(RSIV); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); 3. 주봉 Inputs:Length(9); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0), wRSI(0); var : Dindex(0), PreUpAvg(0), preDownAvg(0),cnt1(0); Array : CC[100](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ for cnt1 = 1 to 99{ CC[cnt1] = CC[cnt1-1][1]; } PreUpAvg = UpAvg[1]; preDownAvg = DownAvg[1]; Dindex = dindex + 1; } CC[0] = C; If Dindex <= Length Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End If Dindex > Length Then { UpAmt = CC[0]-Cc[1]; If UpAmt >= 0 Then DownAmt = 0; Else { DownAmt = -UpAmt; UpAmt = 0; } if Dindex <=1 Then { UpAvg = 1; DownAvg = 1; } Else { UpAvg = (PreUpAvg * (Length - 1) + UpAmt) / Length; DownAvg = (preDownAvg * (Length - 1) + DownAmt) / Length; } } If UpAvg + DownAvg <> 0 Then wRSI = 100 * UpAvg / (UpAvg + DownAvg); Else wRSI = 0; plot1(wRSI,"RSI"); PlotBaseLine1(30, "기준선 30", gray); PlotBaseLine2(70, "기준선 70", gray); 즐거운 하루되세요 > 예스매니아 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요,,,새해 복 많이 받으세요~ rsi지표에서요,,, 1. 시간봉 rsi를 분봉에서 볼수 있게 (입력변수가 시간이 되겠지요) 2. 일봉 rsi를 분봉에서 볼수 있게 3. 주봉 rsi를 분봉에서 볼수 있게 해주시면 감사하겠습니다. 맨날 귀찮은 질문을 해드려서 죄송합니다.