커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

종목검색에서 다중 if문

안녕하세요? 종목검색 예제 수식에서는 한 개의 if문으로 작성이 되고, if문의 조건이 만족하면 find(Value)로 지정한 값이 출력되는 것으로 나와 있습니다. 하지만 한개의 if문 뿐만 아니라 종목검색에서 "다중 if문" 사용이 가능 한 것으로 알고 있습니다. 알고 싶은 것은, 종목검색식에서 다중 if문을 사용할 때, 어떤 if절의 조건이 만족하는 종목이 검색되는 것인가요? 예를 들면, if ma(c, 5) > c then var1 = 1; else var1 = -1 if ma(c, 10) > c then var2 = 1; else var2 = -1 if var1==1 and var2==1 then find(H); 에서 var1 = 1을 만족하는 종목의 고가가 검색 되는 것인지, var2 = 1을 만족하는 종목의 고가가 검색 되는 것인지, 아니면 마지막 조건문 if에 의해 둘다 만족하는 종목의 고가가 검색 되는 것인지 알고습니다. 만약 둘 다 만족(var1=1, var2=1)하는 종목이 검색된다면 결국 맨 마지막에 작성한 if문을 만족하는 종목을 검색 하는 것인지요? 다중 if문에서 종목검색 기준의 명확한 설명 부탁드립니다. 감사합니다.
프로필 이미지
inreever
2018-08-26
272
글번호 121601
종목검색
답변완료

종가매매 수식 수정부탁드립니다.

제가 설명을 잘못 드렸네요. 죄송합니다 ㅎㅎ 피라미딩 10회, 수량을 100주로 설정했다고 가정을 하면 첫째날 매수조건에 부합하여 100주 매수 둘째날 매수조건에 부합하여 100주 매수 세째날 매수청산 조건에 부합을 하면 100주 매수청산 (=9회의 매수기회가 남는거죠) 이렇게 연속적으로 매매되길 바랍니다. (매도와 매도청산도 마찬가지 입니다.) - 아 래 - 1. if stime == 151000 then { if C < O Then buy("b"); if MarketPosition == 1 and C > O and C >= AvgEntryPrice*1.03 Then ExitLong("bx"); } 2 if stime == 151000 then { if C > O Then sell("s"); if MarketPosition == -1 and C < O and C <= AvgEntryPrice*0.97 Then ExitShort("sx"); }
프로필 이미지
승부사1
2018-08-25
215
글번호 121600
시스템
답변완료

조건 발생 봉 기준가 매매

수고하십니다. 조건 발생봉의 시가를 지정가로 다음 봉부터 N봉 이내에 매수 매도 진입하려고 하는데, 아래 식과 같이 작성하였는데 문제가 있는 것 같아서, 이를 수정, 또는 새로 작성하여 주시면 감사하겠습니다. input : N(5); var : price1(0),price2(0),index1(0),index2(0); condition1=crossUp(c,ma(c,5)); if condition1 then { condition11=true; condition12=false; price1=open; index1=index; } if condition11 and index1>=index-N then Buy("B1",atLimit,price1); condition2=crossDown(c,ma(c,5)); if condition2 then { condition11=false; condition12=true; price2=open; index2=index; } if condition12 and index2>=index-N then Sell("S1",atLimit,price2);
프로필 이미지
씸풀
2018-08-27
227
글번호 121599
시스템
답변완료

주봉 월봉 삼각가중이평

일봉에 표시할 삼각가중이동평균선을 부탁드립니다. 1. 주봉 삼각가중이평 5, 20, 60, 120 2. 월봉 삼각가중이평 5, 20, 60, 120 참조데이터를 사용하지 않는 방법으로 부탁드립니다.
프로필 이미지
부엉이
2018-08-25
241
글번호 121598
지표
답변완료

에러 원인

수식 잘 보았습니다. 그런데 수정되어야 할 부분이 있습니다. 우선 아래 코드에서 var3가 사용되어야 할 자리에 var2가 사용되었네요. 사소한 실수지만... 이렇다면 검색이 잘 되지 않았을 것이네요... 그리고 한 가지 로직을 변경합니다. 아래 수식에서 종가를 사용하고 있는데, 그것을 고가로 바꾸겠습니다. 그래서 다음과 같이 수식을 변경합니다. var : T(0); var1 = ma(v,20); if V >= var1*2.5 Then { T = 1; var2 = index; var3 = H; var4 = V; } if T == 1 and index > var2 and H <= var3*1.02 and H >= var3*0.98 and V <= var4*0.5 Then T = 2; if T == 2 and index == var2+20 Then find(1); 그런데 이 수식으로도 제가 원하는 답을 얻지 못했습니다. 그 이유는 이 로직으로 8/13일을 기준으로 비트컴퓨터라는 종목이 반드시 검색되어야 하는데 그렇지 않습니다. 7/20 금요일: 고가 7240, 거래량 5133K, 거래20이평 466K 8/13 월요일: 고가 7180, 거래량 835K 기준일 대비 16일전(20일 이내)인 7/20에 거래량이 거래20이평의 2.5배 기준을 만족했고, 16일 뒤 8/13일 고가는 2%이내이며, 거래량은 반 이하라는 조건을 만족하는 종목입니다. 그러나 위 식으로 검색이 되지 않습니다. 왜 그런지 원인을 좀 찾아 주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 거래급증후급감 > 안녕하세요 예스스탁입니다. var : T(0); var1 = ma(v,20); if V >= var1*2.5 Then { T = 1; var2 = index; var3 = C; var4 = V; } if T == 1 and index > var2 and C <= var2*1.02 and =======> 여기서 var2는 var3 C >= var2*0.98 and =======> var2는 var3 V <= var4*0.5 Then T = 2; if T == 2 and index == var2+20 Then find(1); 즐거운 하루되세요 > 솔잎22 님이 쓴 글입니다. > 제목 : 거래급증후급감 > 안녕하세요, 수고가 많으십니다. 다음과 같은 로직을 만족하는 종목을 검색하고 싶습니다. 20일 전에 거래가 터진 종목을 우선 고름니다. 거래가 터졌다는 것은 그 날을 기준으로 거래량20단순이평보다 그 날 거래가 2.5배 이상 터진 종목으로 정의합니다. 그 날 이후로 오늘까지 중에서, 가격이 상기 거래 터진 날의 가격에 2% 이내로 근접하고, 거래량이 거래 터진 날 거래량의 반으로 줄어든 종목을 골라 냅니다. 잘 부탁드립니다.
프로필 이미지
회원
2018-08-25
260
글번호 121597
종목검색
답변완료

