커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

해외선물 간단 수식

쿠르드 오일 매수 매일 종가 진입 매수 매일 시가 청산 매도 매일 종가 진입 매도 매일 시가 청산(매도청산) 간단 수식 부탁해요주세요...
프로필 이미지
이형지
2019-11-19
171
글번호 133750
시스템

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

프로필 이미지
회원
2019-11-19
7
글번호 133744
시스템
답변완료

차트를 엑셀(또는 csv)로 변환

최근 1년간의 일별 시가, 고가, 저가, 종가를 알고 싶습니다. 이를 문의하였더니, 시스템 [3010]전략실행차트(실시간)에 나오는 차트를 보면 될거라고 안내를 받았습니다. 이 차트를 엑셀로 변환하려고 합니다. 어떤 함수를 사용하면 될까요? 감사합니다.
프로필 이미지
제레미리
2019-11-19
229
글번호 133743
사용자 함수
답변완료

수식 의뢰 합니다

1. 주 이평선 역배열 120 < 150 < 170 < 180 < 200 < 220 2.일 이평선 정배열 100 > 300 > 400 if 1 && 2 then find(1); 이게 안되면 파워검색 1 and 2 로 검색 할수 있게 수식 부탁 드립니다
프로필 이미지
크레신
2019-11-19
176
글번호 133742
종목검색
답변완료

수식 문의드립니다.

항상 노고에 감사드립니다. 아래의 사진은 스토캐스틱 보조지표입니다. 본 지표 위에 시스템에 있는 스토캐스틱 신호가 구현되도록 하고 싶습니다. 수식 좀 부탁드립니다. (일반적으로 주가 봉 위에 시스템 신호구 구현되는데, 제가 원하는 것은 보조지표 위에 구현되도록 하는 것입니다. 수고하세요~
프로필 이미지
마진거상
2019-11-19
326
글번호 133741
시스템
답변완료

거래량 없는 캔들 포함, For문의 DayOpen 검색안됨 2

어제 홈페이지에서 예스트레이더 다운 받아서 새로 설치했습니다. 예스트레이더는 버전정보가 어디 있는지 안보입니다. 예스랭귀지는 3.0입니다. 이거 최신 버전 맞나요? 이전 답변에 올리신 이미지가 "[5201]종목검색" 창이던데요. 저는 [5201]이란 창은 존재하지 않습니다. [3201]종목검색, [3202]파워종목검색만 있습니다.
프로필 이미지
행복충전
2019-11-19
292
글번호 133740
종목검색
답변완료

옵션 날짜 수식

아래처럼 옵션기간을 3가지로 구분하여 잘 사용하고 있습니다. 추가로 알고 싶은 수식이 있어 요청드립니다. 1)옵션만기일 기준으로 - N일의 하루치 결과를 예측하는 수식 N일을 입력하면 N일 하루치 결과를 시뮬레이션 input:옵션만기일 기준(3); 0 입력하면 옵션만기일 하루치 결과 1 입력하면 옵션만기 1일 전 하루치 결과 2 입력하면 옵션만기 2일 전 하루치 결과 3 입력하면 옵션만기 3일 전 하루치 결과 2)옵션만기일 하루전 기준으로 - N일까지의 결과를 예측하는 수식 N일을 입력하면 N일부터 옵션만기일 하루전까지 시뮬레이션 input:옵션만기일 하루전 기준(3); 1 입력하면 옵션만기 1일전 결과 2 입력하면 옵션만기 1일전,2일전 결과 3 입력하면 옵션만기 1일전,2일전,3일전 결과 항상 고맙습니다. ****************************************************************************** 2019년 11월 15일부터 11월 30일까지 (만기일 포함되지 않은 달 거래) 2019년 12월 1일부터 12월 11일까지 (만기일 포함된 달 거래) 2019년 12월 12일 1일 거래 (만기일 1일 거래) (만기일 포함되지 않은 달 거래) var : nday(0),week(0),month(0),Xdate(0),XMonth(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); if (nday >= 8 and nday <= 14 and week == 4) or (sdate == 20141008) or (sdate == 20190911) then { Xdate = sdate; XMonth = Month; } if sdate > Xdate and month == XMonth Then { } (만기일 포함된 달 거래) var : nday(0),week(0),Xdate(0),entree(false); nday = date - int(date/100)*100; week = DayOfWeek(date); if bdate > bdate[1]+30 Then entree = true; if (nday >= 8 and nday <= 14 and week == 4) or (sdate == 20141008) or (sdate == 20190911) then { entree = false; } if entree == true Then { } (만기일 하루 거래) var : nday(0),week(0),Xdate(0); nday = date - int(date/100)*100; week = DayOfWeek(date); if (nday >= 8 and nday <= 14 and week == 4) or (sdate == 20141008) or (sdate == 20190911) then Xdate = sdate; if sdate == Xdate then { }
프로필 이미지
좌오비우오비
2019-11-19
197
글번호 133739
시스템
답변완료

