커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의합니다

문의합니다 input : Period40(40),Period20(20),Period10(10),Period5(5),Period2(2); var : mav40(0),mav20(0),mav10(0),mav5(0),mav2(0); var : T(0); mav40 = ma(c,Period40); mav20 = ma(c,Period20); mav10 = ma(c,Period10); mav5 = ma(c,Period5); mav2 = ma(c,Period2); if T >= 0 and CrossDown(mav20,mav40) Then T = -1; if T <= 0 and CrossUp(mav20,mav40) Then T = 1; if T == -1 and mav10[5] < mav10[4] and mav10[4] < mav10[3] and mav10[3] < mav10[2] and mav10[2] < mav10[1] and mav10[1] < mav10 and mav2[2] < mav2[1] and mav2[1] < mav2 Then{ T = -2; buy("b"); } if T == 1 and mav10[5] > mav10[4] and mav10[4] > mav10[3] and mav10[3] > mav10[2] and mav10[2] > mav10[1] and mav10[1] > mav10 and mav2[2] > mav2[1] and mav2[1] > mav2 Then{ T = 2; sell("s"); } if MarketPosition == 1 and mav10[5] > mav10[4] and mav10[4] > mav10[3] and mav10[3] > mav10[2] and mav10[2] > mav10[1] and mav10[1] > mav10 and mav2[2] > mav2[1] and mav2[1] > mav2 Then exitlong("bx"); if MarketPosition == -1 and mav10[5] < mav10[4] and mav10[4] < mav10[3] and mav10[3] < mav10[2] and mav10[2] < mav10[1] and mav10[1] < mav10 and mav2[2] < mav2[1] and mav2[1] < mav2 Then ExitShort("sx"); 위의 수식은 현재는 T = -1만족시 b, bx 수식으로 운영하고 있습니다 그러나 T = -1만족시 b신호후 bx가 너무 빨리신호가 생기면 시간이 지나서 상승할 때에는 정상적으로 매수진입(b) 신호가 발생하지 않습니다(가끔====차트에서 CrossDown 및 CrossUp 발생하지 전에 매도청산이 나오는 경우에 발생합니다) 한번 발생한 신호와 무관하게 신호가 발생하는 방법은 없나요 그래서 저의 개인적인 생각은 정리하면 현재는 T = -1만족시 b, bx 수식 T = 1만족시 s, sx 수식으로 정상적으로 운영하고 있으며 =========변경수식 추가사항============== T = -1만족시 b, bx 나오고 동시에 무포인 경우 s, sx 실행하며 동시에 무포인 경우 b, bx 수식이 발생하고자 합니다 T = 1만족시 s, sx 나오고 동시에 무포인 경우 b, bx 실행하며 동시에 무포인 경우 s, sx 수식이 발생하고자 합니다 위 수식에 변경수식을 추가하여 주시기 바랍니다 감사합니다
프로필 이미지
남산
2017-09-04
129
글번호 112467
시스템
답변완료

문의드립니다.

var : LL(0), HH(0),HL(0); if index == 0 Then { LL = L; HH = H; HL = L; } #전체 최저가 계산 if index > 0 and L < LL Then{ LL = L; HH = H; HL = L; } #최저가 후 최고가 계산 if H > HH Then{ HH = H; HL = L; } #최저가 후 최고가 후 최저가 if L < HL Then HL = L; var2 = (HH + LL)/2; # 절반값 if HH > LL*3 And L==HL && c < var2 && L > LL Then find(1); 위 종목검색식으로 월봉에서 검색기간을 80으로 하고 안돼서 다시 100으로 설정한 후 검색하면 서진오토모티브란 종목이 위 조건을 만족하는데도 검색이 되지 않습니다. 서진오토모티브의 월봉 총개수는 89개입니다. 위 수식은 설정한 검색기간 봉개수에서 최저점과 최고점을 지정하는 수식이 아닌가요? 왜 저 종목이 검색이 안되는지요? 수고하세요.
프로필 이미지
land22
2017-09-04
133
글번호 112465
종목검색
답변완료

수식 수정 좀 부탁드립니다.

안녕하세요? 추세구간과 비추세구간에 대하여 알아보려고합니다. 아래의 파동식을 ADX[ADXv=ADX(period)] 지표에 대한 파동식으로 수정 부탁드립니다. =========================================================================== #==========================================# # 지 표 명 : 고저라인 지그재그 파동선 # 버 전 : 1.2 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me # 업데이트 : 2017-03-10 #==========================================# Input:length(10),종가사용여부(0),파동선두께(3),수치표시(1),고점파동선색(MAGENTA),저점파동선색(GREEN); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(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]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,고점파동선색); } 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)); } } 최종꼭지점 = "고점"; } #==========================================# 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]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,저점파동선색); } 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)); } } 최종꼭지점 = "저점"; }
프로필 이미지
매버릭
2017-09-04
182
글번호 112464
지표

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

프로필 이미지
wscamtk
2017-09-04
11
글번호 112463
시스템
답변완료

문의

