커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

안녕하세요 아래수식의 내용을 이해좀시켜주셔요(설명좀 부탁드립니다) if date != date[1] Then{ var1 = 0; var2 = 0; var3 = 0; } var1 = var1+C; var2 = var2+1; var3 = var1/var2; plot1(var3);
프로필 이미지
백진강
2018-02-08
139
글번호 116475
시스템
답변완료

추가 수정 부탁드립니다.

며칠전 만들어주신 매매수식 감사드립니다. 한가지 수정부탁드리고 싶은게 있는데요 (1)오늘 시가 + W 값을 현재가가 돌파하고 그 돌파한 현재가가 5이평선위에 있으면 즉시 시장가매수 (일봉 완성후 매수 아닙니다) 조건에서 (수정 1) 오늘 시가가 어제까지 만들어진 5이평선 위에 있고 오늘 시가 + W 값을 현재가가 돌파하면 즉시 시장가매수 (일봉 완성후 매수 아닙니다) (수정 2) 오늘 시가 + W 값을 현재가가 돌파하면 조건을 수식 DayHigh < dayopen+W 으로 표현해 주셨는데 C > dayopen+W 으로 바꿔줘야 하는게 아닐까요? --------------------------- ----------------- 안녕하세요 예스스탁입니다. 문의하신 내용은 분봉차트에서 구현해야 합니다. 일봉에서는 미완성시에 이평과 현재가 비교해서 신호발생 불가능합니다. 분봉차트에서 일봉이평 계산해 비교해게 만들어야 합니다 아래식 참고하시기 바랍니다. input : N(5); var : cnt(0),sum(0),mav(0),W(0); sum = 0; for cnt = 0 to N-1{ sum = sum + DayClose(cnt); } mav = sum/N; W = dayhigh(1)-DayLow(1); if MarketPosition <= 0 and C > mav and DayHigh < dayopen+W and NextBarSdate == sdate Then buy("b",AtStop,dayopen+W); if NextBarSdate != sdate Then exitlong("bx",AtMarket); 즐거운 하루되세요 > 야구르트 님이 쓴 글입니다. > 제목 : 수식 질문드립니다. > 수식은 간단합니다. 어제 일봉중에 전일고가-전일저가 = W (1)오늘 시가 + W 값을 현재가가 돌파하고 그 돌파한 현재가가 5이평선위에 있으면 즉시 시장가매수 (일봉 완성후 매수 아닙니다) (2) 다음날 아침 시가에 모두 매도 부탁드립니다.
프로필 이미지
야구르트
2018-02-08
141
글번호 116474
시스템
답변완료

지표식 문의

안녕하세요 하기 지표식 문의 드립니다. 1. 볼린져 밴드 * data 1(60분봉), data 2(30분봉) 가 같이 나타나게 부탁드립니다. * 두개의 볼밴 모두 상단과 하단이 넓어지고 있을때는 네이비 칼라로 부탁드립니다. * 두개의 볼밴 모두 상단과 하단이 좁아지고 있을때는 옐로우 칼라로 부탁드립니다. * 중앙이평의 값의 증감을 표현하려고 합니다. 예를들어, 가격 상승시 볼린져 중앙이평의 증가값이 증가할때는 분홍색 증가는 하고 있지만, 전전봉보다 증가값이 감소할 때는 검은색 이런식으로 표현 부탁드립니다. 하락시에도 마찬가지로 표현부탁드립니다. * 두개의 볼린져 밴드 모두 상기의 조건들이 동시에 표현되게 부탁드립니다. 감사합니다.
프로필 이미지
softtoug
2018-02-08
176
글번호 116473
지표
답변완료

해석

아래 수식 주석부탁드립니다 ********************** input: 진입(092700); if date != date[1] then { var1 = 0; var2 = 0; } if stime <= 진입 then { if C > O then var1 = var1 + 1; else if C < O then var2 = var2 + 1; } if stime == 진입 and var1 > var2 then buy(); if stime == 진입 and var1 < var2 then sell();
프로필 이미지
목마와숙녀
2018-02-08
128
글번호 116471
시스템
답변완료

시스템식 추가 문의드립니다