수식 부탁드립니다.

1. 지난 5 일동안의 일봉의 상승/하락 퍼센트를(전일 종가대비) 모두 모아놓고 ex) -3 ,+5, -1, +2, +3 .....(퍼센트) 2. 오늘의 상승/하락 값과 비교하여 더 작은 날의 수 예를 들어 오늘 +7퍼센트 상승 했으면 지난 5일의 수가 모두다 +7보다 작기 때문에 값은 5가 됨 이렇게 날의 수를 소환하는 수식만 표현해주시면 감사하겠습니다. 시스템이나 지표로 안해주셔도 됩니다.
프로필 이미지
시고르시고르
2019-11-19
181
글번호 133738
지표
답변완료

수식 수정 좀 요청 드립니다.

* 항상 많은 도움에 고맙습니다. * 아래 수식에서 시간 부분을 좀 빼주십시요. var40 = highest(H,1500); var41 = Lowest(l,1500); 이것을 추가 하니까 수식이 전혀 틀리게 바꿔짐니다.??? * 오일 분봉에 쓸수 있도록 수정 좀 부탁 드립니다. 단지 buy, sell에 사용 한것도 아닌데. 단지 항목만 추가 했는데 아래에 있는 매매 실적이 확 틀려 짐니다. → var40 = highest(H,100); 이케 봉수를 100개로 하면 매매 실적 변화가 없는데 var40 = highest(H,1500); 이렇게 하면 매매실적이 확 틀려 짐니다. 날짜 기준 항목이 필요하면 highest(H,1500) 으로 변경 수정좀 요청 드립니다. input : maP1(5),maP2(20),RSIP(14),RSIsig(9),MACDP1(12),MACDP2(26),MACDP3(9),CCIP(36),CCIsig(9); var : TF2(0),TF3(0),cnt(0),TT(0); var : sum21(0),sum22(0),sum41(0),sum42(0); var : mav11(0),mav12(0),mav21(0),mav22(0),mav41(0),mav42(0); Var : MACDEP21(0),MACDEP22(0),MACDEP23(0); var : JISU21(0),JISU22(0),JISU23(0); var : PreJISU21(0),PreJISU22(0),PreMACDSIG2(0); var : MACDIDX2(0),MACDVal2(0),MACDSig2(0),MACDOsc2(0); Var : MACDEP41(0),MACDEP42(0),MACDEP43(0); var : JISU41(0),JISU42(0),JISU43(0); var : PreJISU41(0),PreJISU42(0),PreMACDSIG4(0); var : MACDIDX4(0),MACDVal4(0),MACDSig4(0),MACDOsc4(0); var : MACDval1(0),MACDSig1(0),MACDOsc1(0); var : CCIsum2(0),CCIAvg2(0),CCIMD2(0),CCIv2(0),CCIEP2(0),CCIdx2(0),CCIs2(0),PreCCIs2(0),CCIV1(0); var : CCIsum4(0),CCIAvg4(0),CCIMD4(0),CCIv4(0),CCIEP4(0),CCIdx4(0),CCIs4(0),PreCCIs4(0),CCIS1(0); Array : O2[100](0),H2[100](0),L2[100](0),C2[100](0); Array : O4[100](0),H4[100](0),L4[100](0),C4[100](0); var : RSIV1(0),RSIS1(0),RSIV2(0),RSIS2(0), RSIV4(0),RSIS4(0);; var : RSIdx2(0),PreUpAvg2(0),PreDownAvg2(0),UpSum2(0),DownSum2(0); var : UpAmt2(0),DownAmt2(0),UpAvg2(0),DownAvg2(0),RSIEP2(0),PreRSIS2(0); var : RSIdx4(0),PreUpAvg4(0),PreDownAvg4(0),UpSum4(0),DownSum4(0); var : UpAmt4(0),DownAmt4(0),UpAvg4(0),DownAvg4(0),RSIEP4(0),PreRSIS4(0); TF2 = Int(dayindex%2); TF3 = int(dayindex%2); if dayindex() == 0 or (TF2 < TF2[1]) or stime == 151500 Then{ O2[0] = O; H2[0] = H; L2[0] = L; for cnt = 1 to 99{ O2[cnt] = O2[cnt-1][1]; H2[cnt] = H2[cnt-1][1]; L2[cnt] = L2[cnt-1][1]; C2[cnt] = C2[cnt-1][1]; } CCIdx2 = CCIdx2+1; PreCCIS2 = CCIS2[1]; } C2[0] = C; if H > H2[0] Then H2[0] = H; if L < L2[0] Then L2[0] = L; if dayindex() == 0 or (TF3 < TF3[1]) or stime == 151500 Then{ O4[0] = O; H4[0] = H; L4[0] = L; for cnt = 1 to 99{ O4[cnt] = O4[cnt-1][1]; H4[cnt] = H4[cnt-1][1]; L4[cnt] = L4[cnt-1][1]; C4[cnt] = C4[cnt-1][1]; } CCIdx4 = CCIdx4+1; PreCCIS4 = CCIS4[1]; } C4[0] = C; if H > H4[0] Then H4[0] = H; if L < L4[0] Then L4[0] = L; sum21 = 0; sum22 = 0; for cnt = 0 to maP2{ if cnt < maP1 Then sum21 = sum21+C2[cnt]; if cnt < maP2 Then sum22 = sum22+C2[cnt]; } mav21 = sum21/maP1; mav22 = sum22/maP2; sum41 = 0; sum42 = 0; for cnt = 0 to maP2{ if cnt < maP1 Then sum41 = sum41+C4[cnt]; if cnt < maP2 Then sum42 = sum42+C4[cnt]; } mav41 = sum41/maP1; mav42 = sum42/maP2; mav11 = ma(c,maP1); mav12 = ma(c,maP2); #MACD MACDEP21 = 2/(MACDP1+1); MACDEP22 = 2/(MACDP2+1); MACDEP23 = 2/(MACDP3+1); if dayindex() == 0 or (TF2 < TF2[1]) Then{ MACDIDX2 = MACDIDX2 + 1; PreJISU21 = JISU21[1]; PreJISU22 = JISU22[1]; PreMACDSIG2 = MACDSIG2[1]; } if MACDIDX2 <= 1 then { JISU21 = C; JISU22 = C; MACDVal2 = JiSu21-Jisu22; } else{ JISU21 = C * MACDEP21 + PreJISU21 * (1-MACDEP21); JISU22 = C * MACDEP22 + PreJISU22 * (1-MACDEP22); MACDVal2 = JiSu21-Jisu22; } if MACDIDX2 <= 2 then MACDSIG2 = MACDVal2; else MACDSIG2 = MACDVal2 * MACDEP23 + PreMACDSIG2 * (1-MACDEP23); MACDOsc2 = MACDVal2-MACDsig2; MACDEP41 = 2/(MACDP1+1); MACDEP42 = 2/(MACDP2+1); MACDEP43 = 2/(MACDP3+1); if dayindex() == 0 or (TF3 < TF3[1]) then{ MACDIDX4 = MACDIDX4 + 1; PreJISU41 = JISU41[1]; PreJISU42 = JISU42[1]; PreMACDSIG4 = MACDSIG4[1]; } if MACDIDX4 <= 1 then { JISU41 = C; JISU42 = C; MACDVal4 = JiSu41-Jisu42; } else{ JISU41 = C * MACDEP41 + PreJISU41 * (1-MACDEP41); JISU42 = C * MACDEP42 + PreJISU42 * (1-MACDEP42); MACDVal4 = JiSu41-Jisu42; } if MACDIDX4 <= 2 then MACDSIG4 = MACDVal4; else MACDSIG4 = MACDVal4 * MACDEP43 + PreMACDSIG4 * (1-MACDEP43); MACDOsc4 = MACDVal4-MACDsig4; MACDVal1 = MACD(MACDP1,MACDP2); MACDsig1 = ema(MACDVal1,MACDP3); MACDOsc1 = MACDVal1-MACDSig1; #CCI if dayindex() == 0 or (TF2 < TF2[1]) or stime == 151500 Then{ CCIdx2 = CCIdx2+1; PreCCIS2 = CCIS2[1]; } if dayindex() == 0 or (TF3 < TF3[1]) Then{ CCIdx4 = CCIdx4+1; PreCCIS4 = CCIS4[1]; } CCIsum2 = 0; If C2[CCIP] > 0 Then Begin for cnt = 0 to CCIP-1{ CCIsum2 = CCIsum2+(C2[cnt]+H2[cnt]+L2[cnt]); } CCIAvg2 = CCIsum2/CCIP; CCIMD2 = 0; For cnt = 0 To CCIP - 1 Begin CCIMD2 = CCIMD2 + Abs(H2[cnt] + L2[cnt] + C2[cnt] - CCIAvg2); End; CCIMD2 = CCIMD2 / CCIP; If CCIMD2 == 0 Then CCIv2 = 0; Else CCIv2 = (H2[0] + L2[0] + C2[0] - CCIAvg2) / (0.015 * CCIMD2); End Else CCIv2 = 0; CCIEP2 = 2/(CCIsig+1); if CCIdx2 <= CCIP then CCIS2 = CCIv2; else CCIS2 = CCIv2 * CCIEP2 + PreCCIS2 * (1-CCIEP2); CCIsum4 = 0; If C4[CCIP] > 0 Then Begin for cnt = 0 to CCIP-1{ CCIsum4 = CCIsum4+(C4[cnt]+H4[cnt]+L4[cnt]); } CCIAvg4 = CCIsum4/CCIP; CCIMD4 = 0; For cnt = 0 To CCIP - 1 Begin CCIMD4 = CCIMD4 + Abs(H4[cnt] + L4[cnt] + C4[cnt] - CCIAvg4); End; CCIMD4 = CCIMD4 / CCIP; If CCIMD4 == 0 Then CCIv4 = 0; Else CCIv4 = (H4[0] + L4[0] + C4[0] - CCIAvg4) / (0.015 * CCIMD4); End Else CCIv4 = 0; CCIEP4 = 2/(CCIsig+1); if CCIdx4 <= CCIP then CCIS4 = CCIv4; else CCIS4 = CCIv4 * CCIEP4 + PreCCIS4 * (1-CCIEP4); CCIV1 = CCI(CCIP); CCIS1 = ema(CCIV1,CCIsig); #RSI if dayindex() == 0 or (TF2 < TF2[1]) Then{ if C2[RSIP] > 0 Then RSIdx2 = RSIdx2+1; PreUpAvg2 = UpAvg2[1]; PreDownAvg2 = DownAvg2[1]; PreRSIS2 = RSIS2[1]; } If RSIdx2 == 1 Then Begin UpSum2 = 0; DownSum2 = 0; For cnt = 0 To RSIP - 1 Begin UpAmt2 = C2[cnt] - C2[cnt+1]; If UpAmt2 >= 0 Then DownAmt2 = 0; Else Begin DownAmt2 = -UpAmt2; UpAmt2 = 0; End; UpSum2 = UpSum2 + UpAmt2; DownSum2 = DownSum2 + DownAmt2; End; UpAvg2 = UpSum2 / RSIP; DownAvg2 = DownSum2 / RSIP; End If RSIdx2 > 1 Then { UpAmt2 = C2[0] - C2[1]; If UpAmt2 >= 0 Then DownAmt2 = 0; Else Begin DownAmt2 = -UpAmt2; UpAmt2 = 0; End; UpAvg2 = (PReUpAvg2 * (RSIP - 1) + UpAmt2) / RSIP; DownAvg2 = (PreDownAvg2 * (RSIP - 1) + DownAmt2) / RSIP; } If UpAvg2 + DownAvg2 <> 0 Then RSIv2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2); Else RSIv2 = 0; RSIEP2 = 2/(RSIsig+1); if RSIdx2 <= 1 then RSIS2 = RSIV2; else RSIS2 = RSIV2 * RSIEP2 + PreRSIS2 * (1-RSIEP2); if dayindex() == 0 or (TF3 < TF3[1]) Then{ if C4[RSIP] > 0 Then RSIdx4 = RSIdx4+1; PreUpAvg4 = UpAvg4[1]; PreDownAvg4 = DownAvg4[1]; PreRSIS4 = RSIS4[1]; } C4[0] = C; If RSIdx4 == 1 Then Begin UpSum4 = 0; DownSum4 = 0; For cnt = 0 To RSIP - 1 Begin UpAmt4 = C4[cnt] - C4[cnt+1]; If UpAmt4 >= 0 Then DownAmt4 = 0; Else Begin DownAmt4 = -UpAmt4; UpAmt4 = 0; End; UpSum4 = UpSum4 + UpAmt4; DownSum4 = DownSum4 + DownAmt4; End; UpAvg4 = UpSum4 / RSIP; DownAvg4 = DownSum4 / RSIP; End If RSIdx4 > 1 Then { UpAmt4 = C4[0] - C4[1]; If UpAmt4 >= 0 Then DownAmt4 = 0; Else Begin DownAmt4 = -UpAmt4; UpAmt4 = 0; End; UpAvg4 = (PReUpAvg4 * (RSIP - 1) + UpAmt4) / RSIP; DownAvg4 = (PreDownAvg4 * (RSIP - 1) + DownAmt4) / RSIP; } If UpAvg4 + DownAvg4 <> 0 Then RSIv4 = 100 * UpAvg4 / (UpAvg4 + DownAvg4); Else RSIv4 = 0; RSIEP4 = 2/(RSIsig+1); if RSIdx4 <= 1 then RSIS4 = RSIV4; else RSIS4 = RSIV4 * RSIEP4 + PreRSIS4 * (1-RSIEP4); RSIV1 = RSI(RSIP); RSIS1 = ema(RSIV1,RSISig); if mav11 > mav12 and RSIV1 > 50 and RSIV1 > RSIS1 and MACDOSC1 > 0 and CCIV1 > CCIS1 And mav21 > mav22 and RSIV2 > 50 and RSIV2 > RSIS2 and MACDOSC2 > 0 and CCIV2 > CCIS2 Then buy(); if mav11 < mav12 and RSIV1 < 50 and RSIV1 < RSIS1 and MACDOSC1 < 0 and CCIV1 < CCIV2 and mav21 < mav22 and RSIV2 < 50 and RSIV2 < RSIS2 and MACDOSC2 < 0 and CCIV2 < CCIS2 Then sell(); ** 고맙습니다.
프로필 이미지
요타
2019-11-19
261
글번호 133737
시스템