커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
1531
글번호 230811
지표
답변완료

3

안녕하세요 1.선물에서1분에서데이터가 들어올때 외국인 매수이면은 매수로진입 매도는반대로진입하는수식부탁합니다 앞에문의한수식은 아닌것같읍니다 2.위에수식에서 예을들어 매수에서 매도로바뀌면은 스위칭되는 수식도부탁합니다 감사합니다
프로필 이미지
질갱이
2023-06-22
1273
글번호 169981
시스템
답변완료

추세선박스 중간선

input : Period(250); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0); var : TL(0),TL1(0),TX(0),tl4(0),tl5(0),tl9(0); var : box(0),box1(0),txx(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Plot1(value12); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; box = box_new(date11,time11,Value11,date12,time12,Value12); tl = tl_new(date11,time11,(Value11+value12)/2,date12,time12,(Value11+value12)/2); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date22 = date[0]; time22 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } TL_SetBegin(tl,date11,time11,(Value11+value12)/2); TL_SetEnd(tl,date12,time12,(Value11+value12)/2); if value12 > value11-0.7 Then { Box_SetColor(box,LCyan); Box_SetFill(box,true,20); } else if value12 <= value11-0.7 and value12 > value11-1 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,50); } else if value12 <= value11-1 and value12 > value11-1.7 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,40); } else { Box_SetColor(box,Yellow); Box_SetFill(box,true,30); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; box = box_new(date11,time11,Value11,date12,time12,Value12); tl = tl_new(date11,time11,(Value11+value12)/2,date12,time12,(Value11+value12)/2); } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date32 = date[0]; time32 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } TL_SetBegin(tl,date11,time11,(Value11+value12)/2); TL_SetEnd(tl,date12,time12,(Value11+value12)/2); if Value12 >= value11+1 Then { Box_SetColor(box,Magenta); Box_SetFill(box,true,20); } Else { Box_SetColor(box,Orange); Box_SetFill(box,true,20); } } 박스의 중앙선(50%) 라인에 추가로, 하락 박스는 아래로 61.8% 지점에, 상승 박스는 위로 61.8% 지점에 라인 추가 부탁드립니다.
프로필 이미지
고성
2023-06-22
1110
글번호 169980
지표
답변완료

잘 부탁드립니다