3가지를 부탁 드립니다. if bdate != bdate[1] Then{ var1 = 0; var2 = 0; } var1 = var1+Upvol; var2 = var2+DownVol; var3 = var1/var2*100; var4 = ma(var3,P); if var3 >= 100 Then plot1(var3,"체결강도",RED); Else plot1(var3,"체결강도",blue); 이걸 좀 편집을 부탁드리겠습니다. 만약에 최고점이130 이면 130에 선이나오고 최저점이 70 이면 70에 선이 나오고 중심점은 100나오면 100 에 나오게 해주세요. 즉 최고점 최저점 중심점에 선이 나오도록 부탁드릴게요. 그리고 추가로 시간을 9시20분 이후에서 15시까지 최고점 최저점 중심점에 선이 나오도록 부탁드릴게요. 즉 최고점은 130이더라도 9시20분이후에 최고점이 120이면 120에 선이 나오고 최저점이 70이더라도 9시20분이후에 80이 최저점이면 80에 그리고 그중간점에 선이 나오도록 부탁드릴게요. 그리고 시간은 외부변수로해서 부탁드릴게요. 시스템에서 var : sumUp(0),sumDn(0); if Bdate != Bdate[1] Then{ sumup = 0; sumdn = 0; } sumup = sumup + Upvol; sumdn = sumdn + DownVol; sumup이 sumdn위로 올라가면 매수신호 sumdn이 sumup위로 올라가면 매도 신호도 부탁드릴게요
프로필 이미지
레전드
2017-09-04
133
글번호 112462
지표
답변완료

문의 드립니다.

미리 감사드립니다. 금융시장이 이렇게 힘든 상황에서도 한결같이 자리를 지켜주는 예스에 감사드립니다. 질문드릴께요... if MarketPosition == 1 Then{ if CountIF( var3 > var3[1], 20) < 1 Then exitlong("정리",atlimit,EntryPrice+PriceScale*10); } 위에서 보듯이 정리신호 입니다. 위 식은 국내선물이고 1분차트 기준입니다. 진입가에서 10틱 상승시 기계적으로 청산하는 것으로 작성 하였습니다. 위 식을 질문 : 현재가가 30분전까지의 당일 고점 마이너스 0.2 보다 크다면 정리하지 마시오. 그리고 현재가가 당일고점 -0.2 보다 높다가 -0.2보다 밑으로 내려가면 10틱보다 낮아도 바로 정리하시오 즉, 현재 시간은 1시이고 현재가는 310 포인트 입니다. 당일고점은 12시에 형성되었고 310.15 입니다. 진입가 대비 10틱의 수익이 나는 시점이 310 포인트 이면 정리해야 하는데 당일고점 -0.2 보다 현재가가 높으므로 정리를 하지 않습니다. 그리고, 309.95보다 같거나 높으면 계속 유지를 하다가 현재가가 309.95 밑에서 1분종가가 형성된다면 10틱이 안되어도 바로 정리하는 식으로 부탁드립니다. 감사 합니다.
프로필 이미지
지킴이
2017-09-03
116
글번호 112461
시스템

그라시아스 님에 의해서 삭제되었습니다.

프로필 이미지
그라시아스
2017-09-03
1
글번호 112460
지표
답변완료

수식 부탁 드립니다.(더하기)

* 항상 많은 도움에 고맙 습니다. * 요청 사항 : 10일간 전일(dayclose(1)) 포함 보다 큰 날짜의 종가 합(sum) *현재일(당일) 제외 10일간 전일(dayclose(1)) 포함 큰 날짜의 평균가 *현재일(당일) 제외 10일간 전일(dayclose(1)) 포함 작은 날짜의 합(sum) *현재일(당일) 제외 10일간 전일(dayclose(1)) 포함 작은 날짜의 평균가 *현재일(당일) 제외 (현재일과 종가가 같으면 제외) (평균가격 계산시 전일 종가와 같은 날은 계산식에서 빼고 평균가격 계산 요청 드립니다.) * 부탁 드리고 항상 고맙 습니다. var1 = AccumN(iff(DayClose(1) > DayClose,1,0),10) 이게 아닌가요?
프로필 이미지
요타
2017-09-03
115
글번호 112459
시스템
답변완료

문의합니다.

예스랭귀지 익히려고 기본적인 것좀 짜봤습니다. 수식 좀 부탁합니다. 1. 진입 종가가 20개(변수) 전 봉 고가보다 높음 청산 종가가 20개(변수) 전 봉 저가보다 낮음 2 진입 20개(변수) 봉 가운데 최저가대비 현 종가가 10%(변수) 이상 올랐음 청산 20개(변수)봉 가운데 최고가 대비 현 종가가 10%이상 내렸음 3. 진입 20개 봉 동안 5개 봉 내에 20개 봉 동안의 고점을 돌파하는 모습이 두번 이상 나타났을 때 진입, 상승 하락률은 상관없으나 5개봉 이내에 무조건 20봉 동안의 고점을 돌파해야 함. 청산 진입의 정확히 반대로 4 진입 만약 40개봉 최고가 돌파한 뒤 10개봉 이내에 최고가 -ATR*3을 하향 돌파하지 않았거나 최저가가 10개봉 이내에 3회 이상 상승했을 때 진입 매도 최고가-ATR*3 5. 진입 40개봉 최고가 돌파시 청산 진입직전 10개봉 최저가 대비 40개봉 최고가 피보나치비율 0.5를 주가가 하향돌파시 청산 6. 2 진입 20개(변수) 봉 가운데 최저가대비 현 종가가 10%(변수) 이상 올랐음 청산 진입 시작봉의 저점을 피보나치비율 저점으로 잡고 진입시작봉을 시작봉으로 봤을 때 이후 20개봉 최고가를 고점으로 잡은 뒤 저가가 50% 이상을 하향돌파하면 청산 .(꼭 피보나치 는 아니어도 되고 처음 진입시점 대비 고점 가격을 토대로 비율로 만들어 주셔도 상관없습니다.)
프로필 이미지
잡다백수
2017-09-03
116
글번호 112458
시스템