커뮤니티
문의드립니다
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);