커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 부탁드립니다.

안녕하세요. 국선과 해선의 오전장 시작 구분선(수직)을 나타내는 수식을 부탁드립니다. 1) 국내선물 복합장 차트 오전장 시작 수직선 2) 해외선물 차트 오전장 시작 수직선 2) 그리고 항생차트 오전장 시작 구분선(수직)을 나타내는 수식을 부탁드립니다. 미리 감사드립니다. 즐거운 하루되시길 바랍니다.
프로필 이미지
태양같이
2017-11-07
201
글번호 113949
지표
답변완료

선 색깔 변경

아래 수식에 선색을 밝은 노랑으로 바꾸어 주세요 input : N(10); var : idx(0); if bdate != Bdate[1] Then idx = 0; idx = idx+1; if idx== N Then TL_New(sdate,stime,99999999,sdate,stime,0); if idx== N*2 Then TL_New(sdate,stime,99999999,sdate,stime,0); if idx== N*3 Then TL_New(sdate,stime,99999999,sdate,stime,0); if idx== N*4 Then TL_New(sdate,stime,99999999,sdate,stime,0); if idx== N*5 Then TL_New(sdate,stime,99999999,sdate,stime,0);
프로필 이미지
프레드
2017-11-06
196
글번호 113948
지표
답변완료

어제 답변에 이어서 질문입니다

var : S1(0),D1(0),TM(0),TF(0),cnt(0),TM1(0),TF1(0); Array : Ovalue[10](0),Hvalue[10](0),Lvalue[10](0),Cvalue[10](0); #영업일 변경 if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime);//변경시점의 9시 이후 경과된 분 저장 D1 = sdate; //날짜저장 } #날짜저장후(차트상 최초 영업일 변경후부터) if D1 > 0 then{ #영업일 변경시간을 기준으로 현재 경과된 분수를 계산 #영업일 변경시간이 07시이면 s1는 420 #현재 10시이면 600-420 = 180분 #현재 20시이면 1200-420 = 780분 #현재 03시이면 180+1440-420 = 1200분 if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; #영업일변경이후 경과된 분수를 60으로 나누어 나머지를 구함 #1분봉에서 아래와 같이 반복적으로 나머지값을 가지게 됨 #[0,1,2,~,58,59],[0,1,2,~,58,59],[0,1,2,~,58,59],.... #그러므로 TF가 전봉보다 작아지는 봉이 새로운 60분봉이 시작되는 봉임 TF = TM%60; #새로운 60분봉 시작 #각 배열변수 [0]번방에는 초기값 지정 #각 배열변수의 각 방에 저장된 값을 다음방으로 이동 #기존 [0]번방은 [1]번방으로, 기존[1]번방값은 [2]번방으로.... if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{ Ovalue[0] = O; Hvalue[0] = H; Lvalue[0] = L; for cnt = 1 to 9{ Ovalue[cnt] = Ovalue[cnt-1][1]; Hvalue[cnt] = Hvalue[cnt-1][1]; Lvalue[cnt] = Lvalue[cnt-1][1]; Cvalue[cnt] = Cvalue[cnt-1][1]; } } #Hvalue[0]보다 큰 고가가 출력하면 값갱신 if H > Hvalue[0] Then Hvalue[0] = H; #Lvalue[0]보다 작은 저가가 출력하면 값갱신 if L < Lvalue[0] Then Lvalue[0] = L; #Cvalue[0]는 매봉종가 Cvalue[0] = C; var1=dayopen; # if (TF == 59) then { If Cvalue[0] > var1 and Ovalue[0]<=var1 and Ovalue[1] < Cvalue[0] and Ovalue[2] < Cvalue[0] Then Condition1 = true; Else Condition1 = false; } if Condition1 == true Then buy("시가매수", atlimit ,var1); if MarketPosition == 1 then { if C < entryprice then ExitLong ("본절청산",AtLimit,entryprice); if C > entryprice and TM >= TM[BarsSinceEntry]+120 then //진입이후 120분 이상 경과 exitlong("매수익절",AtLimit,entryprice+PriceScale*100); } } 이렇게 수식을 주셨는데요. Cvalue[0]=C; 매봉 종가로 잡아주셔서 차트와 같은 일이 생기는 것 같습니다. (상단은 60분, 하단은 1분봉입니다. 60분차트의 화살표가 제가 의도하는 진입과 청산시점인데 하단 1분봉 차트에서는 그 이전캔들에서 돌파되자마자 바로 청산해 버리는 상황입니다.) 즉, 60분 봉이었다면 다음 캔들에서 조정이 올때 청산했을 텐데. 1분봉 전략에서는 진입캔들(60개 묶음)이 완성되자 마자. 다음부터 1분캔들 하나하나의 종가에 모두 반응해 버리는 문제가 있습니다. 어제 설명해주신 것처럼 마지막 59분 캔들의 종가에만(매봉 종가가 아닌) Cvalue(0)가 갱신될 수 있도록 부탁드립니다. if C(또는 Cvalue(0)) < entryprice then ExitLong ("본절청산",AtLimit,entryprice); 그러면 청산식에서도 C 와 Cvalue(0)의 차이가 생길것 같네요. 위의 식으로는 C대신 Cvalue(0)를 입력해도 같은 결과가 나옵니다... 그리고 한가지 추가 질문드리면, Bdate 는 해외선물에서 오전7시 부터 다음날 오전6시가 영업일 1단위가 되는 건가요? (위에 설명에서는 오전9시 부터라고 해놓으셔서...)
프로필 이미지
마인드마스터
2017-11-06
218
글번호 113947
시스템
답변완료

