커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

더블나인 님에 의해서 삭제되었습니다.

프로필 이미지
더블나인
2018-11-09
0
글번호 123483
시스템
답변완료

질문드립니다.

1. 주봉5일선이 주봉20일 crossdown시 페인트바. 2. 주봉5일선이 주봉20일선보다 낮으면 페인트바. 3. 주봉캔들의 종가가 5일선위에서 마감시 끝 이라고 text출력 4. 현재캔들이 월봉5일선을 crossdown시 페인트바.
프로필 이미지
stockric
2018-11-09
163
글번호 123482
강조
답변완료

문의 드립니다.

gap fill run 전략식을 간단히 만들어 봤는데 익절을 넣고 싶습니다. 어떻게 해야 하나요? 1포인트가 진입가격에서 오르면 익절하고 싶은데 어떻게 해야할지 답답합니다 Input : GapUp(0.5), GapDN(0.5), losslimit(1), earnlimit1(1.5), earnlimit2(1.5); If sDate != sDate[1] Then{ if O > C[1]*(1+GapUp/100) Then { If C >= O Then Buy("Gap-run-buy", AtStop, C); Else Sell("Gap-fill-sell", AtStop, C); } if O < C[1]*(1-GapDN/100) Then { If C >= O Then Buy("Gapfill-buy", AtStop, C); Else Sell("Gaprun-sell", AtStop, C); } } setstoploss(losslimit,PointStop); if marketposition = 1 Then{ exitlong("매수 이익",atlimit,entryPrice+earnlimit1) } if marketposition = -1 Then{ exitlong("매도 이익",atlimit,entryPrice-earnlimit2) } SetStopEndofday(); 마켓포지션 부분부터 오류가 나는데 해결방법좀 주세요
프로필 이미지
부우자되고싶다
2018-11-09
158
글번호 123481
시스템
답변완료

수식 문의 드립니다.

안녕하십니까 매번 깊이 감사드리겠습니다. 몇가지 의문이 있어 다시 문의드리오니 부탁드리겠습니다. 1. 아래 수식의 의미를 간단히 설명 부탁드려도 될런지요? (기타 다른 부분 수식은 삭제) # RSIV 정의 RSIV = RSI(RSIPeriod); # RSIV가 직전보다 상승하면 S = 1 if RSIV > RSIV[1] Then S = 1; # RSIV가 직전보다 하락하면 S = -1 if RSIV < RSIV[1] Then S = -1; #상승반전 # (1) IF문의 아래 수식의 의미 설명 좀 부탁드립니다... if S == 1 and S != S[1] Then{ var1 = L; var2 = RSIV[1]; var3 = index; var11 = var1[1]; var21 = var2[1]; var31 = var3[1]; } ##### 중간 수식 생략 # RSIV가 30이하이고 if RSIV <= 30 and # (2) 여기있는 조건의 해석(특히 var3) 좀 부탁드리겠습니다. var1 < var11 and var2 > var21 and var3 <= var31+bar1 Then # 위 조건을 만족하면 매수하라! buy("b",OnClose,def,2); #### 기타 수식 생략 # (3) 아래 명령어의 의미가 무엇인지요? if MaxContracts == 1 and # (4) 아래 수식이 의미하는 바에 대해 부탁드립니다. LatestExitName(0) == "bx1" and C >= LatestExitPrice(0)+익절값 Then ExitLong("bx3",OnClose,def,"",1,1); # 하여간 위 조건을 만족하면 매수청산! 제가 너무 모르는듯 한데 위 수식 중 4줄(4항목)에 대한 해석(의미)를 좀 부탁 드리겠습니다. 2. 매수 진입 이후 진입한 봉의 저가를 이탈하면 손절하는 수식을 부탁드리겠습니다. - 이탈 시 즉시 손절 하는 수식 - 이탈하는 봉이 완성되면 손절하는 수식 3. 예스사이트 상에서 확인 가능한 예스랭귀지 매뉴얼을 보는데, 이보다 조금 더 자세한 수식, 명령어가 있는 매뉴얼이나 온라인상에 자료가 있다면 알려주시면 감사하겠습니다. 항상 도움 주셔서 감사드리고, 이번에도 미리 감사드립니다!!
프로필 이미지
etm
2018-11-08
160
글번호 123480
시스템
답변완료

질문 한가지

안녕하세요? 참조 데이터 3개를 사용한 지표식입니다. v1 = n1*C + n2*data2(C) + n3*data3(C) + n4*data4(C); 일봉으로 5000 개의 봉들을 다 보여라 했는데, 문제는 주데이터는 5000개가 다 있지만, 참조데이터들은 상장 시점들이 제각각이어서, 어떤건 예컨대 4000개만 있고, 어떤건 3000개만 있고, 어떤건 2000개의 봉들만 있다고 합시다. 이럴때, 모든 참조데이터들이 존재하는 최초의 v1 값을 수평선으로 그리고(plotbaseline1), 그 값에 대한 v1의 % 를 그리고 싶습니다. 감사합니다.
프로필 이미지
에구머니
2018-11-08
156
글번호 123479
지표
답변완료

중심값 요청