부탁 드립니다.

아래수식을 그림과 같이 나타 내고 싶습니다. 미리 감사 드립니다. Input:기간(5),종가사용여부(0); Var:TL1(0),신규구분(0),이평선(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# Value1 = HiLoLineZigZag(기간, 종가사용여부, 고, 저, 신규구분); If Value1 == 1 Then { // 고점 If 신규구분 == 1 Then // 신규 TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); Else If 신규구분 == 2 Then // 연장 TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } Else If Value1 == -1 Then { // 저점 If 신규구분 == 1 Then // 신규 TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); Else If 신규구분 == 2 Then // 연장 TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } TL_SetSize(TL1,2); 이평선=ma(c,20); plot1(이평선,"20이평",YELLOW,def,1); 함수식) //함수명:HiLoLineZigZag Input:Length(NumericSimple),useCLprice(NumericSimple), oHiZZ[MaxSize1,MaxSize2](NumericArrayRef), // 열번호 1:가격,2:Index,3:sDate,4:sTime oLoZZ[MaxSize3,MaxSize4](NumericArrayRef), oTL_NewBit(NumericRef); // 1:NewLine 2:SetEndLine Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""); #==========================================# HH = IFF(useCLprice==1,C,H); LL = IFF(useCLprice==1,C,L); If Index == 0 Then { oHiZZ[1,1] = HH; oLoZZ[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생 If oHiZZ[1,1] < HH and oLoZZ[1,1] > LL Then { // 기존의 파동을 벗어난 경우 If HH - oHiZZ[1,1] > oLoZZ[1,1] - LL Then // 많이 벗어난 쪽으로 처리 처리구분 = "고점처리"; Else If HH - oHiZZ[1,1] < oLoZZ[1,1] - LL Then 처리구분 = "저점처리"; Else If 최종꼭지점 == "저점" Then // 벗어난 정도가 동일하면 지그재그 순서대로 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If oLoZZ[1,1] > LL Then 처리구분 = "저점처리"; Else If oHiZZ[1,1] < HH Then 처리구분 = "고점처리"; Else If 최종꼭지점 == "저점" Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; oTL_NewBit = 0; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { oHiZZ[j,jj] = oHiZZ[j-1,jj]; } } oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oHiZZ[1,1] < HH Then { // 1번 고점보다 높은 고가 출현 oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { oLoZZ[j,jj] = oLoZZ[j-1,jj]; } } oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oLoZZ[1,1] > LL then { oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "저점"; } If 최종꼭지점 == "고점" Then HiLoLineZigZag = 1; Else If 최종꼭지점 == "저점" Then HiLoLineZigZag = -1; Else HiLoLineZigZag = 0;
프로필 이미지
yes
2018-08-25
392
글번호 121595
지표
답변완료

시스탬

1] Plot1 위로가면 매수 아래로가면 매도plot2 위로가면 매수 아래로가면 매도 Plot1(H[1],"전봉고가",RED); plot2(L[1],"전봉저가",BLUE);
프로필 이미지
야크
2018-08-25
210
글번호 121594
시스템
답변완료

문의드립니다.

선물차트 기준으로 문의드립니다. 2분봉차트의 적합이동평균 90선을 틱차트에 나타내고 싶습니다. 분봉차트의 시간값과 적합이동평균의 기간값은 수정가능하게 부탁드립니다. 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2018-08-25
236
글번호 121593
지표
답변완료

문의드립니다

더운 날씨에 수고가 많으십니다. 시스템식 문의 드립니다. 장 시작후 현재가 매도 5호가로 내려가면 매도 반대로 매수 5호가로 올라가면 매수. 10틱 손절나면 반대로 매매 10틱 수익나면 1분후 다시 현재가 기준으로 5호가 내려가면 매도 반대로 매수 5호가로 올라가면 매수 부탁드립니다 꾸벅
프로필 이미지
망치2
2018-08-25
201
글번호 121592
시스템