커뮤니티

rsi 타주기

프로필 이미지
고성
2023-04-03 12:45:27
1062
글번호 167814
답변완료
rsi 지수가, 100틱 차트와 50틱 차트에서 동시에 30 이하일 때, 50틱 차트의 rsi 지수가 30을 먼저 상향 돌파하면, 10틱 차트에 동그라미 표시. (10틱 차트는 rsi와는 무관. 표시만) 10틱 차트에 안되면 50틱 차트에 동그라미 표시. 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-04-03 14:23:41

안녕하세요 예스스탁입니다. input : N1(5),N2(10);#기본차트 기준 n배 Input : Length1(14),Length2(14); var : cnt(0),didx(0),D1(0),TF1(0),TF2(0),tx(0); Var : cnt1(0), idx1(0), DownAmt1(0), UpAmt1(0), UpSum1(0), DownSum1(0); var : UpAvg1(0), DownAvg1(0), PreUpAvg1(0), preDownAvg1(0),RSIV1(0); Var : cnt2(0), idx2(0), DownAmt2(0), UpAmt2(0), UpSum2(0), DownSum2(0); var : UpAvg2(0), DownAvg2(0), PreUpAvg2(0), preDownAvg2(0),RSIV2(0); Array : C1[100](0),C2[100](0); if Bdate != Bdate[1] Then { D1 = sdate; didx = 0; } Else didx = didx+1; if D1 > 0 then { TF1 = didx%N1; TF2 = didx%N2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then { for cnt = 99 downto 1 { C1[cnt] = C1[cnt-1][1]; } PreUpAvg1 = UpAvg1[1]; preDownAvg1 = DownAvg1[1]; idx1 = idx1 + 1; } C1[0] = C; If idx1 == Length1+2 Then { UpSum1 = 0; DownSum1 = 0; For cnt1 = 0 To Length1 - 1 { UpAmt1 = C1[cnt1] - C1[cnt1+1]; If UpAmt1 >= 0 Then DownAmt1 = 0; Else{ DownAmt1 = -UpAmt1; UpAmt1 = 0; } UpSum1 = UpSum1 + UpAmt1; DownSum1 = DownSum1 + DownAmt1; } UpAvg1 = UpSum1 / Length1; DownAvg1 = DownSum1 / Length1; } If idx1 > Length1+2 Then { UpAmt1 = C1[0] - C1[1]; If UpAmt1 >= 0 Then DownAmt1 = 0; Else { DownAmt1 = -UpAmt1; UpAmt1 = 0; } UpAvg1 = (PreUpAvg1 * (Length1 - 1) + UpAmt1) / Length1; DownAvg1 = (preDownAvg1 * (Length1 - 1) + DownAmt1) / Length1; } If UpAvg1 + DownAvg1 <> 0 Then RSIv1 = 100 * UpAvg1 / (UpAvg1 + DownAvg1); Else RSIv1 = 0; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF2 < TF2[1]) Then { for cnt = 99 downto 1 { C2[cnt] = C2[cnt-1][1]; } PreUpAvg2 = UpAvg2[1]; preDownAvg2 = DownAvg2[1]; idx2 = idx2 + 1; } C2[0] = C; If idx2 == Length2+2 Then { UpSum2 = 0; DownSum2 = 0; For cnt2 = 0 To Length2 - 1 { UpAmt2 = C2[cnt2] - C2[cnt2+1]; If UpAmt2 >= 0 Then DownAmt2 = 0; Else { DownAmt2 = -UpAmt2; UpAmt2 = 0; } UpSum2 = UpSum2 + UpAmt2; DownSum2 = DownSum2 + DownAmt2; } UpAvg2 = UpSum2 / Length2; DownAvg2 = DownSum2 / Length2; } If idx2 > Length2+2 Then { UpAmt2 = C2[0] - C2[1]; If UpAmt2 >= 0 Then DownAmt2 = 0; Else { DownAmt2 = -UpAmt2; UpAmt2 = 0; } UpAvg2 = (PreUpAvg2 * (Length2 - 1) + UpAmt2) / Length2; DownAvg2 = (preDownAvg2 * (Length2 - 1) + DownAmt2) / Length2; } If UpAvg2 + DownAvg2 <> 0 Then RSIv2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2); Else RSIv2 = 0; if CrossUp(RSIV1,30) and RSIV2 < 30 Then { tx = Text_New(sDate,sTime,H,"●"); Text_SetStyle(tx,2,1); Text_SetColor(tx,Red); } } 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : rsi 타주기 > rsi 지수가, 100틱 차트와 50틱 차트에서 동시에 30 이하일 때, 50틱 차트의 rsi 지수가 30을 먼저 상향 돌파하면, 10틱 차트에 동그라미 표시. (10틱 차트는 rsi와는 무관. 표시만) 10틱 차트에 안되면 50틱 차트에 동그라미 표시. 감사합니다.