커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

수고하십니다. 아래 수식을 검색하여 붙임 그림과 같이 검색된 골든브릿지증권 차트입니다. 1. 이 검색식에서 기준봉이 오늘 봉인지 어제 봉인지요 2. 오늘, 어제 봉 두봉중 어제봉의 저점을 기준으로 이전10봉까지 1% 이내의 봉의 개수가 3개 이하라 판단되는데 어디가 잘 못 되었는지 알려 주시면 고압겠습니다. 3. 그리고 오늘봉도 카운트에 포함되나요 = 아래 검색식 구현 의도 = 일봉상 오늘 현재봉(기준봉)의 저점과 최근 10봉중 캔들의 저점을 비교하여 +,- 1%(범위)이내인 봉이 5개 이상 나오는 종목중을 검색하는 식 input : P(10),Per(1),N(5); var : cnt(0),count(0); count = 0; for cnt = 1 to P{ if L[cnt] <= L*(1+Per/100) and L[cnt] >= (1-Per/100) Then count = count+1; } if count >= N Then find(count);
프로필 이미지
자아준
2018-03-08
254
글번호 117234
종목검색
답변완료

부탁드립니다

아래수식에서하면 항셍인덱스가 18시15분 정도에서 시작하던데 이걸 10시부터 새벽2시까지로 수정부탁드립니다 input : N(40),P1(1),P2(10),P3(20),P4(60),P5(120),z1(20); var : HR(0),LR(0),cnt(0),sum1(0),avgv1(0),sum2(0),avgv2(0),sum3(0),avgv3(0),sum4(0),avgv4(0),sum5(0),avgv5(0); sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; for cnt = 1 to P5{ if cnt <= P1 Then sum1 = sum1+(dayhigh(cnt)-daylow(cnt)); if cnt <= P2 Then sum2 = sum2+(dayhigh(cnt)-daylow(cnt)); if cnt <= P3 Then sum3 = sum3+(dayhigh(cnt)-daylow(cnt)); if cnt <= P4 Then sum4 = sum4+(dayhigh(cnt)-daylow(cnt)); if cnt <= P5 Then sum5 = sum5+(dayhigh(cnt)-daylow(cnt)); } #P1일 평균진폭 if dayhigh(P1) > 0 Then avgv1 = sum1/P1; #P2일 평균진폭 if dayhigh(P2) > 0 Then avgv2 = sum2/P2; #P3일 평균진폭 if dayhigh(P3) > 0 Then avgv3 = sum3/P3; #P4일 평균진폭 if dayhigh(P4) > 0 Then avgv4 = sum4/P4; #P5일 평균진폭 if dayhigh(P5) > 0 Then avgv5 = sum5/P5; if avgv1 > 0 then{ plot2(avgv1/PriceScale,"1"); } if avgv2 > 0 then{ plot4(avgv2/PriceScale,"10"); } if avgv3 > 0 then{ plot6(avgv3/PriceScale,"20"); } if avgv4 > 0 then{ plot8(avgv4/PriceScale,"60"); } if avgv5 > 0 then{ plot10(avgv5/PriceScale,"120"); } #당일진폭과 n일 최고,최저진폭 HR = dayhigh(1)-daylow(1); LR = dayhigh(1)-daylow(1); for cnt = 1 to N{ if dayhigh(cnt)-daylow(cnt) > HR Then HR = dayhigh(cnt)-daylow(cnt); if dayhigh(cnt)-daylow(cnt) < LR Then LR = dayhigh(cnt)-daylow(cnt); } plot21(HR/PriceScale,"최대진폭"); plot22(LR/PriceScale,"최소진폭"); var1=dayhigh; var2=daylow; var3=dayhigh-daylow; var4=dayhigh-C; var5=C-daylow; plot23(var4/PriceScale,"---고가-현재가"); plot24(var5/PriceScale,"+++현재가-저가"); plot25((var4+var5)/PriceScale/2,"중가"); plot26((var3-var5)/PriceScale,"눌림"); plot27((var1-var2)/PriceScale,"당일진폭"); plot28(z1,"기입");
프로필 이미지
마르뚝
2018-03-08
247
글번호 117233
지표
답변완료

부턱드립니다