####1번지표 2번지표 하나의 지표로 부탁드립니다 ### 1번 input : n1(10),n2(21),obLevel1(60),obLevel2(53),osLevel1(-60),osLevel2(-53); var : ap(0),esa(0),dd(0),ci(0),tci(0),wt1(0),wt2(0),tx(0); ap = (h+l+c)/3 ; esa = ema(ap, n1); dd = ema(abs(ap - esa), n1); ci = (ap - esa) / (0.015 * dd); tci = ema(ci, n2); wt1 = tci; wt2 = ma(wt1,4); plot1(0,"0",GRAY); plot2(obLevel1,"obLevel1",red); plot3(osLevel1,"osLevel1",green); plot4(obLevel2,"obLevel2",red); plot5(osLevel2,"osLevel2",green); plot6(wt1,"wt1",green); plot7(wt2,"wt2",red); plot8(wt1-wt2,"wt1-wt2",blue); # 0선 아래 골드시 매수 if CrossUp(wt1,wt2) and wt1 < 0 Then { tx = text_new(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetColor(tx,Red); } 2번 input : RSI_Period(6),SF(5),QQE(3),ThreshHold(3); var : src(0),Wilders_Period(0),rsiv(0),rsima(0); var : AtrRsi(0),MaAtrRsi(0),dar(0); var : longband(0),shortband(0),trend(0); var : DeltaFastAtrRsi(0),RSIndex(0),newshortband(0),newlongband(0); var : cross_1(False),FastAtrRsiTL(0); src = close; Wilders_Period = RSI_Period * 2 - 1; Rsiv = rsi(RSI_Period); RsiMa = ema(Rsiv, SF); AtrRsi = abs(RsiMa[1] - RsiMa); MaAtrRsi = ema(AtrRsi, Wilders_Period); dar = ema(MaAtrRsi, Wilders_Period) * QQE; longband = 0.0; shortband = 0.0; trend = 0; DeltaFastAtrRsi = dar; RSIndex = RsiMa; newshortband = RSIndex + DeltaFastAtrRsi; newlongband = RSIndex - DeltaFastAtrRsi; longband = iff(RSIndex[1] > longband[1] and RSIndex > longband[1], max(longband[1], newlongband) , newlongband); shortband = iff(RSIndex[1] < shortband[1] and RSIndex < shortband[1], min(shortband[1], newshortband) , newshortband); cross_1 = crossup(longband[1], RSIndex) or CrossDown(longband[1], RSIndex); trend = iff(CrossUp(RSIndex, shortband[1]) or CrossDown(RSIndex, shortband[1]) , 1 , IFf(cross_1 , -1 , iff(isnan(trend[1]) == true, 1,trend[1]))); FastAtrRsiTL = iff(trend == 1 , longband , shortband); //////////////////// input : length(50),mult(0.35); var : basis(0),dev(0),upper(0),lower(0),color_bar(0); var : QQEzlong(0),QQEzshort(0); basis = ma(FastAtrRsiTL - 50, length); dev = mult * std(FastAtrRsiTL - 50, length); upper = basis + dev; lower = basis - dev; color_bar = iff(RsiMa - 50 > upper , Blue, IFf(RsiMa - 50 < lower , Red , gray)); // // Zero cross QQEzlong = 0; QQEzlong = iff(IsNan(QQEzlong[1]) == true,0,QQEzlong[1]); QQEzshort = 0; QQEzshort = iff(isnan(QQEzshort[1]) == true,0,QQEzshort[1]); QQEzlong = iff(RSIndex >= 50 , QQEzlong + 1 , 0); QQEzshort = iff(RSIndex < 50 , QQEzshort + 1 , 0); // PlotBaseLine1(0,"Zero",white); //////////////////////////////////////////////////////////////// input : RSI_Period2(6),SF2(5),QQE2(1.61),ThreshHold2(3); var : src2(0),Wilders_Period2(0),rsi2(0),rsima2(0); var : AtrRsi2(0),MaAtrRsi2(0),dar2(0); var : longband2(0),shortband2(0),trend2(0); var : DeltaFastAtrRsi2(0),RSIndex2(0),newshortband2(0),newlongband2(0); var : cross_2(False),FastAtrRsi2TL(0); var : QQE2zlong(0),QQE2zshort(0); var : hcolor2(0),Greenbar1(FalsE),Greenbar2(FalsE),Redbar1(False),Redbar2(False); src2 = close; Wilders_Period2 = RSI_Period2 * 2 - 1; Rsi2 = rsi(RSI_Period2); RsiMa2 = ema(Rsi2, SF2); AtrRsi2 = abs(RsiMa2[1] - RsiMa2); MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2); dar2 = ema(MaAtrRsi2, Wilders_Period2) * QQE2; longband2 = 0.0; shortband2 = 0.0; trend2 = 0; DeltaFastAtrRsi2 = dar2; RSIndex2 = RsiMa2; newshortband2 = RSIndex2 + DeltaFastAtrRsi2; newlongband2 = RSIndex2 - DeltaFastAtrRsi2; longband2 = iff(RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ,max(longband2[1], newlongband2) , newlongband2); shortband2 = iff(RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1],min(shortband2[1], newshortband2), newshortband2); cross_2 = CrossUp(longband2[1], RSIndex2) or CrossDown(longband2[1], RSIndex2); trend2 = iff(CrossUp(RSIndex2, shortband2[1]) or CrossDown(RSIndex2, shortband2[1]) , 1 , iff(cross_2 , -1 , iff(isnan(trend2[1]) == False, 1,trend2[1]))); FastAtrRsi2TL = iff(trend2 == 1 , longband2 , shortband2); // Zero cross QQE2zlong = 0; QQE2zlong = iff(IsNan(QQE2zlong[1])==true,0,QQE2zlong[1]); QQE2zshort = 0; QQE2zshort = iff(isnan(QQE2zshort[1]),0,QQE2zshort[1]); QQE2zlong = iff(RSIndex2 >= 50 , QQE2zlong + 1 , 0); QQE2zshort = iff(RSIndex2 < 50 , QQE2zshort + 1 , 0); // hcolor2 = iff(RsiMa2 - 50 > ThreshHold2 ,silver ,IFf( RsiMa2 - 50 < 0 - ThreshHold2 , silver , White)); plot1(FastAtrRsi2TL - 50, "QQE Line", white); plot2(RsiMa2 - 50, "Histo2", hcolor2); Greenbar1 = RsiMa2 - 50 > ThreshHold2; Greenbar2 = RsiMa - 50 > upper; Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2; Redbar2 = RsiMa - 50 < lower; if Greenbar1 and Greenbar2 == true Then plot3(RsiMa2 - 50, "QQE Up",ReD); else NoPlot(3); if Redbar1 and Redbar2 == true Then plot4(RsiMa2 - 50, "QQE Down",BluE); Else NoPlot(4);
프로필 이미지
매치다2
2023-06-22
758
글번호 169975
지표

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2023-06-22
14
글번호 169974
지표
답변완료

