커뮤니티

안녕하세요 수식 검토 부탁드립니다~

프로필 이미지
소나기
2024-08-26 22:40:59
704
글번호 182844
답변완료
안녕하세요 아래의 조건으로 만들어주신 수식이 종목 검색이 안되어 재검토 부탁드립니다. 신호검색은 잡히는데, 종목이 검출이 안됩니다. 1. 현재봉기준 N(13)봉 이내에, 스토캐스틱슬로우(12,5) %K가 20선을 상향 돌파한 후에, MACD(12,26,9)가 signal선을 상향 돌파하고, RSI(14)가 50선을 상향 돌파하는 세 가지를 모두 만족하는 종목을 검색하고 싶습니다. 세 가지를 만족하기 전에 스토캐스틱 %K가 80선을 돌파하면 제외하는 조건입니다. (스토캐스틱 신호 후, MACD와 RSI는 순서 상관없음) 키움 신호수식은 다음과 같습니다. 이것을 예스 종목검색식으로 바꾸고 싶습니다. S = Stochasticsslow(sto1,sto2); M = Macd(short,long); Ms = eavg(M,sig); R = RSI(R기간); Bs_Sto = BarsSince(CrossUp(S,20)); cnt_Sto = CountSince(CrossUp(S,20), S<80); Bs_Macd = BarsSince(CrossUp(M,Ms)); Bs_Rsi = BarsSince(CrossUp(R,50)); 조건 = Bs_Sto > Bs_Macd && Bs_Sto > Bs_Rsi; //Max(Bs_Sto, Bs_Macd, Bs_Rsi) == Bs_Sto 조건 && !조건(1) && (Bs_Sto+1)==cnt_Sto ************************************************** input : sto1(10),sto2(5),short(12),long(26),sig(9),R기간(10),N(13); var : S(0),md(0),ms(0),R(0); var : Bs_Sto(-1),cnt_sto(-1),Bs_macd(-1),Bs_Rsi(-1),조건(False); S = StochasticsK(sto1,sto2); Md = Macd(short,long); Ms = Ema(Md,sig); R = RSI(R기간); if CrossUp(S,20) Then { Bs_Sto = 0; cnt_Sto = 0; } Else { if Bs_Sto >= 0 Then Bs_Sto = Bs_Sto+1; if cnt_Sto >= 0 and S < 80 Then cnt_Sto = cnt_Sto+1; } if CrossUp(Md,Ms) Then Bs_Macd = 0; Else { if Bs_Macd >= 0 Then Bs_Macd = Bs_Macd+1; } if CrossUp(R,50) Then Bs_Rsi = 0; Else { if Bs_Rsi >= 0 Then Bs_Rsi = Bs_Rsi+1; } 조건 = Bs_Sto >= 0 and Bs_Macd >= 0 and Bs_Rsi >= 0 and Bs_Sto <= N and Bs_Sto > Bs_Macd and Bs_Sto > Bs_Rsi; if 조건 && 조건[1] == False && (Bs_Sto+1)==cnt_Sto Then Find(1); 도움주셔서 감사드립니다. 늘 고맙습니다!!
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-08-27 15:48:37

안녕하세요 예스스탁입니다. cnt_Sto가 변환내용과 맞지 않아 식을 수정했습니다. input : sto1(10),sto2(5),short(12),long(26),sig(9),R기간(10),N(13); var : S(0),md(0),ms(0),R(0); var : Bs_Sto(-1),cnt_sto(-1),Bs_macd(-1),Bs_Rsi(-1),조건(False); S = StochasticsK(sto1,sto2); Md = Macd(short,long); Ms = Ema(Md,sig); R = RSI(R기간); if CrossUp(S,20) Then { Bs_Sto = 0; cnt_Sto = 0; } Else { if Bs_Sto >= 0 Then Bs_Sto = Bs_Sto+1; if cnt_Sto >= 0 and S < 80 Then cnt_Sto = cnt_Sto+1; } if CrossUp(Md,Ms) Then Bs_Macd = 0; Else { if Bs_Macd >= 0 Then Bs_Macd = Bs_Macd+1; } if CrossUp(R,50) Then Bs_Rsi = 0; Else { if Bs_Rsi >= 0 Then Bs_Rsi = Bs_Rsi+1; } 조건 = Bs_Sto >= 0 and Bs_Macd >= 0 and Bs_Rsi >= 0 and Bs_Sto <= N and Bs_Sto > Bs_Macd and Bs_Sto > Bs_Rsi; if 조건 && 조건[1] == False && Bs_Sto==cnt_Sto Then Find(1); 즐거운 하루되세요 > 소나기 님이 쓴 글입니다. > 제목 : 안녕하세요 수식 검토 부탁드립니다~ > 안녕하세요 아래의 조건으로 만들어주신 수식이 종목 검색이 안되어 재검토 부탁드립니다. 신호검색은 잡히는데, 종목이 검출이 안됩니다. 1. 현재봉기준 N(13)봉 이내에, 스토캐스틱슬로우(12,5) %K가 20선을 상향 돌파한 후에, MACD(12,26,9)가 signal선을 상향 돌파하고, RSI(14)가 50선을 상향 돌파하는 세 가지를 모두 만족하는 종목을 검색하고 싶습니다. 세 가지를 만족하기 전에 스토캐스틱 %K가 80선을 돌파하면 제외하는 조건입니다. (스토캐스틱 신호 후, MACD와 RSI는 순서 상관없음) 키움 신호수식은 다음과 같습니다. 이것을 예스 종목검색식으로 바꾸고 싶습니다. S = Stochasticsslow(sto1,sto2); M = Macd(short,long); Ms = eavg(M,sig); R = RSI(R기간); Bs_Sto = BarsSince(CrossUp(S,20)); cnt_Sto = CountSince(CrossUp(S,20), S<80); Bs_Macd = BarsSince(CrossUp(M,Ms)); Bs_Rsi = BarsSince(CrossUp(R,50)); 조건 = Bs_Sto > Bs_Macd && Bs_Sto > Bs_Rsi; //Max(Bs_Sto, Bs_Macd, Bs_Rsi) == Bs_Sto 조건 && !조건(1) && (Bs_Sto+1)==cnt_Sto ************************************************** input : sto1(10),sto2(5),short(12),long(26),sig(9),R기간(10),N(13); var : S(0),md(0),ms(0),R(0); var : Bs_Sto(-1),cnt_sto(-1),Bs_macd(-1),Bs_Rsi(-1),조건(False); S = StochasticsK(sto1,sto2); Md = Macd(short,long); Ms = Ema(Md,sig); R = RSI(R기간); if CrossUp(S,20) Then { Bs_Sto = 0; cnt_Sto = 0; } Else { if Bs_Sto >= 0 Then Bs_Sto = Bs_Sto+1; if cnt_Sto >= 0 and S < 80 Then cnt_Sto = cnt_Sto+1; } if CrossUp(Md,Ms) Then Bs_Macd = 0; Else { if Bs_Macd >= 0 Then Bs_Macd = Bs_Macd+1; } if CrossUp(R,50) Then Bs_Rsi = 0; Else { if Bs_Rsi >= 0 Then Bs_Rsi = Bs_Rsi+1; } 조건 = Bs_Sto >= 0 and Bs_Macd >= 0 and Bs_Rsi >= 0 and Bs_Sto <= N and Bs_Sto > Bs_Macd and Bs_Sto > Bs_Rsi; if 조건 && 조건[1] == False && (Bs_Sto+1)==cnt_Sto Then Find(1); 도움주셔서 감사드립니다. 늘 고맙습니다!!