아래 수식에서 하루전 또는 N일전의 수식부탁드립니다 input : 시작시간(173000),끝시간(183000); if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{ var1 = O; var2 = H; var3 = L; var4 = C; Condition1 = true; } if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간) Then Condition1 = false; if Condition1 == true then{ if H > var2 Then var2 = H; if L < var3 Then var3 = L; } plot1(var1,"시가"); plot2(var2,"고가"); plot3(var3,"저가"); plot4((var2+var3)/2,"중가"); plot5(var4,"close종가");
프로필 이미지
마르뚝
2018-03-08
238
글번호 117232
지표
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 강조 아래 지표에서 매수방향(값이 0보다 크면 매수 방향)이면 매도방향으로 크게(크게는 1개봉전 대비 크기가 n이상 일때로 정함) 변할 때 강조 코딩 부탁드립니다. if bdate != bdate[1] Then {var1 = 0; var2 =0; var3=0;} if C > O Then var1 = var1 + C-O; if C < O Then var2 = var2 + O-C; var3 = ((var1 - var2)/dayopen)*1000; plot1(var3); 2. 기타 위 지표에서 매수방향이라면 매수방향 고점(시가부터 고점까지의 값) 대비 n% 이상 되돌렸을 때 고가 저가 저장, 매도는 반대 3. 강조 위 지표에서 장시작후 3개봉까지의 합이 n이상일 때 강조 4. 56974 답변 부탁드립니다.
프로필 이미지
잡다백수
2018-03-08
235
글번호 117225
시스템
답변완료

진입시간 제한

input조절에 일정시간 이후 진입을 제한하는 수식을 추가바랍니다. 고맙습니다. **************** input : s1(20),s2(20),X1(20),X2(20),진입시간(090000); var : T1(0),entry(0),LL(0),EH(0); if Bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 and stime >= 진입시간 and C >= daylow+PriceScale*s1 and C[1] < daylow+PriceScale*s1 Then sell("s1"); if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then EH = H; if H > EH Then EH = H; if entry == 1 and C <= EH-PriceScale*X1 Then ExitShort("sx1"); } if TotalTrades > TotalTrades[1] Then LL = L; if L < LL Then LL = L; if MarketPosition == 0 and entry == 1 and stime >= 진입시간 and C >= LL+PriceScale*s2 and C[1] < LL+PriceScale*s2 Then sell("s2"); if MarketPosition== 1 and entry == 2 Then exitlong("sx2",AtStop,EntryPrice-PriceScale*X2);
프로필 이미지
좌오비우오비
2018-03-08
234
글번호 117219
시스템
답변완료

부탁 드립니다.

도움 주심에 감사 드립니다. var4 값이 1)해선 시작시간(08:00)에 계산을 시작하여 익일 07:00에 마치는 수식과 2)주초(월요일 08:00)에 시작하여 주말(토요일 07:00)에 마치는 수식 부탁 드립니다. 미리 감사 드립니다. var1=iff(o>c,c-o,0); var2=iff(o<c,o-c,0); var3=var1-var2; var4=accum(var3);
프로필 이미지
yes
2018-03-08
237
글번호 117218
지표

스오어스 님에 의해서 삭제되었습니다.

프로필 이미지
스오어스
2018-03-08
11
글번호 117217
지표
답변완료

문의드립니다.

