커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다

var1=data2(C); var2=data3(C); var3=data4(C); 라면 이것을 N을 써서 다음과 같이 표현해도 똑같이 작동이 되는지요? Input:N(2); var1=dataN(C); var2=data(N+1)(C); var3=data(N+2)(C); 부탁드립니다
프로필 이미지
묘선낭자
2015-05-19
191
글번호 86173
지표
답변완료

40틱

안녕하사세요 주가가 특정이평선을 돌파시 (양봉으로 특정이평선위에서 종가마감) 위로 40틱에 선이든 모양이든 표시를 했으면 합니다 절대로 좌에서 우로 길게는 아니됩니다 반대의 경우도 부탁합니다
프로필 이미지
효효효효효
2015-05-19
208
글번호 86172
지표
답변완료

글번호 41848 재질문

글번호 41848번에 추가적인 질문입니다 그럼에도 불구하고 국내선물 연결차트를 30분봉 차트를 띄워놓고 작성해주신 다음의 함수를 시뮬레이션하면 우수한 성과가 나옵니다. 단순한 우연인가요? 만약 과거 당시 실전매매는 시뮬의 신호처럼 안나왔을 가능성이 큰 것인가요? var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30 ; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then buy("b",AtMarket); if MarketPosition == 0 and CC[0] < var1 and CC[1] > var2 and CC[2] > var3 and C <= dayhigh-0.5 Then sell("s",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); if MarketPosition == -1 and c >= Lowest(L,BarsSinceEntry)+0.5 and CrossUp(mav1,mav2) Then ExitShort("sx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); ExitShort(); }
프로필 이미지
통큰베팅
2015-05-18
203
글번호 86171
시스템
답변완료

수식부탁 드립니다.

* 항상 많은 도움 고맙습니다. <요청 사항> 분봉의 등락율, 거래량 합을 구해주십시요, 기준) 9시 ~ 10시 까지 10분 봉이 6개 있을때 상승(등락율이 + 인것)합 = A(모두 더한것) 하락(등락율이 - 인것)합 = B(모두 더한것) 을 구하여 A > B*2 AND 거래량도 똑같이 구하여 거래량도 C > D*2 이면 BUY (셈풀) 1번봉 :9시00분 ~ 10 등락율 0.5%(전일종가기준) 거래량 100주(첫봉만 전일종가 가격기준) 2번봉 :9시10분 ~ 20 등락율 -0.3%(종가기준) 거래량 100주 3번봉 :9시20분 ~ 30 등락율 0.5%(종가기준) 거래량 100주 4번봉 :9시30분 ~ 40 등락율 -0.2%(종가기준)거래량 100주 5번봉 :9시40분 ~ 50 등락율 3.5%(종가기준)거래량 3000주 6번봉 :9시50분 ~ 10시 등락율 -0.1%(종가기준)거래량 100주 일 경우 A = 0.5+0.5+3.5 = 4.5 B = 0.3+0.2+0.1 = 0.6 AND C = 100+100+3000 = 3200 D = 100+100+100 = 300 IF A > B*2 AND C > D*2 THEN BUY * 추가사항 : 상승봉 하락봉 겟수도 카운트 되나요? 카운트 되면 E(상승봉겟수) < F (하락봉겟수) BUY 도 추가 부탁드립니다. 좋은 하루 되십시요.
프로필 이미지
요타
2015-05-19
227
글번호 86170
시스템
답변완료

20이평바탕색...

종가상(10이평과20이평이) 골든이면....바탕색 연한 빨간색... 종가상(10이평과20이평이) 데드이면....바탕색 연한 파란색... 이평선기준으로 종가상10이평,20이평 동시에 골든,데드 시... 바탕색이 변하는 수식 부탁드려요...
프로필 이미지
신나는파파
2015-05-18
208
글번호 86169
지표
답변완료

옵션 매도시 증거금 어떻게 구하나요?

예스트레이더(하이투자증권)에 보면 “옵션 매도시 주문증거금현황(화면번호:1214)”이 있습니다. 이 화면에는 옵션 각 종목마다 매도시 증거금 현황이 일목요연하게 나와 있는데요. 이 증거금 내역을 예스스팟에서 읽어올수 없나요? 예를들면, 예스스팟에서 작성하는 수식을 통해 풋 7월물 250.0 의 1계약 옵션 매도시 주문 증거금을 구하려고 할 때, 이 예스트레이더 “옵션 매도시 주문증거금현황(화면번호:1214)”을 조회하여 그 종목의 1계약당 주문 증거금을 읽어 오고 싶은데요. 옵션 매도시 증거금은 증권사마다 그 금액이 조금씩 다 틀리더군요. 증거금 계산 방식이 증권사마다 다 다른 거 같더라구요. 정확한 증거금을 알려면 1214화면을 참조해서 읽어오는 수밖에 없을 거 같은데. 예스스팟 스튜디오에는 아무리 찾아봐도 관련 기능은 안보여서...좀 난감하네요. 매도 증거금 구하는 방법 좀 알려주세요.
프로필 이미지
김태희
2015-05-18
243
글번호 86168
사용자 함수
답변완료