키움수식 변환 부탁드립니다.

안녕하세요. 항상 노고에 감사드립니다. 아래 키움수식을 예스에서 종목검색을 할 수있도록 변환요청 드립니다. 기간 : 20 기간1: 60 A=EAVG(C,기간); A1=TEMA(C,기간); A2=DEMA(C,기간); S=(O-avg(L,20))/stdev(L,20); S1=valuewhen(1,crossup(S,0),C); B=Disparity(기간); B1=Disparity(기간1); B2=MAX(A,A1,A2,S1); B3=MIN(A,A1,A2,S1); B3*1.03>=B2 && Crossup(B,100) && Crossup(B1,100) 감사합니다.
프로필 이미지
SongTong
2023-06-22
947
글번호 169973
종목검색
답변완료

수식 부탁드립니다

안녕하세요 항상감사합니다 단순이동평균선이 정배열(5>10>20>60)일경우 차트상 정배열상태인 모든봉에 화살표 표시를 하고자합니다 수식부탁드립니다
프로필 이미지
seayun1
2023-06-22
881
글번호 169972
지표
답변완료

수식변형부타드립니다.

종목검색 수식1 event =H > highest( H(1), lb ) ; event2 = BarsSince(event) ; 조건1 = event AND event2(1)>=lb ; Line1 = valueWhen(1, 조건1, C ) ; 1. 조건1이 발생하는종목... 2. 조건1이 발생하고 일정기간이내에 현재가가 Line1의 3%범위안에 근접한 종목검색.. 종목검색 수식2 E1 = Lowest(C,pds1) ; E2 = Highest(C,pds2) ; Setup = E1>E2(pds2) AND Sum( C < E3, pds3 ) == 0 AND ( C- MA( C, pds3 ) )/C*100 < PCT ; 조건2 = ref( Setup, 1 ) && H > H(1) ; Line2 = valueWhen(1, 조건2 , C ) ; 1. 조건2이 발생하는종목... 2. 조건2이 발생하고 일정기간이내에 현재가가 Line2의 3%범위안에 근접한 종목검색.. 오늘도 좋은 하루되세요..
프로필 이미지
예그리나
2023-06-22
1546
글번호 169971
종목검색
답변완료

부탁 드립니다

키움 수식 입니다 좀 풀어 주시면 감사하겠읍니다 highestsince(1,crossup(trix(period),0),가격); lowestsince(1,crossdown(trix(period),0),가격);
프로필 이미지
야할라
2023-06-22
1112
글번호 169970
지표
답변완료

부탁 드립니다

키움 수식 입니다 좀 풀어 주시면 감사하겠읍니다 1. 매수조건 if(eavg(c,6,0)>eavg(c,6,6), if((c+c(1))/2>(h(3)+h(4))/2,1,0),0) and c>(h(2)-l(2))/2 and c>h(3) and mfi(14)>40 2 매도조건 if(eavg(c,6,0)<eavg(c,6,6), if((c+c(1))/2<(h(3)+h(4))/2,1,0),0) and c<(h(2)+l(2))/2 and c<h(3) and mfi(14)<40
프로필 이미지
야할라
2023-06-22
1235
글번호 169969
지표