예스스탁
예스스탁 답변
2025-02-04 09:51:11
안녕하세요
예스스탁입니다.
사용자함수를 먼저 만드신 후에
지표식 작성해서 사용하시면 됩니다.
1. 사용자함수
함수명 : RCI
반환값형 : 숫자형
input :Price(numericseries),Length(numericsimple);
var : MinIndex(0), TestValue(0),i1(0),i2(0),TempVal1(0),TempVal2(0),
RankChange(0),RankChangeSqr(0),RankChangeSqrSum(0),CorrCoeff(0),Denom(0) ;
array: PriceArray[2,500](0) ;
if Length >= 2 and Length < 500 then
{
for i1 = 1 to Length
{
PriceArray[0,i1] = i1 ;
PriceArray[1,i1] = Price[Length-i1] ;
}
for i1 = 1 to Length - 1
{
TestValue = PriceArray[1,i1] ;
MinIndex = i1 ;
for i2 = i1 + 1 to Length
{
if TestValue > PriceArray[1,i2] then
{
MinIndex = i2 ;
TestValue = PriceArray[1,i2] ;
}
}
if MinIndex <> i1 then
{
TempVal1 = PriceArray[0,i1] ;
TempVal2 = PriceArray[1,i1] ;
PriceArray[0,i1] = PriceArray[0,MinIndex] ;
PriceArray[1,i1] = PriceArray[1,MinIndex] ;
PriceArray[0,MinIndex] = TempVal1 ;
PriceArray[1,MinIndex] = TempVal2 ;
}
}
RankChangeSqrSum = 0 ;
for i1 = 1 to Length
{
RankChange = i1 - PriceArray[0,i1] ;
RankChangeSqr = RankChange * RankChange ;
RankChangeSqrSum = RankChangeSqrSum + RankChangeSqr ;
}
Denom = Length * ( Length * Length - 1 ) ;
if Denom <> 0 then
CorrCoeff = 1 - 6 * RankChangeSqrSum / Denom ;
RCI = CorrCoeff * 100 ;
}
Else
RCI = Nan;
2-1
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xHigh,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-2
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xClose,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-3
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xOpen,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-4
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xLow,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
즐거운 하루되세요
> 촌동네선생 님이 쓴 글입니다.
> 제목 : rci 지표 관련 해서 문의합니다.
> 하이킨 아시 캔들 기준으로 rci(2)에 시그널 선으로 36 단순이동평균선을 넣은 지표식을 좀 알려주시면 감사하겠습다..
기간값은 2 구요. 36 단순이동평균선을 시그널 선으로 추가하고 0선을 중앙선으
로 하는 수식 좀 알려주실수 있을까요?
1) 하이킨아시 고가 기준 rci (2) 시그널 (36) 중앙선 0
2) 하이킨아시 종가 기준 rci (2) 시그널 (36) 중앙선 0
3) 하이킨아시 시가 기준 rci (2) 시그널 (36) 중앙선 0
4) 하이킨아시 저가 기준 rci (2) 시그널 (36) 중앙선 0
1),2),3),4) 가 겹치지 않게 각자 따로 지표를 만들려고 합니다. 고생하십니다.
촌동네선생
2025-02-04 10:29:22
너무 너무 감사드리고 수고하셨습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : rci 지표 관련 해서 문의합니다.
>
안녕하세요
예스스탁입니다.
사용자함수를 먼저 만드신 후에
지표식 작성해서 사용하시면 됩니다.
1. 사용자함수
함수명 : RCI
반환값형 : 숫자형
input :Price(numericseries),Length(numericsimple);
var : MinIndex(0), TestValue(0),i1(0),i2(0),TempVal1(0),TempVal2(0),
RankChange(0),RankChangeSqr(0),RankChangeSqrSum(0),CorrCoeff(0),Denom(0) ;
array: PriceArray[2,500](0) ;
if Length >= 2 and Length < 500 then
{
for i1 = 1 to Length
{
PriceArray[0,i1] = i1 ;
PriceArray[1,i1] = Price[Length-i1] ;
}
for i1 = 1 to Length - 1
{
TestValue = PriceArray[1,i1] ;
MinIndex = i1 ;
for i2 = i1 + 1 to Length
{
if TestValue > PriceArray[1,i2] then
{
MinIndex = i2 ;
TestValue = PriceArray[1,i2] ;
}
}
if MinIndex <> i1 then
{
TempVal1 = PriceArray[0,i1] ;
TempVal2 = PriceArray[1,i1] ;
PriceArray[0,i1] = PriceArray[0,MinIndex] ;
PriceArray[1,i1] = PriceArray[1,MinIndex] ;
PriceArray[0,MinIndex] = TempVal1 ;
PriceArray[1,MinIndex] = TempVal2 ;
}
}
RankChangeSqrSum = 0 ;
for i1 = 1 to Length
{
RankChange = i1 - PriceArray[0,i1] ;
RankChangeSqr = RankChange * RankChange ;
RankChangeSqrSum = RankChangeSqrSum + RankChangeSqr ;
}
Denom = Length * ( Length * Length - 1 ) ;
if Denom <> 0 then
CorrCoeff = 1 - 6 * RankChangeSqrSum / Denom ;
RCI = CorrCoeff * 100 ;
}
Else
RCI = Nan;
2-1
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xHigh,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-2
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xClose,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-3
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xOpen,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
2-4
input : Period(2),signal(36);
var : R(0),S(0);
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
#Heiken Ashi 시고저종
if index == 0 then
{
xClose = (O+H+L+C)/4;
xOpen = open;
xHigh = MaxList( high, xOpen, xClose);
xLow = MinList( low, xOpen,xClose);
}
else
{
xClose = (O+H+L+C)/4;
xOpen = (xOpen [1] + xClose [1])/2 ;
xHigh = MaxList(High, xOpen, xClose) ;
xLow = MinList(Low, xOpen, xClose) ;
}
R = RCI(xLow,Period);
S = ma(R,36);
Plot1(R,"RCI");
Plot2(S,"RCI Signal");
즐거운 하루되세요
> 촌동네선생 님이 쓴 글입니다.
> 제목 : rci 지표 관련 해서 문의합니다.
> 하이킨 아시 캔들 기준으로 rci(2)에 시그널 선으로 36 단순이동평균선을 넣은 지표식을 좀 알려주시면 감사하겠습다..
기간값은 2 구요. 36 단순이동평균선을 시그널 선으로 추가하고 0선을 중앙선으
로 하는 수식 좀 알려주실수 있을까요?
1) 하이킨아시 고가 기준 rci (2) 시그널 (36) 중앙선 0
2) 하이킨아시 종가 기준 rci (2) 시그널 (36) 중앙선 0
3) 하이킨아시 시가 기준 rci (2) 시그널 (36) 중앙선 0
4) 하이킨아시 저가 기준 rci (2) 시그널 (36) 중앙선 0
1),2),3),4) 가 겹치지 않게 각자 따로 지표를 만들려고 합니다. 고생하십니다.