재문의드립니다

55371번재문의드립니다 전봉의고가저가의반절을수평선으로부탁드립니다~~
프로필 이미지
유선
2017-11-06
185
글번호 113946
지표
답변완료

수식작성 부탁드립니다.

기본챠트 : 60분봉 스톡케스틱 주기 : 5,3,3 수식요청1 스톡케스틱의 기준선 60%아래에서 %k가 %D를 골든크로스하고 난이후 4.5시간동안 데드크로스가 나지 않으면 매수 수식요청2 스톡케스틱의 기준선 60%아래에서 %k가 %D를 골든크로스하고 난이후 4.5시간동안 %k가 상승방향이면 매수 수식요청3 가격이 60이평선을 터치하면 경보음 10회 발생
프로필 이미지
푸른파도1
2017-11-06
173
글번호 113945
시스템
답변완료

문의드립니다.

문의 드립니다. 매수 : 연속 음봉 5개 발생시 다음 봉 시초가에 매수진입 매수2 : 연속 음봉 3개 발생후 4번째 봉의 가격이 3번째 음봉 최저가보다 낮을경우 매수진입 매수청산 : 매수진입후 다음봉이 음봉이면 청산 매도 : 연속 양봉 5개 발생시 다음봉 시초가 매도진입 매도2 : 연속 양봉 3개 발생후 4번째 봉의 가격이 3번째 양봉 최고가 보다 높을 경우 매도진입 매도청산 : 매수후 다음봉이 양봉이면 청산
프로필 이미지
하늘북
2017-11-07
159
글번호 113944
사용자 함수
답변완료

[현물] 특정 수량 이상 체결된 종목만 검색이 가능할까요?

예스트레이더 사용시 현물을 검색할때 특정 수량 이상 체결된 종목이 검색이 가능할까요? 예를 들면 한번에 10000주 이상 체결된 종목을 검색한다던지 아니면 한번에 10억이상 체결된 종목을 검색한다던지 가능 여부만 알고 싶습니다 감사합니다
프로필 이미지
JMF
2017-11-06
185
글번호 113943
종목검색
답변완료

오류가 있는지 한번 봐주시면 감사하겠습니다.