* 항상 많은 도움에 고맙습니다. <요청사항 1번> 아래 선에서 중심값은 어떻게 작성 해야 하나요? 즉 TL1 과 TL2 사이에 중심선을 넣고 싶습니다. <요청사항 2번> 분봉에 따라 선이 그어지는데 3개봉 앞 기준으로 선을 그릴수는 없나요? 즉 현재 분봉이 하락 하면 최저선(TL2)이 아래로 내려 갑니다. 그게 아니고 3봉전 기준으로 선이 그어지게 표현하고 싶습니다. ex) sdate[n1-1],stime[n1-1] 이부분을 sdate[n1+3],stime[n1+3] 이렇게 해도 하한선이 내려가 버리더라구요.안되요..... 결론: 3개봉 전 기준으로 선을 긋고 싶습니다. (TL1 과 TL2 동일) * <요청사항 3번> 중심선을 CrossUp 하면 매수 중심선을 CrossDown 하면 매도 하는 수식좀 요청 드립니다. input : n1(100) ; var : hh(0),ll(0), tl1(0),tl2(0) ; HH = highest(H,N1); LL = lowest(L,N1); TL_Delete(TL1); TL1 = TL_new(sdate[n1-1],stime[n1-1],HH,sdate,stime,HH); TL_SetExtRight(TL2,False); TL_SetColor(TL1,BLUE); TL_Delete(TL2); TL2 = TL_new(sdate[n1-1],stime[n1-1],LL,sdate,stime,LL); TL_SetExtRight(TL2,False); TL_SetColor(TL2,BLUE); * 항상 도움에 고맙습니다.
프로필 이미지
요타
2018-11-08
168
글번호 123478
시스템
답변완료

수정 좀 부탁드리겠습니다.

항상 도움 주심에 감사합니다. 제가 실력이 부족하여, 도움을 요청드립니다. 아래는 사용중인 지표인데요. 라인 하나 나오는걸 4개까지 나올수 있도록 수정 부탁드립니다. 모두다 ATRLength값은 동일하게 사용하되 ATRMult값을 3개 더 추가하여 각각 다른 변수값을 대입하고 싶습니다. inputs: ATRLength(100), ATRMult(5); vars: ATR(0), avg(0), dn(0), up(0), trend(1), flag(0), flagh(0), qqq(0); ATR = ATR(ATRLength) * ATRMult; avg = (High + Low)/2; up = avg + ATR; dn = avg - ATR; if close > up[1] then trend = 1; else if close < dn[1] then trend = -1; if trend < 0 and trend[1] > 0 then flag=1; else flag=0; if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0; if trend > 0 and dn < dn[1] then dn=dn[1]; if trend < 0 and up > up[1] then up=up[1]; if flag == 1 then up = avg + ATR; if flagh == 1 then dn = avg - ATR; if trend == 1 then qqq = dn; else qqq = up; Plot1(qqq,"qqq",iff(trend == 1, Red, Blue));
프로필 이미지
플로스트
2018-11-08
183
글번호 123477
지표
답변완료

문의드립니다

변환 부탁드리겠습니다. --------------------------- 수식4 valuewhen(1, C(2)*1.08 <= C(1) and C(1) > O(1), avg(c, 3)) 수식5 valuewhen(1, C(2)*1.08 <= C(1) and C(1) > O(1), avg(c, 5))
프로필 이미지
왕팡
2018-11-08
168
글번호 123476
지표
답변완료

문의드립니다.

1,2,3 문의드립니다. 부탁드립니다. 1. 특정기간을(써머타임기간) (예,8월1일~10월30일) 일력하면 입력 기간동안은 Tcond 조건이 자동으로 시작 시간이 1시간 앞당겨 져서 시작, 종료하고 싶습니다. (시물레이션 할때 써머타임을 고려하여 해당기간 날짜를 입력하여 시작 종료 시간을 조정하고자 합니다.) 2. 특정일을 여러일(30개 이상)로 지정하여 해당 일,시간에 청산하고 싶습니다. 효율적인 방법 제안 부탁드립니다. 3. 수식 부탁드립니다. T = 1 조건 만족, var1이 상승하고 있으면 대기, 하락 후 다시 상승시작하면 매수. var1이 하락 중.., 상승시작하면 매수. T = -1 조건 만족,var1이 하락하고 있으면 대기, 상승 후 다시 하락시작하면 매도. var1이 상승 중.., 하락시작하면 매도. var1 = ma(C,p21) ************ input : 시작시간(080300), 진입종료(065700); //input : 시작시간(070300), 진입종료(055700); #써머타임 input : 한국주말청산1(043000), 한국주말청산2(055700); input : 특정일종료날짜(20181018), 특정일종료시간(055700); input : P1(10), P2(120); var : Tcond(False); var1 = ma(C,P1); var2 = ma(C,P2); ######## if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; } if stime == 진입종료 or (stime > 진입종료 and stime[1] < 진입종료) Then{ Tcond = false; } ######## if Tcond == true Then{ crossUp(var1,var2) Then buy("매수"); if crossDown(var1,var2) Then sell("매도"); } #####한국주말청산 if DayOfWeek(bdate) == 5 and ((sdate != sdate[1] and stime >= 한국주말청산1) or (sdate == sdate[1] and stime >= 한국주말청산1 and stime[1] < 한국주말청산1)) Then { if MarketPosition == 1 Then ExitLong("B주말청산1"); if MarketPosition == -1 Then ExitShort("S주말청산1"); } if DayOfWeek(bdate) == 5 and ((sdate != sdate[1] and stime >= 한국주말청산2) or (sdate == sdate[1] and stime >= 043000 and stime[1] < 한국주말청산2)) Then { if MarketPosition == 1 Then ExitLong("B주말청산2"); if MarketPosition == -1 Then ExitShort("S주말청산2"); } #####한국특정일청산 if sdate == 특정일종료날짜 and ((sdate != sdate[1] and stime >= 특정일종료시간) or (sdate == sdate[1] and stime >= 특정일종료시간 and stime[1] < 특정일종료시간)) Then { if MarketPosition == 1 Then exitlong("B특정일종료"); if MarketPosition == -1 Then ExitShort("S특정일종료"); }
프로필 이미지
라떼처럼
2018-11-09
159
글번호 123475
시스템