커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

수고하십니다. 키움 수식 변환을 부탁드립니다. 새해 복많이 받으십시요 S=sum(1); TT=S%기간; 조건=TT==1; HH=HighestSince(1,조건,H); Hc=valuewhen(1,조건,HH(1)); LL=LowestSince(1,조건,L); Lc=valuewhen(1,조건,LL(1)); Cc=valuewhen(1,조건,C(1)); Oo=valuewhen(2,조건,O); 기준=Hc+Lc+Cc; 고=if(Cc>Oo, (기준+Hc)/2-Lc, if(Cc<Oo, (기준+Lc)/2-Lc, (기준+Cc)/2-Lc)); 저=if(Cc>Oo, (기준+Hc)/2-Hc, if(Cc<Oo, (기준+Lc)/2-Hc, (기준+Cc)/2-Hc)); (고+저)/2 ----------------- 기간 : 3 비율 : 3
프로필 이미지
질풍이
2022-12-29
1609
글번호 164964
지표

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2022-12-29
31
글번호 164963
시스템
답변완료

검토 부탁드립니다.

안녕하세요? 아래 지표수식에서 입력변수 n값이 잘 반영이 안되는 것 같습니다. 즉 변수 값(예 500)에 넘어갈 경우 라인이 변해야 되는데 1,000 ~ 3,000 이상 넘어가도 라인이 변하지 않습니다. 검토해 주시면 정말정말 감사하겠습니다. 새해에도 복 많이 받으시고 건강하세요. 그리고 지난 한해에도 정말 감사했습니다. ========================== input : R1(500),G1(0),B1(0); input : R2(0),G2(0),B2(255); input : n(500); var : hh(0),ll(0),hc(0),Lc(0),hl(0),lh(0),T(0); if Bdate != Bdate[1] Then var1 = 0; var1 = var1 + (Upvol-DownVol); if Bdate != Bdate[1] Then { hh = var1; ll = var1; hl = var1; lh = var1; HC = C; LC = C; } Else { if var1 > hh Then { T = 1; hh = var1; hl = var1; hc = c; } Else if var1 < ll Then { T = -1; ll = var1; lh = var1; lc = c; } Else { if T == 1 and var1 < hl Then { hl = var1; if CrossDown(hl,hh-n) Then LC = c; } if T == -1 and var1 > lh Then { lh =var1; if CrossUp(lh,ll+n) Then hc = c; } } } { Plot1(hc,"최고"); plot2(lc,"최저"); }
프로필 이미지
포보스
2022-12-29
888
글번호 164957
지표
답변완료

함수

안녕하세요 if c > (전일종가 - 2pt) then buy(); 수고하세요
프로필 이미지
달마7
2022-12-29
888
글번호 164954
사용자 함수
답변완료

80134 이어서 질문입니다.

1. average(c,10) 2. accumn(c,10) 3. c+c[1]+c[2].......+c[9] 제일 마지막이 시뮬이 2배가까이 제일 빠릅니다. 3번은 램이 500메가 움직이는데, 1번,2번 모두 램이 6기가씩 출렁입니다. 어쩔수없는지 궁금하네요 period 를 길게 쓰는것도 아니고 , accumn(c,3) 이정도 선에서 accumn 함수를 150개 씁니다.
프로필 이미지
캣피쉬
2022-12-29
989
글번호 164952
시스템
답변완료

부탁 드립니다

도움에 감사 드립니다. 그림과 같이 부탁드립니다. 미리 감사 드립니다. input:년월일(20220101); input:sig(5); var : v2(0,data2),sum(0,data2); v2=data2(ma(c,sig)); if Condition1 == false and sdate >=년월일 Then Condition1 = true; if Condition1 == true and Condition1[1] == false Then { sum = 0; } if Condition1 == true then { sum = sum + v2; } var1=ma(sum,sig); plot1(var1); PlotBaseLine1(0);
프로필 이미지
yes
2022-12-28
1181
글번호 164950
지표
답변완료

트렌드 쓰리바닥

