커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

특정날짜 봉에 점을 찍는다던지 봉에 어떤 표시를 할 수 있나요?? 3월 10일 이라던지, 아니면 22일전 봉 이렇게 표시를 할 수 있는 방법 좀 알려주세요
프로필 이미지
확실한수익
2017-04-16
210
글번호 108868
강조
답변완료

문의드립니다.

10일전 봉 종가기준으로 다음날(9일전 봉) 종가가 큰 종목을 검색하고 싶은데 어떻게 해야하나요??? if C > C[1] then find(1); 이런 검색식을 만든 후 파워종목검색에서 기준봉을 9일로 잡았는데 검색이 틀리게 나오는데요 혹시나 해서 10일로 검색을 해도 다른결과 값이 나옵니다.
프로필 이미지
확실한수익
2017-04-16
196
글번호 108867
검색
답변완료

문의드립니다.

안녕하세요. 1.색을 채워서 보는 색채우기 기능이 없습니다. value 21번부터 27번까지 색채우기 를 사용해 적용해 보고싶습니다. 2.색채우기 기능이 불가능 하다면 value21번부터 27번까지 캔들 강조색상은 가능 한지 여쭈어 보고싶습니다. 3.지표상에 파란선이 끝나고 붉은선이 출력이 되는 시점에 시스템신호를 넣을수 있나요? Input:length(12),per1(23.7),per2(38.2),per3(50.0),Per4(61.8),per5(74.6),X(0); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),diff(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,length) == H and lastHiVal <> H; Condition2 = Lowest(L,length) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; // if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과 If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; if X == 1 then{ If turnPntArr[1][1] <> turnPntArr[1][0] Then TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2], sDate[barArr[1]],sTime[barArr[1]],valArr[1]); Else TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } } TL_SetSize(TL1,4); TL_SetColor(TL1,GREEN); if turnPntArr[1] != turnPntArr[1][1] and barArr[3] > 0 Then{ if turnPntArr[2] == "Hi" then{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[3]],sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]],sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]); diff = abs(L[barArr[3]]-H[barArr[4]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per5/100)); TL_SetSize(value1,0.1); TL_SetColor(value1,RED); TL_SetSize(value2,0.1); TL_SetColor(value2,RED); TL_SetSize(value3,0.1); TL_SetColor(value3,RED); TL_SetSize(value4,0.1); TL_SetColor(value4,RED); TL_SetSize(value5,0.1); TL_SetColor(value5,RED); TL_SetSize(value6,0.1); TL_SetColor(value6,RED); TL_SetSize(value7,0.1); TL_SetColor(value7,RED); } Else{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[3]],sdate[barArr[2]],stime[barArr[2]],H[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]],sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]); diff = abs(L[barArr[4]]-H[barArr[3]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per5/100)); TL_SetSize(value1,0.1); TL_SetColor(value1,blue); TL_SetSize(value2,0.1); TL_SetColor(value2,blue); TL_SetSize(value3,0.1); TL_SetColor(value3,blue); TL_SetSize(value4,0.1); TL_SetColor(value4,blue); TL_SetSize(value5,0.1); TL_SetColor(value5,blue); TL_SetSize(value6,0.1); TL_SetColor(value6,blue); TL_SetSize(value7,0.1); TL_SetColor(value7,blue); } } TL_Delete(value11); TL_Delete(value12); TL_Delete(value13); TL_Delete(value14); TL_Delete(value15); TL_Delete(value16); TL_Delete(value17); TL_Delete(value21); TL_Delete(value22); TL_Delete(value23); TL_Delete(value24); TL_Delete(value25); TL_Delete(value26); TL_Delete(value27); if turnPntArr[1] == "Hi" then{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100)); TL_SetSize(value11,1); TL_SetColor(value11,RED); TL_SetSize(value12,1); TL_SetColor(value12,RED); TL_SetSize(value13,1); TL_SetColor(value13,RED); TL_SetSize(value14,1); TL_SetColor(value14,RED); TL_SetSize(value15,1); TL_SetColor(value15,RED); TL_SetSize(value16,1); TL_SetColor(value16,RED); TL_SetSize(value17,1); TL_SetColor(value17,RED); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[1]],sdate,stime,H[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]],sdate,stime,L[barArr[2]]); diff = abs(L[barArr[2]]-H[barArr[1]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per1/100),sdate,stime,L[barArr[2]]+diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per2/100),sdate,stime,L[barArr[2]]+diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per3/100),sdate,stime,L[barArr[2]]+diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per4/100),sdate,stime,L[barArr[2]]+diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per5/100),sdate,stime,L[barArr[2]]+diff*(per5/100)); TL_SetSize(value21,1); TL_SetColor(value21,blue); TL_SetSize(value22,1); TL_SetColor(value22,blue); TL_SetSize(value23,1); TL_SetColor(value23,blue); TL_SetSize(value24,1); TL_SetColor(value24,blue); TL_SetSize(value25,1); TL_SetColor(value25,blue); TL_SetSize(value26,1); TL_SetColor(value26,blue); TL_SetSize(value27,1); TL_SetColor(value27,blue); } Else{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per5/100)); TL_SetSize(value11,3); TL_SetColor(value11,blue); TL_SetSize(value12,3); TL_SetColor(value12,blue); TL_SetSize(value13,3); TL_SetColor(value13,blue); TL_SetSize(value14,3); TL_SetColor(value14,blue); TL_SetSize(value15,3); TL_SetColor(value15,blue); TL_SetSize(value16,3); TL_SetColor(value16,blue); TL_SetSize(value17,3); TL_SetColor(value17,blue); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[1]],sdate,stime,L[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]],sdate,stime,H[barArr[2]]); diff = abs(L[barArr[1]]-H[barArr[2]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100),sdate,stime,H[barArr[2]]-diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100),sdate,stime,H[barArr[2]]-diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100),sdate,stime,H[barArr[2]]-diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100),sdate,stime,H[barArr[2]]-diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100),sdate,stime,H[barArr[2]]-diff*(per5/100)); TL_SetSize(value21,4); TL_SetColor(value21,RED); TL_SetSize(value22,4); TL_SetColor(value22,RED); TL_SetSize(value23,4); TL_SetColor(value23,RED); TL_SetSize(value24,4); TL_SetColor(value24,RED); TL_SetSize(value25,4); TL_SetColor(value25,RED); TL_SetSize(value26,4); TL_SetColor(value26,RED); TL_SetSize(value27,4); TL_SetColor(value27,RED); } 감사합니다.
프로필 이미지
천년의사랑
2017-04-17
210
글번호 108866
지표
답변완료

