커뮤니티
수식 부탁 드립니다
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의 지수이평값은 변수로 남겨주시면 감사하겠습니다.
번거로우시겠지만 꼭 좀 부탁드립니다
이전글