inputs: ATRLength(15), Strength(18), 폭(0.25); input : 쌍바닥상1(2),쌍바닥상2(0),쌍바닥하1(1),쌍바닥하2(2); input : 쌍봉상1(2),쌍봉상2(1),쌍봉하1(0),쌍봉하2(2); var : STrend(0),ATRv(0), avgv(0), dnv(0), upv(0), trend(1), flag(0), flagh(0), ST(0),hl(0); var : idx(0),hh(0),ll(0),EP1(0),EP2(0); var : ema1(0),ema2(0),ema3(0),h1(0),h2(0),h3(0),h4(0),L1(0),l2(0),l3(0),l4(0); var :tx(0),tl(0),tx1(0),tx2(0),tx11(0),tx12(0),tx3(0); Ep1 = 2/(ATRLength+1); Ep2 = 2/(Strength+1); idx = idx+1; if idx < ATRLength Then { hh = DayHigh; ll = daylow; } Else { hh = Highest(High, ATRLength); ll = Lowest(Low, ATRLength); } if idx < Strength Then { h1 = DayHigh; l1 = daylow; } Else { h1 = Highest(High, Strength); l1 = Lowest(Low, Strength); } hl = hh-ll; if idx == 1 Then { ema1 = hl; ema2 = h; ema3 = l; } Else { ema1 = hl * EP1 + ema1 * (1-EP1); ema2 = h * EP2 + ema2 * (1-EP2); ema3 = l * EP2 + ema3 * (1-EP2); } atrv = ema1; avgv = (ema2+ema3)/2; upv = avgv + ATRv; dnv = avgv - ATRv; if idx >= 2 then { if c > upv[1] and c > h1[1] then trend = 1; else if c < dnv[1] and c < l1[1] then trend = -1; if trend < 0 and trend[1] > 0 then flag=1; else flag=0; if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0; if trend > 0 and dnv < dnv[1] then dnv=dnv[1]; if trend < 0 and upv > upv[1] then upv=upv[1]; if flag == 1 then upv = avgv + ATRv; if flagh == 1 then dnv = avgv - ATRv; if trend == 1 then ST = dnv; else ST = upv; STrend = trend; } Plot1(st,"SuperTrend",iff(strend == 1,red,blue)); if Trend != Trend[1] Then { if Trend == 1 Then { var1 = h; var2 = var1[1]; TL = TL_New_Self(sDate,sTime,var1,sDate,sTime,99999999); TL_SetColor(TL,Red); TL_SetSize(TL,0.5); tx = Text_New_Self(sDate,sTime, st-PriceScale*0,"●"); Text_SetColor(tx,Red); Text_SetSize(tx,20); Text_SetStyle(tx,2,2); if Var4 > 0 and var3 <= Var4+PriceScale*쌍바닥상1 and var3 >= Var4+PriceScale*쌍바닥상2 Then { tx11 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●"); Text_SetColor(tx11,Magenta); Text_SetSize(tx11,30); Text_SetStyle(tx11,2,2); } if Var4 > 0 and var3 <= Var4-PriceScale*쌍바닥하1 and var3 >= Var4-PriceScale*쌍바닥하2 Then { tx11 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●"); Text_SetColor(tx11,Lime); Text_SetSize(tx11,30); Text_SetStyle(tx11,2,2); } } Else { Var3 = l; Var4 = Var3[1]; tx = Text_New_Self(sDate,sTime, st+PriceScale*0,"●"); Text_SetColor(tx,Blue); Text_SetSize(tx,20); Text_SetStyle(tx,2,2); if Var2 > 0 and var1 <= Var2+PriceScale*쌍봉상1 and var1 >= Var2+PriceScale*쌍봉상2 Then { tx12 = Text_New_Self(sDate,sTime, st+PriceScale*0,"●"); Text_SetColor(tx12,Cyan); Text_SetSize(tx12,30); Text_SetStyle(tx12,2,2); } if Var2 > 0 and var1 <= Var2-PriceScale*쌍봉하1 and var1 >= Var2-PriceScale*쌍봉하2 Then { tx12 = Text_New_Self(sDate,sTime, st+PriceScale*0,"●"); Text_SetColor(tx12,Green); Text_SetSize(tx12,30); Text_SetStyle(tx12,2,2); } } } Else { if Trend == 1 Then { if h > var1 Then var1 = h; } if Trend == -1 Then { if l < var3 Then var3 = l; } } if Trend != Trend[1] Then { if Trend == 1 Then { h2 = h; h3 = h2[1]; h4 = h3[1]; if L4 > 0 and max(L2,l3,l4) <= min(L2,l3,l4)+폭 Then { tx1 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●"); Text_SetColor(tx1,Black); Text_SetSize(tx1,20); Text_SetStyle(tx1,2,2); } Text_Delete(tx3); } Else #음전환 { L2 = l; l3 = l2[1]; l4 = l3[1]; Condition1 = False; if L4 > 0 and max(l3,l4) <= min(L3,L4)+폭 Then { tx3 = Text_New_Self(sDate,sTime, st+PriceScale*2,"●"); Text_SetColor(tx3,Red); Text_SetSize(tx3,40); Text_SetStyle(tx3,2,2); Condition1 = true; } if Condition1 == true and l2 < max(l3,l4)-폭 Then { Condition1 = False; Text_Delete(tx3); } } } Else { if Trend == 1 Then { if h > h2 Then h2 = h; } if Trend == -1 Then { if l < L2 Then { L2 = l; if Condition1 == true and l2 < max(l3,l4)-폭 Then { Condition1 = False; Text_Delete(tx3); } } } } 첨부한 파일에서 아래쪽이 수정한 실시간 쓰리바닥인데 표시한 부분에 동그라미 출력이 안됩니다. 161줄의 Text_Delete(tx3); 와 연관된 듯 합니다. 실시간 쓰리바닥은 잘됩니다. 여러번 귀찮게 하네요. 고맙습니다.
프로필 이미지
고성
2022-12-28
1264
글번호 164949
지표

신대륙발견 님에 의해서 삭제되었습니다.

프로필 이미지
신대륙발견
2022-12-28
28
글번호 164947
지표
답변완료

확인부탁합니다

지표문의 80085 번 수식확인 부탁합니다 안녕하세요 예스스탁입니다. input : ndate(20221201),n(20); var : ii(0); var : pre1(0),pre2(0),pre3(0),pre4(0); var : sum1(0),sum2(0),sum3(0),sum4(0); var : do(0),dh(0),dl(0),dc(0); if Bdate != Bdate[1] Then { if Bdate >= ndate Then { ii = ii+1; } if ii >= 1 Then { pre1 = pre1 + dh[1]; pre2 = pre2 + do[1]; pre3 = pre3 + dl[1]; pre4 = pre4 + dc[1]; do = o; dh = h; dl = l; dc = c; } } if ii >= 1 Then { if ii <= n Then { if dh > 0 and H > dh Then dh = H; if dl > 0 and L < dl Then dl = L; dc = C; sum1 = pre1+do; sum2 = pre2+dh; sum3 = pre3+dl; sum4 = pre4+dc; } Plot1(sum1); Plot2(sum2); Plot3(sum3); Plot4(sum4); }
프로필 이미지
대발이
2022-12-28
1255
글번호 164945
지표