아래의 수식을 사용 중입니다. TBH글로벌을 11월2일 첫 진입하였습니다. 그리고는 3일과 6일날 음봉으로 마감이 되어서 정상적이라면 150000에 매수가 이루어져야 하는데 매수시그널이 발생하지 않았습니다. 로직대로라면 일봉상의 음봉종가(전일 종가대비 금일종가가 낮은 경우)에 매수가 되어야 하는데요.... 어떤 문제인지 점검 부탁드립니다. 감사합니다. - 아 래 - var : N(3); var : Right(3),Left(3),cnt(0),HH(0),ii(0); Right = 3; Left = 3; for cnt = 0 to N-1{ if dayhigh(N) <= dayhigh(cnt) Then Right = 3; if dayhigh(N) < dayhigh(N+1+cnt) Then Left = 3; } if Right == true and Left == true Then HH = dayhigh(N); input : 지정일(20171102); var : 매수금액(500000); var : cond(false),Xcond(false); var : V1(0),V2(0); Array : SH[10](0); if sdate >= 지정일 and MarketPosition == 0 and stime == 143000 and C < DayClose(1) and C < O then Buy("매수",OnClose,def,Floor(매수금액/C)); if MarketPosition == 1 Then { if MaxEntries == 5 and C <= AvgEntryPrice*0.75 Then cond = true; if stime == 143000 and C < DayClose(1) and C < O and C < AvgEntryPrice then { if ((cond == false and MaxEntries >= 1 and MaxEntries < 5) or (cond == true and MaxEntries >= 5 and MaxEntries < 10)) then { Buy("매수1",OnClose,def,Floor(매수금액/C)); }} if CurrentContracts > CurrentContracts[1] Then Xcond = false; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp" Then Xcond = true;
프로필 이미지
승부사1
2017-11-06
180
글번호 113942
시스템
답변완료

문의드립니다

안녕하세요 지표문의 드립니다 아래 지표수식 너무나 감사합니다 지표수식에 추가하고싶어 다시 부탁드립니다 지표수시 input : HH(55),LL(51); var1 = HH; var2 = LL+(HH-LL)*0.95; var3 = LL+(HH-LL)*0.886; var4 = LL+(HH-LL)*0.764; var5 = LL+(HH-LL)*0.618; var6 = LL+(HH-LL)*0.500; var7 = LL+(HH-LL)*0.382; var8 = LL+(HH-LL)*0.236; var9 = LL+(HH-LL)*0.114; var10 = LL+(HH-LL)*0.050; var11 = LL; plot1(var1); plot2(var2); plot3(var3); plot4(var4); plot5(var5); plot6(var6); plot7(var7); plot8(var8); plot9(var9); plot10(var10); plot11(var11); Text_Delete(value1); Text_Delete(value2); Text_Delete(value3); Text_Delete(value4); Text_Delete(value5); Text_Delete(value6); Text_Delete(value7); Text_Delete(value8); Text_Delete(Value9); Text_Delete(value10); Text_Delete(value11); value1 = Text_New(sdate,stime,var1,"최고값"); value2 = Text_New(sdate,stime,var2,"95.00"); value3 = Text_New(sdate,stime,var3,"88.60"); value4 = Text_New(sdate,stime,var4,"76.40"); value5 = Text_New(sdate,stime,var5,"61.80"); value6 = Text_New(sdate,stime,var6,"50.00"); value7 = Text_New(sdate,stime,var7,"38.20"); value8 = Text_New(sdate,stime,var8,"23.60"); value9 = Text_New(sdate,stime,var9,"11.40"); value10 = Text_New(sdate,stime,var10,"5.00"); value11 = Text_New(sdate,stime,var11,"최저값"); ================================================================== 1)지표수식에서 최대값 위에 123.6 / 138.2 / 150.0 / 161.8 / 176.4 / 200 / 223.6 / 238.2 / 최저값 아래에 -23.6 / -38.2 / -50 / -61.8 / -76.7 / -100 추가좀 부탁드립니다 2) 전월고가 전월시가 전월저가 전월종가 전월중심선 지표수식 3) 전주고가 전주시가 전주저가 전주종가 전주중심선 지표수식 부탁드립니다 항상 건강하시고 행복하세요
프로필 이미지
럭키잭팟
2017-11-07
228
글번호 113936
지표