질문드립니다.

input : 투자금(10000000); var : T1(0),Entry(0); if Bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if stime >= 90000 and stime < 120000 Then{ if MarketPosition == 0 and entry < 1 and 매수조건 Then buy("b",OnClose,def,Floor((투자금*0.10)/C)); if MarketPosition == 1 Then{ if C <= EntryPrice*0.97 Then exitlong("bl"); if C >= EntryPrice*1.03 Then exitlong("bp1",OnClose,def,"",Floor(MaxContracts*0.5),1); if C >= EntryPrice*1.05 Then exitlong("bp2",OnClose,def,"",Floor(MaxContracts*0.5),1); if H >= EntryPrice*1.05 and C >= EntryPrice*1.04 Then exitlong("bx"); } } 추가합니다. 1. 현재가가 20% 이상 상승해있으면, 매수하지않습니다. 2. 당일 정리되지않은 매수물량은 당일 3시30분에 일괄청산합니다. 3. 9~12시까지만 '매수'하고 매수 청산은 장이 끝날때까지로합니다.(강제 청산과는 다르겠죠.) 4. 매수조건을 저기 and뒤에 넣게되면 제가 만든 강조식(paintbar)과 다른 곳에서 시그널이 나오게됩니다. 뒤에 다른 문장이 와 있어서 그런걸까요? if condition1 and~~ then 이렇게 해놓는거랑은 다르게 나오더군요 ps. 그리고 투자금액은 항상 저렇게 설정해 놓아야하는건가요?
프로필 이미지
stockric
2017-04-18
202
글번호 108865
시스템
답변완료

진입한 봉번호 기억

어떤 조건식에 의해서 매수또는 매도진입이 되었을 경우 그 진입한 봉의 번호를 기억할수 있을까요? 진입조건이 여러개를 피라미딩해서 진입하고 진입한 조건에 따라서 청산조건을 다르게 할경우 조건식에 사용합니다.
프로필 이미지
kimsh
2017-04-16
217
글번호 108864
시스템
답변완료

분봉 함수표현

당일 1번째,2번째,3번째 5분봉의 시가,고가,저가,종가의 함수는 어떻게 표현하나요
프로필 이미지
ssaw
2017-04-16
202
글번호 108863
사용자 함수
답변완료

주야간장을 1거래일로 보고....

당일(예컨대 4/1일) 오전9시부터 다음날(4/2) 새벽4시까지의 주간장과야간장을 합쳐서 1거래일로 취급하고, 다음날 오전9시부터 새로운 거래일(초기화라고하나요?)로 보고 선물거래를 합니다. 실제 계좌상에는 당일주야간 거래를 통해 청산하지않은 보유잔고가 있어도 다음날 오전9시에는 시스템상 무포지션을 유지하도록 하려면, 1. 시간설정을 어떻게 해야 하나요? (sdate, bdate, dayindex등을 써야할 것 같은데요...) 2. 이경우 전일(3/31)종가를 다음날(4/2)새벽시간에는 어떻게 표현하나요? 3. 당일(4/1)주간장 마감종가는 그날 이어지는 야간장에서 어떻게 표현하며, 다음날(4/2)주간장에서는 어떻게 표현하나요? 4. 다음날(4/2)주간장에서는 그날 새벽의 최종 마감종가를 어떻게 표현하나요? 항상 감사드립니다.
프로필 이미지
자마이카
2017-04-16
216
글번호 108862
시스템
답변완료

수식의뢰

수고많으심니다 수식 부탁드립니다 오일 일봉기준입니다 수식1 매수 sw2선(1.5) 음선발생후 5봉이상 하락 (단 가격변동폭- 1%이상)후 상승하여 sw2선이 양선전환+볼밴 이평선( 중앙)위에서 종가형성 매도 sw2선(1.5) 양선발생후 5봉이상 상승(가격변동폭 +1%이상)후 하락 하여 sw2선 음선전환+볼밴 중심선 밑에종가형성 수식2 볼밴삭제조건 첨부 3월21일자 작성=sw2
프로필 이미지
아트정
2017-04-16
229
글번호 108861
시스템
답변완료

전년도의 시가 고가 저가 종가 표현법

월봉차트든 주봉차트든 상관없이 차트를 열어놓고, 당해년도의 시가고가저가종가가 아니라, "전년도의 시가고가저가종가"를 지표로 나타내는 식을 알고 싶습니다.
프로필 이미지
포리버스
2017-04-16
209
글번호 108860
지표