안녕하세요. Input : N(5) ; var : Hv(0),Lv(0),cnt(0),Hiv(0),Liv(0),sum1(0),sum2(0),ii(0), HLH(0); Array : HH[50](0),HI[50](0),LL[50](0),LI[50](0); if date != date[1] Then { HH[0] = H; HI[0] = index; LL[0] = L; LI[0] = index; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; HI[cnt] = HI[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; LI[cnt] = LI[cnt-1][1]; } } if H > HH[0] Then { HH[0] = H; HI[0] = index; } if L < LL[0] Then { LL[0] = L; LI[0] = index; } if HH[abs(N)-1] > 0 and LL[abs(N)-1] > 0 Then { # 음수를 사용하기 때문에 abs(N) 입력 Hv = HH[0]; Hiv = Hi[0]; Lv = LL[0]; Liv = Li[0]; for cnt = 0 to abs(N)-1 { # 음수를 사용하기 때문에 abs(N) 입력 if HH[cnt] >= Hv Then { Hv = HH[cnt]; Hiv = HI[cnt]; } if LL[cnt] <= Lv Then { Lv = LL[cnt]; Liv = LI[cnt]; } } if N >= 1 Then { ii = index-Liv; HLH = H[0]; } # HLH ; 저점 이후의 고점, 또는 고점 이후의 저점 if N <= -1 Then ### 여기에 대괄호 { 를 넣고 아래에 마감 괄호를 넣으면 지표가 이상해짐 - 그대로 사용 ii = index-Hiv; HLH = L[0]; } var1 =(H+L)/2*V; sum1 = 0; sum2 = 0; for cnt = 0 to ii { sum1 = sum1 + var1[cnt]; sum2 = sum2 + V[cnt]; var64 = sum1/sum2; # n일라인 if crossup(c,var64) Then { var51 = index; var7 = var64; # 상향 돌파한 값 } if CrossDown(c,var64) Then { var52 = index; var8 = var64; # 하향돌파한 값 } if N > 0 Then { # 양수이면 저점에서 현재까지 출력 plot1(var64,"n일라인"); if c < var64 then plot2(var8,"n일라인 돌파값"); } if N < 0 Then { # 음수이면 고점에서 현재까지 출력 plot1(var64,"n일라인"); if c > var64 then plot2(var7,"n일라인 돌파값"); } } --------------------------------- 선물 15분봉에서 위 수식의 지표 출력하면 if c < var64 then plot2(var8,"n일라인 돌파값"); if c > var64 then plot2(var7,"n일라인 돌파값"); 이 출력값이 현재가가 var8, var7 을 돌파하기 전인데도 여러곳에 나타납니다. 위 수식 수정 부탁드립니다.
프로필 이미지
land22
2018-03-08
255
글번호 117214
지표
답변완료

함수식 변환요청드립니다.

안녕하세요.. 담당자님 늘 고생하십니다. 키움 파라볼릭 함수식을 예스로 변환해서 여기서 이제 써볼려고 했더니 없다고 해서 시그널메이커로 우회에서 구해봤습니다. 요청1. 변수최적화기능을 활용해보고 있는데, 익절, 손절 틱은 변수로 설정할 수 있어서 활용중입니다. 분봉도 변수로 설정할 수 있도록 코딩 부탁드립니다. input : BBP(5),dv(2), profit(0), loss(0); var : Price(0),BBmd(0),BBup(0),BBdn(0) ; Price = (C+H+L)/3; BBmd = ma(Price,BBP); BBup = BBmd + std(Price,BBP)*dv; BBdn = BBmd - std(Price,BBP)*dv; if crossup(C,bbup) Then { Buy("B"); } # 매도/매수청산 if CrossDown(C,bbdn) Then { Sell("S"); } SetStopProfittarget(Profit,PointStop); SetStopLoss(Loss,PointStop); 요청2. 예스로 키움식 파라볼릭 구현할 수 있도록 변환해 주시기 바랍니다. input : pAF(0.0022), pAFMAX(0.004); Var : vAf(0), vNewAf(0), vMinAf(0.02), vEp(0), vPep(0), vSar(0), vSarp(0), vTrend(1), vResult(0); If BarIndex = 1 Then Begin if C > C[1] Then Begin vEp = H[1]; vPep = H[1]; vTrend = 1; vSar = L[1]; vSarp = L[1]; End Else Begin vEp = L[1]; vPep = L[1]; vTrend = -1; vSar = H[1]; vSarp = H[1]; End; vNewAf = vMinAf; vResult = vSar + (vEp - vSar) * pAF; End Else Begin vSar = vSar[1] + vNewAf * (vEp - vSar[1]); vResult = vSar; vPep = vEp; if vTrend = 1 Then //상승추세 Begin if vSar > L Then Begin vSar = vEp; vResult = vSar; vEp = L; vNewAf = vMinAf; vTrend = -1; End Else if H > vPep Then Begin vEp = H; vNewAf = min(vNewAf + pAF, pAFMAX); End; End Else //하락추세 Begin if vSar < h Then Begin vSar = vEp; vResult = vSar; vEp = H; vPep = vEp; vNewAf = vMinAf; vTrend = 1; End Else if L < vPep Then Begin vEp = L; vNewAf = min(vNewAf + pAF, pAFMAX); End; End; End; plot1(vResult);
프로필 이미지
st002340
2018-03-08
291
글번호 117213
사용자 함수