커뮤니티
문의드립니다.
2014-08-12 09:20:10
162
글번호 77611
1.
input : RSIP(10),Indep(C), Dep(H), Length(20);
var : AvgX(0),AvgY(0),SumDySqr(0),SumDxDy(0),SumDxSqr(0),Dy(0),Dx(0),R(0),CoefficientR(0),rsq(0),RSIv(0);
CoefficientR = -2 ;
if Length > 0 then
begin
AvgX = 0 ;
AvgY = 0 ;
for Value1 = 0 to Length - 1
begin
AvgX = AvgX + Indep[Value1] ;
AvgY = AvgY + Dep[Value1] ;
end ;
AvgX = AvgX / Length ;
AvgY = AvgY / Length ;
SumDxSqr = 0 ;
SumDySqr = 0 ;
SumDxDy = 0 ;
for Value1 = 0 to Length - 1
begin
Dx = Indep[Value1] - AvgX ;
Dy = Dep[Value1] - AvgY ;
SumDxSqr = SumDxSqr + Square( Dx ) ;
SumDySqr = SumDySqr + Square( Dy ) ;
SumDxDy = SumDxDy + Dx * Dy ;
end ;
Value2 = SumDxSqr * SumDySqr ;
if Value2 > 0 then
begin
R = SumDxDy / SquareRoot( Value2 ) ;
if R >= -1 and R <= 1 then
CoefficientR = R ;
end ;
end ;
rsq = Square(CoefficientR);
RSIv = RSI(RSIP);
if RSIv > RSIv[1] AND rsq > rsq[1] Then
PLOT1(RSIv,"1",RED);
if RSIv < RSIv[1] AND rsq < rsq[1] Then
PLOT1(RSIv,"1",blue);
plot2(RSIV);
................................................................
상기 1번식을 데이타2용으로 가공해 주세요
2. trix 지표를 데이타2용으로 가공해 주세요
3.
input : Atime(60),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[50](0),LL[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
#### Slow StochasticsK ####
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
#### Slow StochasticsD ####
Ep1 = 2/(StoPeriod2+1);
if date != date[1] or var1 < var1[1] then {
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1);
plot1(StoK);
plot2(StoD);
PlotBaseLine1(50);
...............................................................
3번식을 데이타2용으로 바꾸어 주세요..더불어 3번식에서 스톡케이선과 스톡디선 모두 색깔을 넣어 주세요.(스톡케이선이 하락하면 파란색, 스톡케이선이 상승하면 빨간색 이런식으로요.. 마찬가지로 스톡디선이 하락하면 파란색, 스톡디선이 상승하면 빨간색)
감사합니다
답변 1
예스스탁 예스스탁 답변
2014-08-12 14:16:35
안녕하세요
예스스탁입니다.
1.
참조데이터의 값으로 지정이 되어야 하므로
외부변수 지정하던 Indep(C), Dep(H)는 내부변수로 되어야 합니다.
input : RSIP(10),Length(20);
var : AvgX(0,data2),AvgY(0,data2),SumDySqr(0,data2),SumDxDy(0,data2),SumDxSqr(0,data2);
var : ,Dy(0,data2),Dx(0,data2),R(0,data2),CoefficientR(0,data2),rsq(0,data2),RSIv(0,data2);
var : val1(0,data2),val2(0,data2);
var : indep(0,data2),Dep(0,data2);
CoefficientR = -2 ;
indep = data2(c);
Dep = data2(H);
if Length > 0 then
begin
AvgX = 0 ;
AvgY = 0 ;
for Val1 = 0 to Length - 1
begin
AvgX = AvgX + Indep[Val1] ;
AvgY = AvgY + Dep[Val1] ;
end ;
AvgX = AvgX / Length ;
AvgY = AvgY / Length ;
SumDxSqr = 0 ;
SumDySqr = 0 ;
SumDxDy = 0 ;
for Val1 = 0 to Length - 1
begin
Dx = Indep[Val1] - AvgX ;
Dy = Dep[Val1] - AvgY ;
SumDxSqr = SumDxSqr + data2(Square( Dx )) ;
SumDySqr = SumDySqr + data2(Square( Dy )) ;
SumDxDy = SumDxDy + Dx * Dy ;
end ;
Val2 = SumDxSqr * SumDySqr ;
if Val2 > 0 then
begin
R = SumDxDy / data2(SquareRoot( Val2 )) ;
if R >= -1 and R <= 1 then
CoefficientR = R ;
end ;
end ;
rsq = data2(Square(CoefficientR));
RSIv = data2(RSI(RSIP));
if RSIv > RSIv[1] AND rsq > rsq[1] Then
PLOT1(RSIv,"1",RED);
if RSIv < RSIv[1] AND rsq < rsq[1] Then
PLOT1(RSIv,"1",blue);
plot2(RSIV);
2.
Input : Period(12), sigPeriod(9);
var : TRIXv(0,data2),TRIXsig(0,data2);
TRIXv = data2(TRIX(Period));
TRIXsig = data2(ema(TRIX(Period),sigPeriod));
Plot1(TRIXv,"TRIX");
Plot2(TRIXsig,"TRIX시그널");
PlotBaseLine1(0,"기준선");
3.
input : Atime(60),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : count(0,data2), highVal(0,data2), lowVal(0,data2), StoFastK(0,data2), StoK(0,data2), StoD(0,data2);
var : Ep(0,data2), EP1(0,data2), JISU(0,data2), DINDEX(0,data2), PreStoK(0,data2), PreStoD(0,data2),cnt(0,data2);
var : TF(0,data2);
Array : HH[50](0,data2),LL[50](0,data2);
TF = data2(TimeToMinutes(stime)%Atime);
if data2(dayindex == 0 or (TF < TF[1] and stime > stime[1])) Then{
HH[0] = data2(H);
LL[0] = data2(L);
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if data2(H) > HH[0] Then
HH[0] = data2(H);
if data2(L) < LL[0] Then
LL[0] = data2(L);
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (data2(C)-lowVal)/(highVal-lowVal)*100;
#### Slow StochasticsK ####
Ep = 2/(StoPeriod1+1);
if data2(DINDEX >= StoPeriod and (date != date[1] or TF < TF[1])) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
#### Slow StochasticsD ####
Ep1 = 2/(StoPeriod2+1);
if data2(date != date[1] or TF < TF[1]) then {
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1);
if stok > stok[1] then
plot1(StoK,"k",red);
else
plot1(StoK,"k",blue);
if stod > stod[1] then
plot2(StoD,"d",red);
else
plot2(StoD,"d",blue);
PlotBaseLine1(50);
즐거운 하루되세요
> alsk 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 1.
input : RSIP(10),Indep(C), Dep(H), Length(20);
var : AvgX(0),AvgY(0),SumDySqr(0),SumDxDy(0),SumDxSqr(0),Dy(0),Dx(0),R(0),CoefficientR(0),rsq(0),RSIv(0);
CoefficientR = -2 ;
if Length > 0 then
begin
AvgX = 0 ;
AvgY = 0 ;
for Value1 = 0 to Length - 1
begin
AvgX = AvgX + Indep[Value1] ;
AvgY = AvgY + Dep[Value1] ;
end ;
AvgX = AvgX / Length ;
AvgY = AvgY / Length ;
SumDxSqr = 0 ;
SumDySqr = 0 ;
SumDxDy = 0 ;
for Value1 = 0 to Length - 1
begin
Dx = Indep[Value1] - AvgX ;
Dy = Dep[Value1] - AvgY ;
SumDxSqr = SumDxSqr + Square( Dx ) ;
SumDySqr = SumDySqr + Square( Dy ) ;
SumDxDy = SumDxDy + Dx * Dy ;
end ;
Value2 = SumDxSqr * SumDySqr ;
if Value2 > 0 then
begin
R = SumDxDy / SquareRoot( Value2 ) ;
if R >= -1 and R <= 1 then
CoefficientR = R ;
end ;
end ;
rsq = Square(CoefficientR);
RSIv = RSI(RSIP);
if RSIv > RSIv[1] AND rsq > rsq[1] Then
PLOT1(RSIv,"1",RED);
if RSIv < RSIv[1] AND rsq < rsq[1] Then
PLOT1(RSIv,"1",blue);
plot2(RSIV);
................................................................
상기 1번식을 데이타2용으로 가공해 주세요
2. trix 지표를 데이타2용으로 가공해 주세요
3.
input : Atime(60),StoPeriod(10), StoPeriod1(6), StoPeriod2(6);
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[50](0),LL[50](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
#### Slow StochasticsK ####
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
#### Slow StochasticsD ####
Ep1 = 2/(StoPeriod2+1);
if date != date[1] or var1 < var1[1] then {
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1);
plot1(StoK);
plot2(StoD);
PlotBaseLine1(50);
...............................................................
3번식을 데이타2용으로 바꾸어 주세요..더불어 3번식에서 스톡케이선과 스톡디선 모두 색깔을 넣어 주세요.(스톡케이선이 하락하면 파란색, 스톡케이선이 상승하면 빨간색 이런식으로요.. 마찬가지로 스톡디선이 하락하면 파란색, 스톡디선이 상승하면 빨간색)
감사합니다