커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

아이아띠 님에 의해서 삭제되었습니다.

프로필 이미지
아이아띠
2017-11-30
0
글번호 114598
지표
답변완료

수식부탁드립니다

1. 20 캔들 바닥에서 10번째 양봉 저가(A)를 표시한다 20 캔들 천정에서 10번째 음봉 고가(B)를 표시한다 A와 B의 상방 대칭을 표시한다 A와 B의 하방 대칭을 표시한다 2. 20 캔들 바닥에서 10번째 양봉 저가(A)를 표시한다 20 캔들 천정에서 10번째 음봉 고가(B)를 표시한다 A붕괴 음봉 매도 B돌파 양봉 매수 감사합니다
프로필 이미지
회원
2017-11-30
166
글번호 114596
지표
답변완료

부탁 드립니다.

도움주심에 감사 드립니다. 타주기 분용을 틱용으로 수정 부탁 드립니다. 예를들어 100틱차트에서 200틱 차트의 지표(변수)를 보고 싶습니다. 미리 감사 드립니다. input : Price(10000), Per(10),N(5),타주기_분용(60),color(yellow),PriceScale차이(5); var : cnt(0),cnt1(0),cnt2(0),idx(0); var : S1(0),D1(0),TM(0),TF(0),Tcond(false); Array : VV[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); Array : vol[1000](0),OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),dd[1000](0),tt[1000](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기_분용; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{ idx = idx+1; vol[0] = 0; DD[0] = sdate; TT[0] = stime; OO[0] = O; HH[0] = H; LL[0] = L; for cnt = 1 to 999{ vol[cnt] = vol[cnt-1][1]; dd[cnt] = dd[cnt-1][1]; tt[cnt] = tt[cnt-1][1]; oo[cnt] = oo[cnt-1][1]; hh[cnt] = hh[cnt-1][1]; ll[cnt] = ll[cnt-1][1]; cc[cnt] = cc[cnt-1][1]; } for cnt = 1 to 49{ VV[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ #차트 과거봉 전체 스캔 for cnt2 = 1 to idx{ #Price대비 +- Per%안에 종가가 형성된 if CC[cnt2] <= Price*(1+Per/100) and CC[cnt2] >= Price*(1-Per/100) and Vol[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and Vol[cnt2] < VV[cnt1-1])) Then{ VV[cnt1] = Vol[cnt2]; #거래량순 상위 cnt1번째 값추세선 출력 #종가선 TL_Delete(CTL[cnt1]); CTL[cnt1] = TL_New(DD[cnt2],TT[cnt2],CC[cnt2]+PriceScale*PriceScale차이,sdate,stime,CC[cnt2]+PriceScale*PriceScale차이); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_Setcolor(CTL[cnt1],color); #거래량순 상위 cnt1번째 값텍스트 출력 #종가선값 Text_Delete(CTx[cnt1]); // CTx[cnt1] = Text_New(sdate,stime,CC[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt2],0)); Text_SetStyle(CTx[cnt1],0,0); #점출력 Text_Delete(Tx[cnt1]); Tx[cnt1] = Text_New(dd[cnt2],TT[cnt2],CC[cnt2],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); text_setcolor(Tx[cnt1], color); } } } } vol[0] = vol[0]+v; CC[0] = C; if H > HH[0] Then HH[0] = h; if L < LL[0] Then LL[0] = L; }
프로필 이미지
yes
2017-11-30
153
글번호 114592
지표
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 답변 주시는 것들 정리하고 다시보고 해도 까먹을 때도 많고 이해가 안될 때도 많네요. 언제쯤 게시판 탈출할런지... 1. 시스템 a장시작첫봉고가 b장시작첫봉저가 c장시작첫봉 변동폭(a-b) d날짜 진입 -해당날짜에 -종가가 a를 돌파한 뒤 n(외부변수)% 이상 오르거나 -n개봉동안 a를 종가가 하향돌파하지 않으면 진입 청산 -고가-c를 종가가 하향돌파하면 즉시 청산. -진입 뒤 nb개봉이 지나도 즉시 청산. -수익이 ntick(외부변수 )을 충족시켰어도 즉시 청산. -진입은 하루 1번으로 제한 2. 시스템 1의 a,b,c는 30분봉기준 진입청산(종가, n개봉)는 3분봉 기준 3. 지표 -var1: 고가에서 다음 고가 돌파할 때까지 기록했던 저가 -var2: 하락이 멈추고 다시 3% 상승할 때까지 기록했던 낙폭 4. 시스템 1조건-종가가 볼린저밴드 상단을 상향돌파. 2조건-1조건 뒤 n개봉(외부변수) 동안은 진입하지 않음. 3조건-1조건 뒤 만약 고가가 볼린저밴드 상단+q%를 돌파한 상태라면 2조건 무시하고 즉시진입 *2조건의 n개봉간 진입하지 않으므로 n개봉 후에 1의 조건을 충족시키지 않으면 진입하지 않음. 이미 3조건이 충족됐다면 3조건 청산. 청산조건 -볼린저밴드 상단을 종가가 하향돌파하면 청산 -진입 뒤 nb개봉이 지나도 즉시 청산. -수익이 ntick(외부변수 )을 충족시켰어도 즉시 청산. -진입은 하루 1번으로 제한 *비고 -분봉 타주기 조건으로. -봉마다 진입(분할매수) 5. var1 = 전일의 종가-10일 전의 종가 var2 = 지난 10일간 절대값(오늘의 종가-전날의 종가)의 총합 var3 = var1/var2
프로필 이미지
잡다백수
2017-11-30
146
글번호 114587
시스템
답변완료

안녕하세요

반갑습니다 1.obv 2.mfi (변수:18.9) 각 볼린져 벤드 가능하면 부탁합니다 감사합니다.
프로필 이미지
회원
2017-11-30
163
글번호 114586
지표
답변완료

문의드립니다.

어제보다 더 춥습니다. 건강 잘 챙기시구요. 아래와 같은 수식을 부탁드립니다. 1.매매시간 10시 ~ 04시까지 매매후 종료 2.진입조건(1계약 진입) 매수 : 양봉 종가가 20일선 아래에서 위로 골든크로스 한후 다시 음봉 종가가 20일선 아래로 데드크로스 하고 다음 봉의 종가가 다시 20일선 위로 골든크로스 할때 매수(매도는 반대) 3.청산/손절 -청산: 3가지 20틱수익 도달시 청산 10틱이상 15틱미만 수익시 5틱수익까지 후퇴하면 5틱수익 청산 15틱이상 수익시 10틱수익까지 후퇴하면 10틱수익 청산 -손절: 둘중에 먼저 도달하는 조건을 실행 수익이 10틱 미만일때 -30틱에서 손절 되거나 수익이 10틱 미만일때 매수의 경우 5일선이 20일선을 데드크로스하면 손절(매도는 반대) 4.매매종료 매매시간 이내에(10시 ~ 04시까지) 당일 누적수익을 50틱이상 달성한 순간부터 당일 누적수익에서 60% 손실이 발생하기 전에는 매매시간 종료까지 매매를 계속함. 누적 총수익에서 60% 손실이 발생하면 즉시 당일 매매종료하고 a.wav 파일 실행 5.당일 누적수익 표시 실시간 현재의 캔들 고점+5틱 위에 확정된 당일 실시간 현재의 누적수익을 계속 표시 수고하세요^^
프로필 이미지
웹피
2017-11-30
141
글번호 114585
시스템
답변완료

VI관련 질문입니다.

var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0); var : a1(0),a2(0),b1(0),b2(0); if o[1]==h[1]&&o[1]==l[1]&&(v[1]==0||v[1]>=1)&&v>=1 Then{ a1 = o*1.1; b1 = o*0.9; } if date >= 19981207 then { if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(a1/100+0.00001)*100; up2 = int(a1/100+0.00001)*100; up3 = int(a1/100+0.00001)*100; up4 = int(a1/50+0.00001)*50; up5 = int(a1/10+0.00001)*10; up6 = int(a1/5+0.00001)*5; up7 = int(a1/1+0.00001)*1; } else { up1 = int(a1/1000+0.00001)*1000; up2 = int(a1/500+0.00001)*500; up3 = int(a1/100+0.00001)*100; up4 = int(a1/50+0.00001)*50; up5 = int(a1/10+0.00001)*10; up6 = int(a1/10+0.00001)*10; up7 = int(a1/1+0.00001)*1; } } Else { up1 = int(a1/1000+0.00001)*1000; up2 = int(a1/500+0.00001)*500; up3 = int(a1/100+0.00001)*100; up4 = int(a1/50+0.00001)*50; up5 = int(a1/10+0.00001)*10; up6 = int(a1/5+0.00001)*5; up7 = int(a1/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then { If a1 >= 500000 Then a2 = up1; Else If a1 >= 100000 Then a2 = iff(up2>=500000, up1, up2); Else If a1 >= 50000 Then a2 = iff(up3>=100000, up2, up3); Else If a1 >= 10000 Then a2 = iff(up4>=50000, up3, up4); Else If a1 >= 5000 Then a2 = iff(up5>=10000, up4, up5); Else If a1 >= 1000 Then a2 = iff(up5>=5000, up5, up6); Else a2 = iff(up6>=1000, up6, up6); } Else { If a1 >= 500000 Then a2 = up1; Else If a1 >= 100000 Then a2 = iff(up2>=500000, up1, up2); Else If a1 >= 50000 Then a2 = iff(up3>=100000, up2, up3); Else If a1 >= 10000 Then a2 = iff(up4>=50000, up3, up4); Else If a1 >= 5000 Then a2 = iff(up5>=10000, up4, up5); Else If a1 >= 1000 Then a2 = iff(up5>=5000, up5, up6); Else a2 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF a2 = up6; } } if date >= 19981207 then { if CodeCategory() == 2 then { if date >= 20030721 then { dn1 = int(b1/100+0.00001)*100; dn2 = int(b1/100+0.00001)*100; dn3 = int(b1/100+0.00001)*100; dn4 = int(b1/50+0.00001)*50; dn5 = int(b1/10+0.00001)*10; dn6 = int(b1/5+0.00001)*5; dn7 = int(b1/1+0.00001)*1; } else { dn1 = int(b1/1000+0.00001)*1000; dn2 = int(b1/500+0.00001)*500; dn3 = int(b1/100+0.00001)*100; dn4 = int(b1/50+0.00001)*50; dn5 = int(b1/10+0.00001)*10; dn6 = int(b1/10+0.00001)*10; dn7 = int(b1/1+0.00001)*1; } } Else { dn1 = int(b1/1000+0.00001)*1000; dn2 = int(b1/500+0.00001)*500; dn3 = int(b1/100+0.00001)*100; dn4 = int(b1/50+0.00001)*50; dn5 = int(b1/10+0.00001)*10; dn6 = int(b1/5+0.00001)*5; dn7 = int(b1/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then { If b1 >= 500000 Then b2 = dn1; Else If b1 >= 100000 Then b2 = iff(dn2>=500000, dn1, dn2); Else If b1 >= 50000 Then b2 = iff(dn3>=100000, dn2, dn3); Else If b1 >= 10000 Then b2 = iff(dn4>=50000, dn3, dn4); Else If b1 >= 5000 Then b2 = iff(dn5>=10000, dn4, dn5); Else If b1 >= 1000 Then b2 = iff(dn5>=5000, dn5, dn6); Else b2 = iff(dn6>=1000, dn6, dn6); } Else { If b1 >= 500000 Then b2 = dn1; Else If b1 >= 100000 Then b2 = iff(dn2>=500000, dn1, dn2); Else If b1 >= 50000 Then b2 = iff(dn3>=100000, dn2, dn3); Else If b1 >= 10000 Then b2 = iff(dn4>=50000, dn3, dn4); Else If b1 >= 5000 Then b2 = iff(dn5>=10000, dn4, dn5); Else If b1 >= 1000 Then b2 = iff(dn5>=5000, dn5, dn6); Else b2 = iff(dn6>=1000, dn6, dn7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF b2 = dn6; } } plot1(floor(a2)); plot2(Ceiling(b2)); 위 수식이 게시판에서 본 vi수식인데 적용하고나니 첨부한 그림처럼 엔벨로프처럼 나옵니다. vi가격에 맞게 표시하는 방법없나요? 그리고 상승이나 하락 vi해제후 1분동안 매수금지 시스템식을 만드는 방법을 가르쳐주세요 그리고 시초가가찍히고 10봉뒤부터 매수하는 시스템식도 함께 만들어주세요.
프로필 이미지
jch2303
2017-11-30
180
글번호 114584
시스템
답변완료

재문의드립니다

55692다시한번재문의드립니다~수식만들어주셔서감사드립니다 다시한번수정부탁드립니다 현재진행된선에서 위수평하고 아래수평만 나오게하고십습니다 , 이전수평은사라지게부탁합니다
프로필 이미지
유선
2017-11-30
149
글번호 114583
지표
답변완료

문의드립니다.

예스랭귀지 메뉴얼을 보다가 아래와 같은 문구를 발견하였습니다. ======================================================================================= 타종목참조를 이용할 경우 시장 구조적인 문제 때문에 시뮬레이션과 실제매매를 완전히 일치시킬 수 있는 방법은 없지만, 매매의 시간주기를 길게 사용함으로써 발생빈도를 줄일 수 있다. ======================================================================================= 혹시 저 위에서 설명하신, 매매의 시간주기를 길게하는 방법은 어떤것이 있는지요? 감사합니다.
프로필 이미지
ywesry
2017-11-29
141
글번호 114582
시스템