커뮤니티

수식 부탁 드립니다

프로필 이미지
hex
2011-10-14 12:15:16
622
글번호 43711
답변완료
안녕하세요 일봉에서 주봉, 월봉의 RSI를 일봉 RSI와 함께 보고 싶습니다. 더불어 각 RSI의 지수이평값을 알고 싶습니다 입력변수는 RSI 기간값, 지수이평값 두가지입니다 (셋다 공통) Plot1(일봉RSI); Plot2(주봉RSI); Plot3(월봉RSI); 출력은 이렇게만 되고 각 RSI의 지수이평값은 변수로 남겨주시면 감사하겠습니다. 번거로우시겠지만 꼭 좀 부탁드립니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-10-15 09:15:44

안녕하세요 예스스탁입니다. Length는 각 RSI의 기간값, Period는 각 RSI지수이평의 기간값입니다. wRSI가 주봉 RSI, wJISU가 주봉 RSI의 지수이평값입니다. mRSI가 월봉 RSI, mJISU가 월봉 RSI의 지수이평값입니다. Inputs:Length(9),Period(10); Inputs:mLength(9),mPeriod(10); Inputs:wLength(9),wPeriod(10); Variables: mCounter(0), mDownAmt(0), mUpAmt(0), mUpSum(0), mDownSum(0), mUpAvg(0), mDownAvg(0), mRSI(0); var : mDindex(0), mPremUpAvg(0), mpremDownAvg(0),mcnt1(0),mJISU(0),mpreJISU(0),mEp(0); Array : mCC[100](0); 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),wEp(0),wPreJISU(0),wJISU(0); Array : CC[100](0); mEp = 2/(mPeriod+1); if sdate > sdate[1]+30 Then{ for mcnt1 = 1 to 99{ mCC[mcnt1] = mCC[mcnt1-1][1]; } mPremUpAvg = mUpAvg[1]; mpremDownAvg = mDownAvg[1]; mDindex = mDindex + 1; mPreJISU = mJISU[1]; } mCC[0] = C; If mDindex <= mLength Then Begin mUpSum = 0; mDownSum = 0; For mCounter = 0 To mLength - 1 Begin mUpAmt = mCC[mCounter] - mCC[mCounter+1]; If mUpAmt >= 0 Then mDownAmt = 0; Else Begin mDownAmt = -mUpAmt; mUpAmt = 0; End; mUpSum = mUpSum + mUpAmt; mDownSum = mDownSum + mDownAmt; End; mUpAvg = mUpSum / mLength; mDownAvg = mDownSum / mLength; End If mDindex > mLength Then { mUpAmt = mCC[0]-mCC[1]; If mUpAmt >= 0 Then mDownAmt = 0; Else { mDownAmt = -mUpAmt; mUpAmt = 0; } if mDindex <=1 Then { mUpAvg = 1; mDownAvg = 1; } Else { mUpAvg = (mPremUpAvg * (mLength - 1) + mUpAmt) / mLength; mDownAvg = (mpremDownAvg * (mLength - 1) + mDownAmt) / mLength; } } If mUpAvg + mDownAvg <> 0 Then mRSI = 100 * mUpAvg / (mUpAvg + mDownAvg); Else mRSI = 0; mJISU = mRSI * mEP + mPreJISU * (1-mEP); #### wEp = 2/(wPeriod+1); 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; wPreJISU = wJISU[1]; } CC[0] = C; If Dindex <= wLength Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To wLength - 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 / wLength; DownAvg = DownSum / wLength; End If Dindex > wLength 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 * (wLength - 1) + UpAmt) / wLength; DownAvg = (preDownAvg * (wLength - 1) + DownAmt) / wLength; } } If UpAvg + DownAvg <> 0 Then wRSI = 100 * UpAvg / (UpAvg + DownAvg); Else wRSI = 0; wJISU = wRSI * wEP + wPreJISU * (1-wEP); plot1(RSI(Length),"RSI"); plot2(ema(RSI(Length),Period),"RSI"); plot3(wRSI,"RSI"); plot4(wJisu,"wRSIEMA"); plot5(mRSI,"mRSI"); plot6(MJisu,"MRSIEMA"); PlotBaseLine1(30, "기준선 30", gray); PlotBaseLine2(70, "기준선 70", gray); 즐거운 하루되세요 > hex 님이 쓴 글입니다. > 제목 : 수식 부탁 드립니다 > 안녕하세요 일봉에서 주봉, 월봉의 RSI를 일봉 RSI와 함께 보고 싶습니다. 더불어 각 RSI의 지수이평값을 알고 싶습니다 입력변수는 RSI 기간값, 지수이평값 두가지입니다 (셋다 공통) Plot1(일봉RSI); Plot2(주봉RSI); Plot3(월봉RSI); 출력은 이렇게만 되고 각 RSI의 지수이평값은 변수로 남겨주시면 감사하겠습니다. 번거로우시겠지만 꼭 좀 부탁드립니다