커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수정부탁드립니다

실시간 표현이(분봉별로 일부표현이 안되는분봉이 있습니다 input :Peod(10),색상두께(50); Var:상승색a(Red), 하락색a(LimE); Var:jr(0),GGT(0); Var: 고11(0),고12(0),시간11(0),시간12(0),선TL1(0),선TL(0), 고21(0),고22(0),시간21(0),시간22(0),Vlue11(0),Vlue12(0), 고31(0),고32(0),시간31(0),시간32(0); Array:고Val[20](0),저val[20](0),고Bar[20](0),저Bar[20](0); Array:dr[7](0),dfr[7](0); var : dbox(0),dbox1(0); dr[0] = 0; dr[1] = 2; dr[2] = 3.; dr[3] = -1; dr[4] = -2.; dr[5] = 1; dr[6] = 0.5; For jr = 0 To 19 { 고Bar[jr] = 고Bar[jr] + 1; 저Bar[jr] = 저Bar[jr] + 1; } if crossup(c,highest(H,Peod)[1]) Then GGT = 1; if CrossDown(c,Lowest(L,Peod)[1]) Then GGT = -1; If GGT == -1 Then { If GGT[1] != -1 Then { For jr = 18 DownTo 0 { 저val[jr+1] = 저val[jr]; 저Bar[jr+1] = 저Bar[jr]; //ZZ[j+1] = ZZ[j]; } 저val[0] = L; 저Bar[0] = 0; //ZZ[0] = L; 고11 = Date[고Bar[0]]; 시간11 = stime[고Bar[0]]; Vlue11 = 고Val[0]; 고12 = Date[저Bar[0]]; 시간12 = stime[저Bar[0]]; Vlue12 = 저val[0]; 고21 = Date[고Bar[0]]; 시간21 = stime[고Bar[0]]; 고22 = Date[0]; 시간22 = stime[0]; for jr = 0 to 6 { dfr[jr] = 저val[1] + ((고Val[0] - 저val[1]) * dr[jr]); } Box_SetEnd(dbox,고11,시간11,Vlue11); dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12); Box_SetColor(dbox,하락색a); Box_SetFill(dbox,true,색상두께); // Sell(); } If 저val[0] > L Then { 저val[0] = L; 저Bar[0] = 0; //ZZ[0] = L; 고12 = Date[저Bar[0]]; 시간12 = stime[저Bar[0]]; Vlue12 = 저val[0]; 고22 = Date[0]; 시간22 = stime[0]; // Box_SetEnd(dbox,고12,시간12,Vlue12); Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12); } } If GGT == 1 Then { If GGT[1] != 1 Then { For jr = 18 DownTo 0 { 고Val[jr+1] = 고Val[jr]; 고Bar[jr+1] = 고Bar[jr]; //ZZ[j+1] = ZZ[j]; } 고Val[0] = H; 고Bar[0] = 0; //ZZ[0] = H; 고11 = Date[저Bar[0]]; 시간11 = stime[저Bar[0]]; Vlue11 = 저val[0]; 고12 = Date[고Bar[0]]; 시간12 = stime[고Bar[0]]; Vlue12 = 고Val[0]; 고31 = Date[저Bar[0]]; 시간31 = stime[저Bar[0]]; 고32 = Date[0]; 시간32 = stime[0]; for jr = 0 to 5 { dfr[jr] = 저val[0] + ((고Val[1] - 저val[0]) * dr[jr]); } Box_SetEnd(dbox,고11,시간11,Vlue11); dbox = box_new(고11,시간11,Vlue11,고12,시간12,Vlue12); Box_SetColor(dbox,상승색a); Box_SetFill(dbox,true,색상두께); // Buy(); } If 고Val[0] < H Then { 고Val[0] = H; 고Bar[0] = 0; //ZZ[0] = H; 고12 = Date[고Bar[0]]; 시간12 = stime[고Bar[0]]; Vlue12 = 고Val[0]; 고32 = Date[0]; 시간32 = stime[0]; // Box_SetEnd(dbox,고12,시간12,Vlue12); Box_SetEnd(dbox,NextBarSdate,NextBarStime,Vlue12); } }
프로필 이미지
외국인
2022-12-15
1095
글번호 164624
지표
답변완료

질문드립니다.

예스스팟에서 SetUserValue나 GetUserValue사용시에 원하는 폴더를 지정하여 UserValue파일을 저장할 수 있을까요? 혹시나 방법이 있으면 좀 알려주시면 감사하겠습니다.
프로필 이미지
절제9단
2022-12-15
1029
글번호 164623
지표

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

프로필 이미지
졸던
2022-12-15
60
글번호 164622
지표
답변완료

CorrelationArray 함수 문의

CorrelationArray(IndepArray, DepArray, Size) ※ IndepArray : 독립배열의 이름, 1차원 수치형 배열만 가능 ※ DepArray : 종속배열의 이름, 1차원 수치형 배열만 가능 ※ Size : 배열 사이즈(방갯수), 계산은 항상 0번방부터 시작(0번방부터 N개) 매뉴얼 상으로는 Size 가 연산에 포함시키고자 하는 배열 요소의 갯수로 정의되어 있는데, 혹시 배열 요소 중 사용하고자 하는 마지막 인덱스를 입력해야 하는 것인지요 ? Array: A1[2](0), A2[2](0); A1[0] = -1; A1[1] = 1; A2[0] = 1; A2[1] = -1; Vars: Corr1(0), Corr2(0); Corr1 = CorrelationArray(A1, A2, 1); Corr2 = CorrelationArray(A1, A2, 2); MessageLog("Corr1=%.2f, Corr2=%.2f", Corr1, Corr2); 출력값은 아래와 같습니다 Corr1=-1.0, Corr2=1.#R
프로필 이미지
루씰
2022-12-15
1040
글번호 164618
사용자 함수
답변완료

문의드립니다

(v*c)+(v[1]*c[1])+(v[2]*c[2])+(v[3]*c[3])+(v[4]*c[4])+(v[5]*c[5])+ ... 와 같이 50봉 까지 또는 100봉까지 합을 표현하는 지표식 감사합니다
프로필 이미지
파인애플
2022-12-15
860
글번호 164617
지표
답변완료

최저가 대비 100프로 이상 상승한 종목 검색

제목처럼 240일 동안 최저가 대비 100% 이상 상승한 종목을 검색하는 수식을 작성해 봤는데 잘 안되네요. 살펴봐 주세요 Input : Period1(240),Criteon(100); Variables: Value2(100), Value4(100), HH(0), LL(0), cnt(0); For cnt = 0 to Period1 { if c[cnt+1]>c[cnt] && c[cnt+1] > Value2 Then{ Value1 = Date; Value2 = c[cnt+1]; } if c[cnt+1]<c[cnt] && c[cnt+1] < Value4 Then{ Value3 = Date; Value4 = c[cnt+1]; } } Value1 = DateToJulian(Value1); Value3 = DateToJulian(Value3); Value5 = (Value2-Value4)/Value4*100; Condition1 = Value5> Criteon; Condition2 = Value3<Value1; If Condition1 && Condition2 Then { Value6 = Value5; } Else value6 = 0; Find(value6);
프로필 이미지
두리번
2022-12-15
1128
글번호 164616
종목검색
답변완료

분봉에서 월요일 첫봉 세로선과 시가 일주일 수평선 작성

안녕하세요. 캡처이미지처럼 분봉주기에서 매주 월요일에 첫봉의 세로선과 시가 수평선 일주일치를 작성하고 싶습니다. 각 선들은 색과 두께를 조정할수있으면 합니다. IF dayofweek(sDate) == 1 THEN 이 조건을 사용해서 해보는데 잘 안되네요.. 특히 일주일간 수평선을 모르겠네요.. 미리 감사드립니다.
프로필 이미지
에이텍
2022-12-15
1185
글번호 164615
지표
답변완료

시스템식 부탁드립니다.

항상 도움 주셔서 감사합니다. 트레일링 스탑에 대해 문의 드립니다. 아래와 같은 시스템이 있다고 가정할 경우 매수 if marketposition == 0 and crossup(이평100,이평200) then { buy(); } 매수청산 if marketposition == 1 and crossdown(이평100,이평200) then { exitlong(); } 매도 if marketposition == 0 and crossdown(이평100,이평200) then { sell(); } 매도청산 if marketposition == -1 and crossdown(이평100,이평200) then { sell(); } 손절 및 트레일링 스탑 SetStopLoss(50,PointStop); SetStopProfittarget(100,PointStop); SetStopEndofday(060000); SetStopTrailing(10,50,PointStop); SetStopTrailing(10,40,PointStop); SetStopTrailing(10,30,PointStop); SetStopTrailing(10,20,PointStop); SetStopTrailing(10,10,PointStop); 트레일링 스탑은 이익이 발생한 후 이익이 감소시 청산으로 알고 있습니다. 손실에 대해서는 아래와 같이 트레일링 작성해 보았는데 잘 안됩니다. 문의1) 포지션 진입 후 수익이 1point라도 발생후 바로 하락하는 경우 손절하지 않고 트레일링스탑으로 -10point에서 청산하고 싶습니다. SetStopTrailing(10,1,PointStop); 문의2) 포지션 진입 후 수익없이 바로 하락하는 경우 손절하지 않고 -10point에서 트레일링 스탑을 해서 -20ponit에서 청산하고 싶습니다. SetStopTrailing(10,-10,PointStop); SetStopTrailing(10,-20,PointStop); SetStopTrailing(10,-30,PointStop); SetStopTrailing(10,-40,PointStop); 문의3) 포지션 진입 후 손실이 나다가 이익으로 전환 되는 경우 익절하지 않고 중간 청산하고 싶습니다. * 손실이 -20point까지 났다가 손실이 -10point로 줄어들면(10point 상승) 손실이 -10point에서 청산하고 싶습니다. SetStopTrailing(-10,-20,PointStop); 도움 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2022-12-15
1334
글번호 164610
시스템
답변완료

파라볼릭 전환시

input : af(0.02), maxAF(0.2),폭(0.25); Var : Sarv(0),tl(0),T(0),tx(0),txx(0); var:cSar(0); var7 = cSAR(af,maxAF); if var7 > C Then Plot1(var7, "cSAR",BLUE); Else Plot1(var7, "cSAR",RED); plot2(c,"c"); Sarv = csar(af,maxAF); If crossup(c,Sarv) Then { T = 1; var1 = Sarv; Var2 = var1[1]; Var3 = var2[1]; Condition1 = False; if max(var1,var2,Var3) <= min(var1,Var2,Var3)+폭 and var3>0 and var1 >= Var2-PriceScale*2 Then { Condition1 = true; Tx = Text_New(sDate,sTime,var1-PriceScale*2,"●"); Text_SetColor(Tx,Cyan); Text_SetStyle(Tx,2,2); Text_SetSize(Tx,25); } } If crossup(c,Sarv) Then { T = 1; var1 = Sarv; Var2 = var1[1]; Var3 = var2[1]; Var4 = Var3[1]; Condition1 = False; if max(var1,var2,Var3, Var4) <= min(var1,Var2,Var3, Var4)+폭 and var4>0 and var1 >= Var2-PriceScale*2 Then { Condition1 = true; Tx = Text_New(sDate,sTime,var1-PriceScale*2,"●"); Text_SetColor(Tx,Red); Text_SetStyle(Tx,2,2); Text_SetSize(Tx,20); } } 1.파라볼릭 양전환시 하단 시작 꼭지점에 빨간 동그라미 표시. 2.상승하다 음전환되면 하단 빨간 동그라미 삭제하고, 상단 꼭지점에 파란 동그라미 표시. 삭제와 생성 계속 반복. 감사합니다.
프로필 이미지
고성
2022-12-15
1095
글번호 164608
지표