커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4271
글번호 230811
답변완료
거래량 분석 좀부탁 드립니다.
ㅇ 6시간단위 그림 입니다.ㅇ 항상 많은 도움에 고맙습니다.ㅇ 시간 단위 가격대별 누적 거래량 좀 부탁 드립니다. (cdv)Input : TickSize(1.0); // 종목 틱사이즈ㅇ 시간단위 변수Array : BidVol[500](0), AskVol[500](0), PriceLevel[500](0);Var : i(0), MyBasePrice(0);// 1. 시간 단위 초기화 (정각이 되면 배열을 새로 시작)// TimeToMinutes(Time) % 60 == 0 은 매 정각을 의미합니다.If CurrentBar == 1 Or (TimeToMinutes(Time) % 60 == 0 And TimeToMinutes(Time) != TimeToMinutes(Time[1])) Then{ MyBasePrice = Floor(C / TickSize) * TickSize; // 이전 시간 데이터 초기화 For i = 0 to 499 { PriceLevel[i] = MyBasePrice + (TickSize * (i - 250)); BidVol[i] = 0; AskVol[i] = 0; }}// 2. 해당 시간 내 실시간 수급 누적 (이미지 c984d3 원리 적용)For i = 0 to 499 { If L <= PriceLevel[i] and H >= PriceLevel[i] Then { // 분봉상 현재가 위치에 수급 배분 If C == PriceLevel[i] Then { BidVol[i] = BidVol[i] + DownVol; // 시장가 매도 (이미지 하늘색) AskVol[i] = AskVol[i] + UpVol; // 시장가 매수 (이미지 분홍색) } }}고맙습니다.
2026-05-01
118
글번호 231856
답변완료
수식 문의
매일 분봉에 적용할 것입니다.오류 정정 부탁드립니다.if NextBarOpen > 0 Then{ Print("D:\\문자Test\\1\\abc.txt","%s", DateToStr(Date) + "|" + TimeToStr(Time) + "|D1=" + NumToStr(Data1(c), 6) + "|D2=" + NumToStr(Data2(c), 6) + "|D3=" + NumToStr(Data3(c), 6) + "|D4=" + NumToStr(Data4(c), 6) + "|D5=" + NumToStr(Data5(c), 6) + "|D6=" + NumToStr(Data6(c), 6) + "|D7=" + NumToStr(Data7(c), 6) );}감사합니다.
2026-04-30
119
글번호 231850
답변완료
잘~부탁드립니다
A= avg(C, 5);B=shift((highest(high,30)+lowest(low,30))/2,30-1);crossup(A, B)A=crossup(shift(close,-20+1),shift((highest(high,30)+lowest(low,30))/2,30-1));shift(A, 25)수식2개을 중복되는 신호1개로 만들어 주세요종목검색기도 부탁 드립니다.
2026-04-30
105
글번호 231847
답변완료
수식 문의 드립니다
관리자님 수고 많으십니다.수식 문의 드립니다.1. voulme & Price in Sync 가 10을 상향 종목2. volume power(5) 가 5를 상향종목3. volume ratio (5)가 상승시작 종목4. volume ratio (5)가 상승중인 종목
2026-04-30
116
글번호 231842
답변완료
수식 문의 드립니다
관리자님 수고 많으십니다.수식 문의 드립니다.매도: voulme & Price in Sync 가 10을 상향시 즉시 매수매도: volume power(5) 가 5를 상향시 즉시 매수매도: voulme & Price in Sync 가 10을 하향시 즉시매도매수: volume power(5) 가 5를 하향시 즉시매도매도: 1봉전 종가보다 0.5% 하향시 즉시매도
2026-04-30
95
글번호 231841
답변완료
날짜가 변경되는 상황에서의 마지막 봉마감후 신호발생>거래안됨
4월 30일 새벽 6시에 4시간 봉에서 청산신호가 발생하였습니다.그렇지만 장마감으로 청산 거래는 이뤄지지 않았습니다.강제청산에서 "조건만족시 즉시/ 봉 완성시" 나 부가기능에 "진입주문지연" 설정은 가능한 것으로 보입니다.혹시 반대로 "봉 완성 전 10초 전" 신호 발생 및 진입주문 하는 방법이 있나요?
2026-04-30
68
글번호 231838
답변완료
부탁드립니다
input : P1(10),P2(60);var : mav1(0),s1(0),d1(0),t1(0),h1(0),l1(0),box1(0);var : mav2(0),s2(0),d2(0),t2(0),h2(0),l2(0),box2(0);var : count1(0),count2(0);mav1 = ma(C,P1);mav2 = ma(C,P2);if mav1 > mav1[1] Thens1 = 1;if mav1 < mav1[1] Thens1 = -1;if mav2 > mav2[1] Thens2 = 1;if mav2 < mav2[1] Thens2 = -1;if s2 == 1 Then{if s2 != s2[1] Then{d2 = sDate;t2 = sTime;h2 = h;l2 = l;box2 = Box_New(sDate,sTime,h2,NextBarSdate,NextBarStime,l2);Box_SetColor(box2,Red);count1 = 0;}Else{if h > h2 Thenh2 = h;if l < l2 Thenl2 = l;Box_SetBegin(box2,d2,t2,h2);Box_SetEnd(box2,NextBarSdate,NextBarStime,l2);}}if s2 == -1 Then{if s2 != s2[1] Then{d2 = sDate;t2 = sTime;h2 = h;l2 = l;box2 = Box_New(sDate,sTime,h2,NextBarSdate,NextBarStime,l2);Box_SetColor(box2,Blue);count2 = 0;}Else{if h > h2 Thenh2 = h;if l < l2 Thenl2 = l;Box_SetBegin(box2,d2,t2,h2);Box_SetEnd(box2,NextBarSdate,NextBarStime,l2);}}if s1 == 1 Then{if s1 != s1[1] Then{d1 = sDate;t1 = sTime;h1 = h;l1 = l;box1 = Box_New(sDate,sTime,h1,NextBarSdate,NextBarStime,l1);Box_SetColor(box1,Magenta);count1 = count1+1;if S2 == 1 and count1 == 1 Then{Buy("B");Box_SetFill(box1,true);}}Else{if h > h1 Thenh1 = h;if l < l1 Thenl1 = l;Box_SetBegin(box1,d1,t1,h1);Box_SetEnd(box1,NextBarSdate,NextBarStime,l1);}}if s1 == -1 Then{if s1 != s1[1] Then{d1 = sDate;t1 = sTime;h1 = h;l1 = l;box1 = Box_New(sDate,sTime,h1,NextBarSdate,NextBarStime,l1);Box_SetColor(box1,Cyan);count2 = count2+1;if S2 == -1 and count2 == 1 Then{Sell("S");Box_SetFill(box1,true);}}Else{if h > h1 Thenh1 = h;if l < l1 Thenl1 = l;Box_SetBegin(box1,d1,t1,h1);Box_SetEnd(box1,NextBarSdate,NextBarStime,l1);}}위의 수식에 큰박스 고저라인좀 부탁드립니다
2026-04-30
93
글번호 231837
답변완료
피보나치 박스
TL5(var5)와 TL8(var8) 사이에 박스. 감사합니다.input : 저점1(888),저점2(880),시작시간(90000);var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0),TL10(0);var : Tcond(False),HH(0),LL(0),d1(0),t1(0),tx(0);if Bdate != Bdate[1] Then{ Tcond = False;}if (sdate != sDate[1] and sTime >= 시작시간) or (sdate == sDate[1] and sTime >= 시작시간 and sTime[1] < 시작시간) Then{ Tcond = true; d1 = sDate; t1 = sTime; HH = H; LL = L; tx = Text_New(sDate,sTime,LL,NumToStr(HH-LL,2)+" "); Text_SetStyle(tx,1,0); Text_SetSize(tx,25); Text_SetBold(tx,1); }if (sdate != sDate[1] and Time >= 153500) or (sdate == sDate[1] and Time >= 153500 and Time[1] < 153500) Then{ Tcond = False;}if tcond == true Then{ if H > HH Then { HH = H; Text_SetString(tx,NumToStr(HH-LL,2)+" "); } if L < LL Then { LL = L; Text_SetString(tx,NumToStr(HH-LL,2)+" "); Text_SetLocation(tx,sDate,sTime,LL); } var1 = HH; Var2 = 저점1; Var3 = 저점1-(HH-저점1)*0.587; Var4 = 저점1-(HH-저점1)*0.95; Var5 = 저점1-(HH-저점1)*1.537; Var6 = 저점2; Var7 = 저점2-(HH-저점2)*0.587; Var8 = 저점2-(HH-저점2)*0.95; Var9 = 저점2-(HH-저점2)*1.537; var10 = HH-28; if tcond == true and tcond != tcond[1] Then { TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL_Delete(TL6); TL_Delete(TL7); TL_Delete(TL8); TL_Delete(TL9); TL_Delete(TL10); TL1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(sDate,sTime,var5,NextBarSdate,NextBarStime,var5); TL6 = TL_New(sDate,sTime,var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(sDate,sTime,var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(sDate,sTime,var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(sDate,sTime,var9,NextBarSdate,NextBarStime,var9); TL10 = TL_New(sDate,sTime,var10,NextBarSdate,NextBarStime,var10); TL_SetExtRight(TL1,true); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); TL_SetExtRight(TL4,true); TL_SetExtRight(TL5,true); TL_SetExtRight(TL6,true); TL_SetExtRight(TL7,true); TL_SetExtRight(TL8,true); TL_SetExtRight(TL9,true); TL_SetExtRight(TL10,true); TL_SetColor(TL1,Red); TL_SetColor(TL2,Gold); TL_SetColor(TL3,Magenta); TL_SetColor(TL4,Red); TL_SetColor(TL5,Red); TL_SetColor(TL6,Gold); TL_SetColor(TL7,Green); TL_SetColor(TL8,Blue); TL_SetColor(TL9,Blue); TL_SetColor(TL10,Gold); TL_SetSize(TL2,1); TL_SetSize(TL5,1); TL_SetSize(TL6,1); TL_SetSize(TL9,1); TL_SetSize(TL10,2); } Else { TL_SetBegin(TL1,d1,t1,var1); TL_SetBegin(TL2,d1,t1,var2); TL_SetBegin(TL3,d1,t1,var3); TL_SetBegin(TL4,d1,t1,var4); TL_SetBegin(TL5,d1,t1,var5); TL_SetBegin(TL6,d1,t1,var6); TL_SetBegin(TL7,d1,t1,var7); TL_SetBegin(TL8,d1,t1,var8); TL_SetBegin(TL9,d1,t1,var9); TL_SetBegin(TL10,d1,t1,var10); TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1); TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2); TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3); TL_SetEnd(TL4,NextBarSdate,NextBarStime,var4); TL_SetEnd(TL5,NextBarSdate,NextBarStime,var5); TL_SetEnd(TL6,NextBarSdate,NextBarStime,var6); TL_SetEnd(TL7,NextBarSdate,NextBarStime,var7); TL_SetEnd(TL8,NextBarSdate,NextBarStime,var8); TL_SetEnd(TL9,NextBarSdate,NextBarStime,var9); TL_SetEnd(TL10,NextBarSdate,NextBarStime,var10); }}if Bdate != Bdate[1] Then{ Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; Condition5 = False; Condition6 = False; Condition7 = False;}if Tcond == true Then{ if MarketPosition == 1 Then { if IsEntryName("b1") == true Then Condition1 = true; if IsEntryName("b2") == true Then Condition2 = true; if IsEntryName("b4") == true Then Condition4 = true; if IsEntryName("b5") == true Then Condition5 = true; } if Condition1 == False and L > var3 Then Buy("b1",Atlimit,var3); if Condition2 == False and L > var4 Then Buy("b2",Atlimit,var4); if Condition4 == False and L > var7 Then Buy("b4",Atlimit,var7); if Condition5 == False and L > var8 Then Buy("b5",Atlimit,var8); if MarketPosition == 1 and BarsSinceEntry == 1 Then ExitLong("bx"); if MarketPosition == -1 Then { if IsEntryName("b3") == true Then Condition3 = true; if IsEntryName("b6") == true Then Condition6 = true; if IsEntryName("b7") == true Then Condition7 = true; } if Condition3 == False and L > var5 Then Sell("b3",AtStop,var5); if Condition6 == False and L > var9 Then Sell("b6",AtStop,var9); if Condition7 == False and L > var10 Then Sell("b7",AtStop,var10); if MarketPosition == -1 and BarsSinceEntry == 1 Then ExitShort(); }
2026-04-30
113
글번호 231836
답변완료
종목 검색식 부탁드립니다.
1. "60이평이 상승 중일때 모든종목" 검색식 부탁드려요.2. MACD가 시그널선을 골든크로스 할때 종목 검색식 부탁드려요. ( 단, 0선위에서 골든크로스)3. RSI(14)가 시그널(9) 을 "돌파할때부터(골든) 데드크로스 발생 전"까지 종목 검색식 부탁드려요4. MACD 가 시그널(9) 을 "돌파할때부터(골든) 데드크로스 발생 전"까지 종목 검색식 부탁드려요5. 스토캐스틱 슬로우가 시그널(9) 을 "돌파할때부터(골든) 데드크로스 발생 전"까지 종목 검색식 부탁드려요
2026-04-30
103
글번호 231835