커뮤니티
문의 (RSI)
2013-06-17 13:32:55
226
글번호 64365
1. 아래 갭보정 수식을 이용해서 스토캐스틱과 스토캐스틱RSI의 보조지표 좀 부탁드리겠습니다.
VARS: sumGap(0, DATA1), Gap(0, DATA1), gHIGH(0, DATA1), gLOW(0, DATA1), gOPEN(0, DATA1), gCLOSE(0, DATA1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) then
Begin
Gap = ( DATA1(OPEN) - DATA1(CLOSE[1]) );
sumGap = sumGap + Gap;
End;
gHIGH = DATA1(HIGH) - sumGap;
gLOW = DATA1(LOW) - sumGap;
gOPEN = DATA1(OPEN) - sumGap;
gCLOSE = DATA1(CLOSE) - sumGap;
2. 3분 차트를 사용한다고 가정할때 장시작시의 시가는 DayOpen으로 알수 있는데 장시작시의 고가와 저가는 무엇으로 알수 있는지요? 3분봉이 완성되지 않은 시점에서 방법이 있는지요?
3. 위에서 작성된 갭보정용 스토캐스틱RSI의 금일중 최고가와 최저가를 변수에 저장하는 방법 좀 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2013-06-17 16:10:13
안녕하세요
예스스탁입니다.
1-1, 스토케스틱
input : Period1(10),Period2(5),Period3(5);
var : sumGap(0, DATA1), Gap(0, DATA1), gHIGH(0, DATA1), gLOW(0, DATA1), gOPEN(0, DATA1), gCLOSE(0, DATA1);
var : Lval(0,data1),Hval(0,data1),FK(0,data1),SK(0,data1),SD(0,data1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) then
Begin
Gap = ( DATA1(OPEN) - DATA1(CLOSE[1]) );
sumGap = sumGap + Gap;
End;
gHIGH = DATA1(HIGH) - sumGap;
gLOW = DATA1(LOW) - sumGap;
gOPEN = DATA1(OPEN) - sumGap;
gCLOSE = DATA1(CLOSE) - sumGap;
Lval = Lowest(gLOW, Period1);
Hval = Highest(gHIGH, Period1);
FK = (gCLOSE - Lval) / (Hval - Lval) * 100;
SK = ema(FK,Period2);#슬로우K
SD = ema(SK,Period3);#슬로우D
plot1(SK,"%K");
plot2(SD,"%D");
1-2 스토케스틱RSI
input : Length(10),SRPeriod(10);
var : sumGap(0, DATA1), Gap(0, DATA1), gHIGH(0, DATA1), gLOW(0, DATA1), gOPEN(0, DATA1), gCLOSE(0, DATA1);
Var : Counter(0,data1), DownAmt(0,data1), UpAmt(0,data1), UpSum(0,data1), DownSum(0,data1), UpAvg(0,data1), DownAvg(0,data1);
var : RSIV(0,data1),StoRSI(0,data1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) then
Begin
Gap = ( DATA1(OPEN) - DATA1(CLOSE[1]) );
sumGap = sumGap + Gap;
End;
gHIGH = DATA1(HIGH) - sumGap;
gLOW = DATA1(LOW) - sumGap;
gOPEN = DATA1(OPEN) - sumGap;
gCLOSE = DATA1(CLOSE) - sumGap;
If CurrentBar == 1 AND Length > 0 Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = gCLOSE[Counter] - gCLOSE[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
End
Else
If CurrentBar > 1 AND Length > 0 Then Begin
UpAmt = gCLOSE[0] - gCLOSE[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length;
DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length;
End;
If UpAvg + DownAvg <> 0 Then
RSIv = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIv = 0;
StoRsi = ((RSIv- lowest(RSIv,SRPeriod)) / (highest(RSIv,SRPeriod)-(lowest(RSIv,SRPeriod))))*-1;
plot1(StoRsi);
2.
3분봉의 완성시에만 저장및 사용이 가능합니다.
if dayindex == 0 then{
var1 = H;
var2 = L;
}
3.
input : Length(10),SRPeriod(10);
var : sumGap(0, DATA1), Gap(0, DATA1), gHIGH(0, DATA1), gLOW(0, DATA1), gOPEN(0, DATA1), gCLOSE(0, DATA1);
Var : Counter(0,data1), DownAmt(0,data1), UpAmt(0,data1), UpSum(0,data1), DownSum(0,data1), UpAvg(0,data1), DownAvg(0,data1);
var : RSIV(0,data1),StoRSI(0,data1),HH(0,data1),LL(0,data1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) then
Begin
Gap = ( DATA1(OPEN) - DATA1(CLOSE[1]) );
sumGap = sumGap + Gap;
End;
gHIGH = DATA1(HIGH) - sumGap;
gLOW = DATA1(LOW) - sumGap;
gOPEN = DATA1(OPEN) - sumGap;
gCLOSE = DATA1(CLOSE) - sumGap;
If CurrentBar == 1 AND Length > 0 Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = gCLOSE[Counter] - gCLOSE[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
End
Else
If CurrentBar > 1 AND Length > 0 Then Begin
UpAmt = gCLOSE[0] - gCLOSE[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length;
DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length;
End;
If UpAvg + DownAvg <> 0 Then
RSIv = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIv = 0;
StoRsi = ((RSIv- lowest(RSIv,SRPeriod)) / (highest(RSIv,SRPeriod)-(lowest(RSIv,SRPeriod))))*-1;
if date != date[1] Then{
HH = stoRSI;
LL = stoRSI;
}
if StoRsi > HH Then
HH = StoRsi;
if StoRsi < LL Then
LL = StoRsi;
plot1(StoRsi);
plot2(HH);
plot3(LL);
즐거운 하루되세요
> TRF 님이 쓴 글입니다.
> 제목 : 문의 (RSI)
> 1. 아래 갭보정 수식을 이용해서 스토캐스틱과 스토캐스틱RSI의 보조지표 좀 부탁드리겠습니다.
VARS: sumGap(0, DATA1), Gap(0, DATA1), gHIGH(0, DATA1), gLOW(0, DATA1), gOPEN(0, DATA1), gCLOSE(0, DATA1);
//----------------------------------------------------------------------------------------------------------------------------------------------------------
if ( DATA1(Date <> Date[1]) ) then
Begin
Gap = ( DATA1(OPEN) - DATA1(CLOSE[1]) );
sumGap = sumGap + Gap;
End;
gHIGH = DATA1(HIGH) - sumGap;
gLOW = DATA1(LOW) - sumGap;
gOPEN = DATA1(OPEN) - sumGap;
gCLOSE = DATA1(CLOSE) - sumGap;
2. 3분 차트를 사용한다고 가정할때 장시작시의 시가는 DayOpen으로 알수 있는데 장시작시의 고가와 저가는 무엇으로 알수 있는지요? 3분봉이 완성되지 않은 시점에서 방법이 있는지요?
3. 위에서 작성된 갭보정용 스토캐스틱RSI의 금일중 최고가와 최저가를 변수에 저장하는 방법 좀 부탁드립니다.
감사합니다.