안녕하세요
예스스탁입니다.
수식에 하케아쉬 RSI계산에 currentbar가 사용되었는데
해당 함수가 수식에서 필요한 최소봉수 이후에 계산해서
종목검색 조건문이 있을때와 없을때 시작봉이 다릅니다.
과거봉이 작으면 현재봉의 값에 차이가 있어
종목검색 조건문과 관계없이 봉수 체크하게 수정해 드립니다.
var : haC(0),haO(0),haH(0),haL(0);
var : mav(0),sdv(0),B(0);
var : A(0),A1(0);
#Heiken Ashi 시고저종
if index == 0 then
{
haC = (O+H+L+C)/4;
haO = open;
haH = MaxList( high, haO, haC);
haL = MinList( low, haO,haC);
}
else
{
haC = (O+H+L+C)/4;
haO = (haO [1] + haC [1])/2 ;
haH = MaxList(High, haO, haC) ;
haL = MinList(Low, haO, haC) ;
}
A=(haO+haH+haL+haC)/4;
A1=(haC[1]+haO[1])/2;
mav = ma(hac,20);
sdv = std(hac,20);
B = mav-sdv*2;
Inputs: Length(20);
Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),haRSI(0);
If Index == Length Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 Begin
UpAmt = haC[Counter] - haC[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 Index > length AND Length > 0 Then Begin
UpAmt = haC[0] - haC[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
haRSI = 100 * UpAvg / (UpAvg + DownAvg);
Else
haRSI = 0;
if A1[1]>A[2] AND A1[1]
= haL*1.10) or
(haRSI[2] < 30 and haRSI[1] < 30 and haRSI > 30) or
(haRSI[2] < 30 and haRSI[1] > 30 and haRSI > 30)) Then
Find(1);
즐거운 하루되세요
> ksks 님이 쓴 글입니다.
> 제목 : 93887관련
> 감사합니다.
적용해 검색해보니
어제(8.13일) 나온 종목은
1.HLB바이오스텝, HLB글로벌 : RSI30후 나온 신호====>OK
2.인투셀: RSI30과 관계없음====>0봉의 "고가-저가"가 10%이상(하이킨캔들기준)이어야 함.
어제 7.0%-(-0.76%)=7.76% ====>10%가 안되는데 검색됨.
2번이 문제인데 한번 봐주세요.