커뮤니티

문의드립니다

프로필 이미지
예스매니아
2014-03-30 17:21:00
167
글번호 73953
답변완료
아래지표를 Data2에 적용하고 싶습니다. 늘 감사드립니다. 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); PlotBaseLine1(50, "기준선 50", YELLOW);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-03-31 11:44:52

안녕하세요 예스스탁입니다. input : Atime(60),RSIP(9),RSISP(10); var : rSI2(0,data2),RSIS2(0,data2); var : RSigSum(0,data2),Rcount2(0,data2),RSIsig(0,data2); Var : RCounter(0,data2), RDownAmt(0,data2), RUpAmt(0,data2); var : RUpSum(0,data2), RDownSum(0,data2), RUpAvg(0,data2), RDownAvg(0,data2),D2(0,data2); var : RDindex(0,data2), RPreUpAvg(0,data2), RpreDownAvg(0,data2),Rcnt1(0,data2),TF(0,data2); Array : RC[100](0,data2),RSIV1[100](0,data2); TF = data2(TimeToMinutes(stime)%Atime); D2 = data2(c); if data2(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] = D2; If RDindex == RSIP Then Begin RUpSum = 0; RDownSum = 0; For RCounter = 0 To RSIP - 1 Begin RUpAmt = D2[RCounter] - D2[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); PlotBaseLine1(50, "기준선 50", YELLOW); 즐거운 하루되세요 > 예스매니아 님이 쓴 글입니다. > 제목 : 문의드립니다 > 아래지표를 Data2에 적용하고 싶습니다. 늘 감사드립니다. 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); PlotBaseLine1(50, "기준선 50", YELLOW);