커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다.

아래 dayindex 함수를 당일 첫봉부터 +1이 아니고 전일 마지막봉부터 +1로 시작하는 index 함수로 부탁드립니다. 감사합니다. var : BarCountInDay(0); if BarIndex <= 0 then { BarCountInDay = 0; } else { if Date > Date[1] then { BarCountInDay = 0; } else { BarCountInDay = BarCountInDay + 1; } } DayIndex = BarCountInDay;
프로필 이미지
e편한신호
2020-12-02
728
글번호 144346
지표
답변완료

문의드립니다.

늘 노고에 감사드립니다. if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then Tcond = true; if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong("매매종료"); 1. 이렇게하고 종료시간을 151500으로 설정해 매매를 하고 있습니다. 그런데 신호는 150000 이후로는 나오지 않게하고 그전에 나왔던 신호는 151500까지 나오게 하고 싶습니다. 2. 이렇게 설정하고 매매해도 한번씩 당일 청산되지 않고 그 다음날로 넘어가는 경우가 있어 "설정창 - 강제청산 - 당일청산" 박스에 151500을 추가로 설정해서 돌리고 있습니다. 특별한 이유가 있을지요?
프로필 이미지
카르마다
2020-12-02
699
글번호 144344
시스템
답변완료

문의

지수이동평균 5 .10. 20일선이 모두 상승추세일때 매수 그 반대일때 매도 시스템식 부탁하고요 종목검색식도 부탁합니다.
프로필 이미지
엉덩공주
2020-12-02
801
글번호 144342
시스템
답변완료

문의

연결옵션 sum1 = data2+ data3 sum2 = data4+ data5 sum3 = data6+ data7 sum4 = data8+ data9 sum5 = data10+ data11 sum1~sum5 중 최소값 K 를 추적합니다. ex) data1이 5분차트이고 09시부터 10시까지 지수가 상승했을 때 0905분 K(sum3) ... ... ... 1005분 K(sum1) 요청수식 1) if 시가(K)+0.5 then buy 2) if 5이평(K) cross up 20이평(K) then buy 부탁드립니다.
프로필 이미지
좌오비우오비
2020-12-02
961
글번호 144341
시스템

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

프로필 이미지
판사
2020-12-02
1
글번호 144340
시스템
답변완료

단순한 종목검색식 수정부탁드립니다.

var1 = SwingHigh(1,h,20,10,150); if c[1]<var1[1] && c>var1 && c>1000 && v>300000 && m>1500000000 Then Find(1); 위는 일봉에서 제가 스윙하이 를 넘어가는 종목을 검색하고자 만든 식입니다. 검색기간은 150일로 하여서 검색했는데 검색기간을 500일까지 바꾸어도 전혀 검색이 안되는데 검색식을 살펴 보시고 수정-확인 부탁드립니다. 감사합니다.
프로필 이미지
matilda
2020-12-02
695
글번호 144339
종목검색
답변완료

부탁드립니다.

시스템 수식 수정 부탁드립니다. 아래 수식에서 변수로 설정 부탁드립니다. 1.총누적 수익이 100point 이면 당일매매 종료 2.총누적 손실이 80point 이면 당일매매 종료 3.연속수익 3회 되면 당일매매 종료 4.연속손실 2회 되면 당일매매 종료 # 봉완성시 익절 input : StartTime(233500),EndTime(020000),진입횟수(6),익절(50),손절(50); Input: FastLen(8), MedLen(25), SlowLen(50); var : Tcond(false),entry(0); Var : FastAvg(0), MedAvg(0), SlowAvg(0); if EndTime > StartTime Then { SetStopEndofday(Endtime); } Else { if sdate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; entry = 0; if EndTime <= StartTime Then SetStopEndofday(0); } FastAvg = MA(Close, FastLen); MedAvg = MA(Close, MedLen); SlowAvg = MA(Close, SlowLen); if Tcond == true Then { if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if entry < 진입횟수 Then { If (FastAvg[1] < MedAvg[1] OR MedAvg[1] < SlowAvg[1]) AND (FastAvg > MedAvg AND MedAvg > SlowAvg) Then Buy ("MAC3_LE"); If (FastAvg[1] > MedAvg[1] OR MedAvg[1] > SlowAvg[1]) AND (FastAvg < MedAvg AND MedAvg < SlowAvg) Then Sell ("MAC3_SE"); } } SetStopProfittarget(익절,PointStop); SetStopLoss(손절,PointStop);
프로필 이미지
비류천
2020-12-02
622
글번호 144338
시스템

새론시작 님에 의해서 삭제되었습니다.

프로필 이미지
새론시작
2020-12-01
7
글번호 144337
시스템
답변완료

문의 드립니다.

안녕하세요 아래는 추세선 수식인데요... 추세선을 캔들이 완성봉으로 돌파할때 신호가 나오게 하고 싶습니다. 고점연결선을 캔들이 상방으로 돌파할때는 매수신호 저점연결선을 캔들이 하방으로 돌파할때는 매도신호를 나오게 하고 싶습니다. 도움좀 부탁드립니다. Input : length(10),종가사용여부(0),수치표시(1),표시(0); input : 추세두께(0),추세상승색(red),추세하락색(blue); input : 고점연결두께(3),고점연결색상(LGREEN); input : 저점연결두께(3),저점연결색상(MAGENTA); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(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]); TL_SetSize(TL1,추세두께); TL_SetColor(TL1,추세상승색); if 저[1,1] > 저[2,1] Then { if 표시 == 0 Then TL_Delete(TL11); TL11 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); TL_SetExtRight(TL11,true); TL_SetColor(TL11,저점연결색상); TL_SetSize(TL11,저점연결두께); } If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); Text_SetStyle(Text1, 2, 1); } } 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]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); } } 최종꼭지점 = "고점"; } #==========================================# 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]); TL_SetSize(TL1,추세두께); TL_SetColor(TL1,추세하락색); if 고[1,1] < 고[2,1] Then { if 표시 == 0 Then TL_Delete(TL12); TL12 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); TL_SetExtRight(TL12,true); TL_SetColor(TL12,고점연결색상); TL_SetSize(TL12,고점연결두께); } If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); Text_SetStyle(Text1, 2, 0); } } 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]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱"); } } 최종꼭지점 = "저점"; }
프로필 이미지
로꼬로꼬
2020-12-01
608
글번호 144336
시스템