커뮤니티

HA RSI

프로필 이미지
ksks
2025-10-24 01:02:54
116
글번호 227259
답변완료

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) ; } 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 Index >345 and (CrossUp(harsi,60) and CountIf(harsi<=59.9,5)[1] == 5) and haC>haC[1]*1.02 then Find(1); ==============================================================  위 수식은 하이킨아시에서 상장 345일이상 종목 중,   전 5봉의 RSI(20)값은 59.9이하 후  전봉대비 금일 2%이상 상승으로 60돌파하는데   여기에 haC가 200EMA를 당일돌파하거나 LRL(50)>TEWMA>200EMA인  종목의 검색을 위해  if~  이하부분을 해봤는데  아래 TEWMA수식과 LRL(50)을 어떻게 넣어야할지 몰라 문의드립니다.  ==============================================================   input : len(50),multi(1.75); var : wma1(0),ema1_1(0),ema1_2(0),ema1_3(0),TEWMA1(0); var : len2(0),wma2(0),ema2_1(0),ema2_2(0),ema2_3(0),TEWMA2(0); var : TEWMA(0); wma1 = WMA(C, len); // TEMA 계산 ema1_1 = Ema(wma1, len); ema1_2 = Ema(ema1_1, len); ema1_3 = Ema(ema1_2, len); TEWMA1 = 3 * ema1_1 - 3 * ema1_2 + ema1_3; len2 = len * multi; wma2 = WMA(C, len2); ema2_1 = Ema(wma2, len2); ema2_2 = Ema(ema2_1, len2); ema2_3 = ema(ema2_2, len2); TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3; TEWMA = (TEWMA1 + TEWMA2) / 2; var1 = Ema(c,200); var2 = LRL(c,50);

헤이킨아쉬헤이킨아쉬RSI헤이킨아쉬EMA헤이킨아쉬TEWMA헤이킨아쉬LRL
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-24 14:41:53

안녕하세요 예스스탁입니다. LRL(50),TEWMA,200EMA도 hac로 계산한 값이면 2번식 사용하시면 됩니다. 1 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) ; } 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; input : len(50),multi(1.75); var : wma1(0),ema1_1(0),ema1_2(0),ema1_3(0),TEWMA1(0); var : len2(0),wma2(0),ema2_1(0),ema2_2(0),ema2_3(0),TEWMA2(0); var : TEWMA(0); wma1 = WMA(C, len); // TEMA 계산 ema1_1 = Ema(wma1, len); ema1_2 = Ema(ema1_1, len); ema1_3 = Ema(ema1_2, len); TEWMA1 = 3 * ema1_1 - 3 * ema1_2 + ema1_3; len2 = len * multi; wma2 = WMA(C, len2); ema2_1 = Ema(wma2, len2); ema2_2 = Ema(ema2_1, len2); ema2_3 = ema(ema2_2, len2); TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3; TEWMA = (TEWMA1 + TEWMA2) / 2; var1 = Ema(c,200); var2 = LRL(c,50); if Index >345 and CrossUp(harsi,60) and CountIf(harsi<=59.9,5)[1] == 5 and haC>haC[1]*1.02 and (CrossUp(haC,var1) or (var2>TEWMA and TEWMA>var1)) then Find(1); 2 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) ; } 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; input : len(50),multi(1.75); var : wma1(0),ema1_1(0),ema1_2(0),ema1_3(0),TEWMA1(0); var : len2(0),wma2(0),ema2_1(0),ema2_2(0),ema2_3(0),TEWMA2(0); var : TEWMA(0); wma1 = WMA(haC, len); // TEMA 계산 ema1_1 = Ema(wma1, len); ema1_2 = Ema(ema1_1, len); ema1_3 = Ema(ema1_2, len); TEWMA1 = 3 * ema1_1 - 3 * ema1_2 + ema1_3; len2 = len * multi; wma2 = WMA(haC, len2); ema2_1 = Ema(wma2, len2); ema2_2 = Ema(ema2_1, len2); ema2_3 = ema(ema2_2, len2); TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3; TEWMA = (TEWMA1 + TEWMA2) / 2; var1 = Ema(hac,200); var2 = LRL(hac,50); if Index >345 and CrossUp(harsi,60) and CountIf(harsi<=59.9,5)[1] == 5 and haC>haC[1]*1.02 and (CrossUp(haC,var1) or (var2>TEWMA and TEWMA>var1)) then Find(1); 즐거운 하루되세요