커뮤니티

93476관련입니다

프로필 이미지
ksks
2025-07-16 14:06:11
198
글번호 192533
답변완료
93476번에서 드린 질문이 (하이킨아시 일봉이 일목균형표 26일기준선을 돌파하면서 RSI(20)이 50선을 돌파하는 종목 검색식을 만들려는데 도움부탁드립니다) 이고, 그 답은 아래 첨부와 같읍니다. 일봉에서 잘 만족스럽게 검색이 됩니다. 이것은 0봉전으로 되어 있는데, 이것을 30분 분봉에서 검색하기 위해 1봉전에 "26기준선돌파+rsi(20)이 50돌파+1봉전 ~ 5봉전 rsi(20)은 49.9"이하 로 수정하고 싶습니다. ================ 첨 부 ================================================== input : P(20); var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : 기준선(0),R(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(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) ; } 기준선 = (Highest(xHigh, 26) + Lowest(xLow, 26)) / 2; If CurrentBar == 1 AND P > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To P - 1 Begin UpAmt = xClose[Counter] - xClose[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / P; DownAvg = DownSum / P; End Else If CurrentBar > 1 AND P > 0 Then Begin UpAmt = xClose[0] - xClose[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (P - 1) + UpAmt) / P; DownAvg = (DownAvg[1] * (P - 1) + DownAmt) / P; End; If UpAvg + DownAvg <> 0 Then R = 100 * UpAvg / (UpAvg + DownAvg); Else R = 0; if CrossUp(xClose,기준선) and CrossUp(R,50) Then Find(1);
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-07-17 10:45:46

안녕하세요 예스스탁입니다. 1봉전에 "26기준선돌파+rsi(20)이 50돌파+1봉전 ~ 5봉전 rsi(20)은 49.9"이하 위 조건으로 변경해 드립니다. 다만 일봉의 조건을 30분봉에서 검색하는 내용이면 해당 부분은 가능하지 않습니다. 종목검색은 최대 제공봉수가 500봉으로 일봉값을 분봉에서 게산하기에는 제공봉수가 많이 부족합니다. input : P(20); var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : 기준선(0),R(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(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) ; } 기준선 = (Highest(xHigh, 26) + Lowest(xLow, 26)) / 2; If CurrentBar == 1 AND P > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To P - 1 Begin UpAmt = xClose[Counter] - xClose[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / P; DownAvg = DownSum / P; End Else If CurrentBar > 1 AND P > 0 Then Begin UpAmt = xClose[0] - xClose[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (P - 1) + UpAmt) / P; DownAvg = (DownAvg[1] * (P - 1) + DownAmt) / P; End; If UpAvg + DownAvg <> 0 Then R = 100 * UpAvg / (UpAvg + DownAvg); Else R = 0; Condition1 = CrossUp(xClose,기준선) and CrossUp(R,50) and CountIf(R <= 49.9,5)[1] == 5; if Condition1[1] == true Then Find(1); 즐거운 하루되세요 > ksks 님이 쓴 글입니다. > 제목 : 93476관련입니다 > 93476번에서 드린 질문이 (하이킨아시 일봉이 일목균형표 26일기준선을 돌파하면서 RSI(20)이 50선을 돌파하는 종목 검색식을 만들려는데 도움부탁드립니다) 이고, 그 답은 아래 첨부와 같읍니다. 일봉에서 잘 만족스럽게 검색이 됩니다. 이것은 0봉전으로 되어 있는데, 이것을 30분 분봉에서 검색하기 위해 1봉전에 "26기준선돌파+rsi(20)이 50돌파+1봉전 ~ 5봉전 rsi(20)은 49.9"이하 로 수정하고 싶습니다. ================ 첨 부 ================================================== input : P(20); var : xClose(0),xOpen(0),xHigh(0),xLow(0); var : 기준선(0),R(0); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(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) ; } 기준선 = (Highest(xHigh, 26) + Lowest(xLow, 26)) / 2; If CurrentBar == 1 AND P > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To P - 1 Begin UpAmt = xClose[Counter] - xClose[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / P; DownAvg = DownSum / P; End Else If CurrentBar > 1 AND P > 0 Then Begin UpAmt = xClose[0] - xClose[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (P - 1) + UpAmt) / P; DownAvg = (DownAvg[1] * (P - 1) + DownAmt) / P; End; If UpAvg + DownAvg <> 0 Then R = 100 * UpAvg / (UpAvg + DownAvg); Else R = 0; if CrossUp(xClose,기준선) and CrossUp(R,50) Then Find(1);