커뮤니티

수식 변환 부탁드립니다.

프로필 이미지
손느린주식
2023-05-30 09:01:08
1083
글번호 169340
답변완료
안녕하세요. 키움에서 쓰고 있는 수식 2 가지를 신호검색으로 변환 부탁 드리겠습니다. 1. M5 = eavg(C,5); M112 = eavg(C,112); M224 = eavg(C,224); M448 = eavg(C,448); LL=Lowest(L(1),기간); HH=Highest(H(1),기간); NH=valuewhen(1,H>HH(1),H); DaH = Valuewhen(1,barsSince(H>HH(1))==(기간 - k), NH); Bu = BBandsUp(90,2); 다바스업 = CrossUp(M5,DaH); Cnt = CountSince(CrossUp(C,Bu), 다바스업)==1; Cnt && !Cnt(1) 기간 20 k 10 2. M33 = eavg(C,33); M112 = eavg(C,112); M224 = eavg(C,224); M448 = eavg(C,448); Mcd = Macd(33, 112); Mcds = eavg(Mcd,9); LL = Lowest(Mcd, 기간); HH = Highest(Mcd, 기간); NL = Valuewhen(1, Mcd < LL(1), Mcd); DaH = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,HH); DaD = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,NL); Mcd업위치 = DaH > Mcd && DaD > Mcd && CrossUp(Mcd, Mcds); Mcd다바스업 = Sum(CrossUp(Mcd,DaH),횟수)>=1; Cnt = CountSince(Mcd업위치, Mcd다바스업)==1; Cnt && !Cnt(1) 기간 20 K 10 횟수 20 부탁 드립니다. 감사합니다. 키움의 countSince의 표현 방법이 다양한거 같은데 설명서?를 봐도 잘 이해가 안가더라구요 정의나 개념을 조금만 설명 부탁드려도 될까요?
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-05-30 10:30:13

안녕하세요 예스스탁입니다. countSince(A,B)는 예스랭귀지에서는 제공되지 않는 함수입니다. A조건만 만족 후 B조건이 만족한 횟수를 리턴합니다. 1 input : 기간(20),k(10); var : m5(0),m112(0),m224(0),m448(0); var : ll(0),hh(0),nh(0),dah(0),bu(0),idx(0); var : 다바스업(False),cnt(-1); M5 = ema(C,5); M112 = ema(C,112); M224 = ema(C,224); M448 = ema(C,448); LL=Lowest(L[1],기간); HH=Highest(H[1],기간); if H > HH Then { NH = H; idx = 0; } Else { if NH > 0 Then { idx = idx+1; if idx == 기간-k Then DaH = NH; } } Bu = BollBandUp(90,2); 다바스업 = CrossUp(M5,DaH); if CrossUp(C,Bu) Then Cnt = 0; if cnt >= 0 and 다바스업 Then cnt = cnt+1; if cnt == 1 and cnt != cnt[1] Then Find(1); 2 input : 기간(20),k(10),횟수(20); var : m33(0),m112(0),m224(0),m448(0); var : mcd(0),mcds(0),ll(0),hh(0),nl(0),idx(-1); var : Dah(0),Dad(0); var : Mcd업위치(False),Mcd다바스업(False),Cnt(-1); M33 = Ema(C,33); M112 = Ema(C,112); M224 = Ema(C,224); M448 = Ema(C,448); Mcd = Macd(33, 112); Mcds = Ema(Mcd,9); LL = Lowest(Mcd, 기간); HH = Highest(Mcd, 기간); if Mcd < LL[1] Then { NL = Mcd; idx = 0; } Else { if idx >= 0 Then { idx = idx+1; if idx == 기간-k Then { Dah = HH; DaD = NL; } } } Mcd업위치 = DaH > Mcd && DaD > Mcd && CrossUp(Mcd, Mcds); Mcd다바스업 = CountIf(CrossUp(Mcd,DaH),횟수)>=1; if Mcd업위치 Then Cnt = 0; if Mcd다바스업 Then cnt = cnt+1; if cnt == 1 and cnt != cnt[1] Then Find(1); 즐거운 하루되세요 > 손느린주식 님이 쓴 글입니다. > 제목 : 수식 변환 부탁드립니다. > 안녕하세요. 키움에서 쓰고 있는 수식 2 가지를 신호검색으로 변환 부탁 드리겠습니다. 1. M5 = eavg(C,5); M112 = eavg(C,112); M224 = eavg(C,224); M448 = eavg(C,448); LL=Lowest(L(1),기간); HH=Highest(H(1),기간); NH=valuewhen(1,H>HH(1),H); DaH = Valuewhen(1,barsSince(H>HH(1))==(기간 - k), NH); Bu = BBandsUp(90,2); 다바스업 = CrossUp(M5,DaH); Cnt = CountSince(CrossUp(C,Bu), 다바스업)==1; Cnt && !Cnt(1) 기간 20 k 10 2. M33 = eavg(C,33); M112 = eavg(C,112); M224 = eavg(C,224); M448 = eavg(C,448); Mcd = Macd(33, 112); Mcds = eavg(Mcd,9); LL = Lowest(Mcd, 기간); HH = Highest(Mcd, 기간); NL = Valuewhen(1, Mcd < LL(1), Mcd); DaH = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,HH); DaD = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,NL); Mcd업위치 = DaH > Mcd && DaD > Mcd && CrossUp(Mcd, Mcds); Mcd다바스업 = Sum(CrossUp(Mcd,DaH),횟수)>=1; Cnt = CountSince(Mcd업위치, Mcd다바스업)==1; Cnt && !Cnt(1) 기간 20 K 10 횟수 20 부탁 드립니다. 감사합니다. 키움의 countSince의 표현 방법이 다양한거 같은데 설명서?를 봐도 잘 이해가 안가더라구요 정의나 개념을 조금만 설명 부탁드려도 될까요?