수식 부탁드립니다.

만기 롤오버 불가능하다고 하셨는데, 예스스팟에 과거 문답에 보면 답변이 있는데, 예스스팟으로는 가능한건가요? 아래는 과거 글내용 따온 것입니다. 그리고 해외선물 롤오버의 경우, 스스로 특정 날짜를 정해서 하려고 하는데, 어쨌든 불가능한건가요? 작성자 : 예스스탁 작성일 : 2014-11-17 오후 4:15:26 조회수 : 53 Re : Re : 문의드립니다. 안녕하세요 예스스탁입니다. 아래식 참고하시기 바랍니다. MarketData1을 보유중인 근월물 주식선물 데이터 MarketData2를 차월물 주식선물 데이터로 지정하시면 됩니다. 수식에 게시판 금칙어가 있습니다. 영문업데이트가 Up*date로 되어 있으므로 *삭제하시기 바랍니다. var RollOver = false; var Pst = 0; var ID = 0; var Num = 0; var vol = 0; function Main_OnStart() { RollOver = false; pst = 0; vol = 0; } function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*삭제 { if (lUp*dateID == 20001)//*삭제 { var d = new Date(); var Month = d.getMonth()+1;//월(1월이 0으로 리턴되므로 1을 더함) var ndate = d.getDate();//날짜 var week = d.getDay();//요일 //RollOver가 false이고 //3,6,9,12월이고 2번째주 목요일 //14시40분이후이면 if (RollOver == false && Month == 0 && week == 4 && ndate >= 8 && ndate <= 14 && MarketData1.time >= 1440000000) { //RollOver는 true(한번만 동작하기 위한 변수) RollOver = true; //MarketData1 종목잔고 셋팅 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code),0); //잔고가 매도포지션이면 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { // 최종 포지션 저장 pst = Account1.Balance.position; // 수량저장 vol = Account1.Balance.count; //매도5호가로 잔고수량만큼 매수주문 ID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Account1.Balance.count, MarketData1.Ask(5), 0); } //잔고가 매수포지션이면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { // 최종 포지션 저장 pst = Account1.Balance.position; // 수량저장 vol = Account1.Balance.count; //매수5호가로 잔고수량만큼 매도주문 ID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Account1.Balance.count, MarketData1.Bid(5), 0); } } } } //주무응답 수신 function Main_OnOrderResponse(OrderResponse) { //RollOver가 true //저장한 주문아이디와 동일 주문응답이 들어오면 //주문번호 저장 if (RollOver == true && OrderResponse.orderID == ID) { Num = OrderResponse.orderNum; } } //체결응답 수신 function Main_OnNotifyFill(NotifyFill) { //RollOver가 true //저장한 주문번호와 동일한 체결응답이 수신되면 if (RollOver == true && num > 0 && NotifyFill.orderNum == num) { //MarketData1청산주문이 분할로 체결될수도 있으므로 //MarketData1 잔고수량 세팅 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code),0); //MarketData1잔고가 없고 if (Account1.Balance.count == 0) { //MarketData1 최종 포지션이 매도였으면 if (pst == 1) { //MarketData2를 MarketData1 최종수량만큼 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData2.code),vol, MarketData1.Bid(5), 0); } //MarketData1 최종 포지션이 매수였으면 if (pst == 2) { //MarketData2를 MarketData1 최종수량만큼 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData2.code),vol, MarketData1.Ask(5), 0); } } } } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다. > 안녕하세요 예스스탁입니다. 문의하신 내용 가능하지 않습니다. 자동으로 롤오버를 하기 위해서는 보유한 종목들의 차월물 종목코드를 알아야 합니다. 하지만 잔고 종목의 종목코드를 보고 차월물의 종목코드를 알수가 없습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 착한이 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요. Yestrader로 주식선물일봉을 이용한 포지션 전략에서 보유중인 전종목을 만기일날 롤오버하는 YesSpot수식좀 부탁드립니다. Yestrader의 경우 만기일 전종목 청산하고 익일 재진입하는 전략을 쓰고 있는데요, 이럴경우 손익에 왜곡이 있어서 만기일날 전종목교체하는 방법을 사용하고 싶습니다. 보유종목의 개수에 맞춰서 만기일 특정시간에 전종목을 다음물로 롤오버하되, 시간은 시스템의 부하를 방지하기 위해 종목마다 다르게 가져가고자 합니다. 감사합니다.
프로필 이미지
spek
2015-05-18
334
글번호 86167
시스템

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

프로필 이미지
yosong
2015-05-18
0
글번호 86166
사용자 함수

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

프로필 이미지
yosong
2015-05-18
7
글번호 86165
사용자 함수