커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

피보나치 전환 박스

input : 전환포인트(0.7); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0); Plot1 (c); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; } Else { UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Red); TL_SetSize(ZigZagTL,1); TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Blue); TL_SetSize(ZigZagTL,1); TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); } Else { if trend == 1 Then { if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL2,LD[0],LT[0],Var2); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); } } if trend == -1 Then { if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL2,HD[0],HT[0],Var2); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); } } } } 피보나치 38.2부터 50까지 박스. 50부터 61.8까지 박스. 감사합니다.
프로필 이미지
고성
2024-03-06
575
글번호 177202
지표

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2024-03-06
12
글번호 177201
시스템
답변완료

변환 부탁드려요

늘 감사드리며 신호수식을 종목검색식으로 부탁드립니다 AA=dayhigh()>daylow()*1.07; BB=dayhigh()-daylow(); 상단=Valuewhen(1,AA,BB*상단비율/100+daylow()); 하단=Valuewhen(1,AA,BB*하단비율/100+daylow()); M5=ma(c,5); KK5=M5>M5(1) && M5(1)<M5(2); q=valuewhen(1,KK5,M5); M20=ma(c,20); M60=ma(c,60); KK5 && c> 0 && crossup(C,상단) && q>하단 && (M5>M20 or M5>M60) 지표설정: 상단비율:65 하단비율;50
프로필 이미지
무건
2024-03-06
467
글번호 177195
종목검색

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

프로필 이미지
nicebs
2024-03-06
99
글번호 177194
종목검색
답변완료

시스템식 요청드립니다.

위의 그림을 확인해보시면, 아래의 수식에 의해서 타점 1이 매수되어야 하는데, 매수가 안되었습니다. If c >= HH*1.005 AND LatestEntryName(0) == "타점" AND LatestExitName(1) == "5%익절" AND LatestExitName(0) == "P5청산" TheN Buy("타점1",AtLimit,타점,Floor((베팅금)/타점)*0.6); 혹시 왜 매수가 안되었는지 알수가 있을까요??? 예상하기로는 돌파매수타점인데, 고점이 갱신되면서 매수가 안된건가 싶기도 하고, 그렇게 되면 HH(1)을 적용 해야 하나 싶기도 하고 확인이 어려워 요청드립니다. --------------------------------------------------------------------------------------------- input : 베팅금(1000000); input : 시작날짜 (20240113),Xtime(110000) ; input : 타점(5000),손절(1000); var : P618(0),P5(0),P382(0),HH(0),LL(0); Var : day(0),EntryDay(0),entry(False),dd(0),ED(0); if sDate >= 시작날짜 Then { if Bdate != Bdate[1] Then { entry = true; day = day+1; dd = dd+1; } if HH == 0 or (HH > 0 and H > HH) Then HH = H; if LL == 0 or (LL > 0 and L < LL) Then LL = L; } P618 = LL+(HH-LL)*0.618; P5 = LL+(HH-LL)*0.5; P382 = LL+(HH-LL)*0.382; if TotalTrades > TotalTrades[1] Then entry = False; if MarketPosition == 0 and entry == true and c > 타점 Then Buy("타점",AtLimit,타점,Floor((베팅금)/타점)); If c >= HH*1.005 AND LatestEntryName(0) == "타점" AND LatestExitName(1) == "5%익절" AND LatestExitName(0) == "P5청산" TheN Buy("타점1",AtLimit,타점,Floor((베팅금)/타점)*0.6); if ((LatestEntryName(0) == "타점") )Then ExitLong("5%익절",AtLimit,AvgEntryPrice*1.05,"",Floor((베팅금)/타점)*0.3); if((LatestEntryName(0) == "타점") ) Then ExitLong("20%익절",AtLimit,AvgEntryPrice*1.2,"",Floor((베팅금)/타점)*0.3); if (LatestExitName(0) == "5%익절") and c <= P5 Then ExitLong("P5청산",AtLimit,P5,"",Floor((베팅금)/타점)*0.3); if (LatestExitName(0) == "5%익절") and c <= P382 Then ExitLong("P382청산",AtLimit,P382,"",Floor((베팅금)/타점)*0.4); if MarketPosition == 1 and sTime > xtime and 손절 >= c Then ExitLong("손절");
프로필 이미지
맴맴잉
2024-03-06
866
글번호 177193
시스템
답변완료

키움수식으로 종목 검색

안녕하세요? 아래 키움증권 수식1, 수식2는 조건을 만족하는 종목에 일봉상 라인을 표시하는 수식인데 예스트레이더로 수식에 맞는 종목만 검색하고 싶습니다. 종목검색식으로 변환 가능할까요? 부탁드립니다.^^ 요청검색식은 2가지 입니다. 1. 아래 수식1 또는 수식2를 기간내에 만족하는 종목들을 검색하고 싶습니다. 예) 기간값 15일 이내 이면 15일 이내에 수식1이나 수식2를 만족하는 종목들 검색 2. 기간값 이내에 수식1과 수식 2를 만족하는 종목들 중에 수식1과 수식2를 재돌파하는 종목검색 이 두가지 종목검색식 요청 드립니다. * 키움수식은 아래와 같습니다. 수식1 A=crossup(C*V,100000000000); B=countsince(date!=date(1),A)==1; valuewhen(1,B&&!B(1),종가) 수식2 A=crossup(C*V,50000000000); B=countsince(date!=date(1)==1,A); valuewhen(1,B&&!B(1),종가)
프로필 이미지
onlypsn
2024-03-06
1137
글번호 177192
종목검색
답변완료

봉번호 수식

함수사전에서 검색되는 다음 3가지 인덱스의 차이를 알고 싶습니다. Index BarIndex GlobalBarIndex 지표 스크립트에 넣고 비교해봐도 차이를 모르겠습니다.
프로필 이미지
gap
2024-03-05
951
글번호 177191
지표
답변완료

키움에서 사용하는 신호수식을 예스로 옴기고 싶습니다

max( avg(C,short), avg(C,mid), avg(C,long)) < min( avg(C,short), avg(C,mid), avg(C,long)) * (1+Percent/100) && C > highest(H(1),5) and avg(V, 5) >= 5000 and V > V(1) * Multiple and C > (highest(high,midPeriod)+lowest(low,midPeriod))/2 and C > avg(C,60) and 키움5분봉차트 에서 사용하고 있습니다 예스에서 종목 검색으로 사용하고 싶어서 문의드립니다
프로필 이미지
터프악마
2024-03-05
914
글번호 177190
종목검색
답변완료

문의드립니다

1. 아래수식으로 검색해봤는데 { CountIF(CrossDown(C,Var22),5)>=1 and C > 2000; Find(1); } 5봉이후에 조건에만족한 종목도검색이됩니다 종목수도 몇백개씩 검색이되구요 당일부터 5봉이전에 1번이상 하락크로스한 종목을찾고싶은데 어케해야할까요? 2. 또 전일에,전전일에,전전전일에 <--- 이런식으로 과거에 검색되어진종목도찾고싶은데 알려주신Condition1 = (조건); 이렇게 검색했더니 이것도 과거에검색되어진 종목까지 검색됩니다 최근에조건을 만족시킨종목은 어케수식을 만들수있나요?
프로필 이미지
처음처럼22
2024-03-05
907
글번호 177189
종목검색