안녕하세요 작성해 주신 시스템식 잘 작동합니다 감사합니다!!! 추가 문의사항이 있어서 글 올립니다 input에 금액 부분하고 2차 3차 4차 매수시 1차매수 대비 비율을 넣을 수 있는지 궁금합니다 금액 변경을 해보고, 추가 매수시 마다 몇배수(2배 , 3배 등등)로 넣을지 변경을 해보고 싶어 문의드립니다 감사합니다!!! -------------------------------------------------------------------------------- input : P(5); input : BBP(20),dv(2); var : cnt(0),sum(0),Dmav(0); var : BBmd(0),BBup(0),BBdn(0); var : Dmoney(0); sum = 0; for cnt = 0 to P-1{ sum = sum + DayClose(cnt); } Dmav = sum/P; BBmd = ma(C,BBP); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); if Bdate != bdate[1] Then Dmoney = 0; Dmoney = Dmoney+m; if MarketPosition == 0 and C > Dmav and Dmoney > 7500000000 and ((countif(H>=BBup,6) >= 1 and C[2] <= O[1]*0.97 and C[1] <= O[1]*0.97 and C <= BBmd) or (C[1] <= O[1]*0.985 and l < BBdn)) Then buy("b1"); if MarketPosition == 1 Then { if MaxEntries == 1 Then buy("b2",atlimit,LatestEntryPrice(0)*0.98); if MaxEntries == 2 Then buy("b3",atlimit,LatestEntryPrice(0)*0.97); if MaxEntries == 3 Then buy("b4",atlimit,LatestEntryPrice(0)*0.96); #상단-1% 터치시 매도 exitlong("bx1",AtLimit,BBup*0.99); #중단 터치시 매도 exitlong("bx2",AtLimit,BBmd); if MaxEntries <= 2 Then ExitLong("bp1",atlimit,AvgEntryPrice*1.03); Else ExitLong("bp2",atlimit,AvgEntryPrice); }
프로필 이미지
kosto1
2018-02-08
140
글번호 116469
시스템
답변완료

Re : Re : 수식요청 드립이다.

안녕하세요. 당일고가 저가 변폭 표시가 아니고 직전 완성봉의 고가 저가 변폭 입니다. 장중 직번봉 현재의 지수 위치를 파악하기 위해서 입니다. 수식수정 요청 드립이다. 감사합니다. //--------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. var : tx1(0),tx2(0); plot1(dayopen,"당일시가"); Text_Delete(tx1); Text_Delete(tx2); tx1 = Text_New(sdate,stime,dayopen,"고가변폭 : "+NumToStr(DayHigh-dayopen,2)); tx2 = Text_New(sdate,stime,dayopen,"저가변폭 : "+NumToStr(Dayopen-daylow,2)); Text_SetStyle(tx1,0,1); Text_SetStyle(tx2,0,0); 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식요청 드립이다. > 안녕하세요. 연결선물 분봉 틱봉 차트에서 장시작 후 실시간으로 봉이 완성될때마다 차트에 표시. -> 직전완성봉 기준으로, 당일시가에서 직전완성봉 고가 까지의 변폭 시가라인 위에 표시 예) 고가변폭 : 0.5P -> 직전완성봉 기준으로, 당일시가에서 직전완성봉 저가 까지의 변폭 시가라인 아래에 표시 예) 저가변폭 : 0.8P 수식요청 드립이다. 감사합니다.
프로필 이미지
dandy
2018-02-08
140
글번호 116464
검색
답변완료

다시 문의 드립니다

예를들면 만약에 10원 거래량 100 다음날에 20원 거래량 200 예상가격이 17원 정도 잖아요 그식을 구한식이고요 input : N(120); var1 = AccumN(V*C,N); var2 = AccumN(V,N); var3 = var1/var2; plot1(var3); 여기에 120봉 중에 거래량 평균을 내서 거래량 평균 이하는 제외 시켯으면 합니다
프로필 이미지
양봉길만걷자
2018-02-08
136
글번호 116461
지표
답변완료

수식변경부탁드립니다

안녕하세요 다음식은 고저점파동수식입니다 이식을 첨부 그림에서 1번고점기준으로 저점B를 찍고 1번고점을 CRSSUP하면 신호음이발생, 반대로 A점 저점기준으로 1번고점을 찍고 A저점을 CROSSDOWN하면 신호음발생되도로 부탁드립니다 Input:length(4),종가사용여부(0),파동선두께(5),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),tl2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,red); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,blue); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2018-02-08
177
글번호 116460
검색
답변완료

오류가 나네요 틀린검색이 됩니다.

# 지수이동평균 (5일/20일/60일/120일/250일) # 오늘부터 N일전까지 찾아라 # 'mm' 은 그날 고가와 저가의 평균이다. Input : P1(5), P2(20), P3(60), P4(120), P5(250); input : n(10); var : mm(0); mm = (H+L)/2; var1 = ema(mm,P1); var2 = ema(mm,P2); var3 = ema(mm,P3); var4 = ema(mm,P4); var5 = ema(mm,P5); # 5일지수이동평균이 20일지수이동평균을 상향 돌파하고 Condition1 = CrossUp(var1, var2); # N일전까지 찾아라. # 돌파한 값이 60일, 120일, 250일 지수이동평균보다 밑에 있는 것을 찾아라. if CountIF(Condition1, n) AND var1<var3 and var2<var3 and var3<var4 and var4<var5 Then find(1); ===문 제 점== 1. n 일수가 적용이 됐다 안됐다 합니다 2. 이평이 배열이 된것도 검색되고 안된것도 검색이 됩니다. (원래는 돌파점 < 60<120<250 순서여야 하는데 돌파점 < 60<120<250, 돌파점> 60>120>250 같이 검색이 됩니다.
프로필 이미지
혼자놀아요
2018-02-08
135
글번호 116454
종목검색