커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

ma 에 대해서 다시 질문드립니다.

아래와 같이 답변주셨는데요 물론 말씀하신것처럼 이평계산 이상의 봉을 넣으면 잘나오고있습니다. 하지만 문제 되는점은 저는 봉수를 필요이상으로 많이넣고싶지않습니다 (차트를 수십개 띄워서 매매하는데 예스트레이더는 64bit를 지원하지 않으므로 필요이상의 봉을 하면 프로그램이 다운됩니다.) 15분봉상에서 제가 필요로 하는 봉수는 2000봉입니다. 2000봉 15분봉으로 지표를 하면 분명히 Sma11 = ma(C,i7800); 값은 Sma11 = ma(C,1560); 과 같으므로 화면상에 최근 400여 봉정도는 나타나야 된다고생각합니다 물론 2000봉에 15분봉상 ma(c,1560)으로 직접 숫자를 넣으면 잘 작동합니다 하지만 변수로 위와 같이 i7800 = 1560; Sma11 = ma(C,i7800); 넣으면 작동하지 않습니다. 이는 문법적으로는 문제없는데 기능상 문제인거같은데요 왜그런지 궁금합니다. 안녕하세요 예스스탁입니다. 차트에 지정한 기간의 이평을 계산할만큼 봉수가 충분한지 확인해 보시기 바랍니다. 첨부된 그림과 같이 이평이 정상적으로 계산되고 그려지고 있습니다. 즐거운 하루되세요 > 여유로운투자 님이 쓴 글입니다. > 제목 : ma 값이 계산안됩니다 > //Input : DayPeriod1(5), DayPeriod2(10), DayPeriod3(20), DayPeriod4(31), DayPeriod5(60); var : Sma1(0),Sma2(0),Sma3(0),Sma4(0),Sma5(0); var : Sma6(0),Sma7(0),Sma8(0),Sma9(0),Sma10(0); var : Sma11(0); var : i650(650),i1000(1000),i1300(1300),i2000(2000),i2600(2600),i3000(3000); var : i4000(4000),i5000(5000),i6000(6000),i7000(7000),i7800(7800); if Index==0 Then{ ClearDebug; if(BarInterval==3)Then{ i650 = 650; i1000 = 1000; i1300 = 1300; i2000 = 2000; i2600 = 2600; i3000 = 3000; i4000 = 4000; i5000 = 5000; i6000 = 6000; i7000 = 7000; i7800 = 7800; } if(BarInterval==5)Then{ i650 = 390; i1000 = 600; i1300 = 780; i2000 = 1200; i2600 = 1560; i3000 = 1800; i4000 = 2400; i5000 = 3000; i6000 = 3600; i7000 = 4200; i7800 = 4680; } if(BarInterval==15)Then{ i650 = 130; i1000 = 200; i1300 = 260; i2000 = 400; i2600 = 520; i3000 = 600; i4000 = 800; i5000 = 1000; i6000 = 1200; i7000 = 1400; i7800 = 1560; } //MessageLog("barin %.f",BarInterval); } /* Sma1 = ma(C,Period1); Sma2 = ma(C,Period2); Sma3 = ma(C,Period3); Sma4 = ma(C,Period4); Sma5 = ma(C,Period5); Sma6 = ma(C,Period6); Sma7 = ma(C,Period7); Sma8 = ma(C,Period8); Sma9 = ma(C,Period9); Sma10 = ma(C,Period10); Sma11 = ma(C,Period11); */ Sma1 = ma(C,i650); Sma2 = ma(C,i1000); Sma3 = ma(C,i1300); Sma4 = ma(C,i2000); Sma5 = ma(C,i2600); Sma6 = ma(C,i3000); Sma7 = ma(C,i4000); Sma8 = ma(C,i5000); Sma9 = ma(C,i6000); Sma10 = ma(C,i7000); Sma11 = ma(C,i7800); MessageLog("i1300 %.f %.f %.f",i7000,sma10,ma(C,i7000)); Plot1(Sma1); Plot2(Sma2); Plot3(Sma3); Plot4(Sma4); Plot5(Sma5); Plot6(Sma6); Plot7(Sma7); Plot8(Sma8); Plot9(Sma9); Plot10(Sma10); Plot11(Sma11); 분봉에 따라 ma 값을 변하게 하고싶습니다 즉 5분봉일때 10분봉일 때 5분봉일때 100ma를 10분봉일때 50ma 로 지표를 나타내고싶어서 위와 같이만들었는데 제대로 작동하지 않는군요 그래서 프린트해봤더니 이상합니다 ma(c,1300) 은 정확히 값을 출력하는데 ma(c,i1300) 은 값이 안나옵니다 이게 왜 이런지 궁금합니다. i1300의 값이 정확히 바뀌는걸 분봉마다 debug 통해확인하는뎅도 ma(c,1300)으로 값을 직접 넣은것과 ma(c,i1300) 처럼 변수로 하는것의 값이 너무 다릅니다 왜그런가요?
프로필 이미지
여유로운투자
2017-12-11
232
글번호 114902
지표
답변완료

수식수정부탁드립니다

안녕하세요 다음 수식에서 고점저점발생시 고점수치,저점수치(TEXT)의 숫자가 아닌 예를들어 원이나 삼각형태의 어떠한 형태의 표시가 발생하도록 수식변형부탁드립니다 감사합니다 Input:length(5),종가사용여부(0),파동선두께(5),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); PlaySound("F:₩예스트레이더소리₩띠웅.wav"); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); PlaySound("F:₩예스트레이더소리₩띠웅.wav"); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2017-12-11
202
글번호 114900
지표

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

프로필 이미지
회원
2017-12-11
59
글번호 114899
시스템
답변완료

부탁드립니다.

수식 부탁드립니다. 아래수식을 갭보정으로 부탁드립니다. ----------------------------------------- INPUT : TPA(8), HAA(8), TAL(4) VAR : TCHAN(0), BCHAN(0); VAR : haclose(0), haopen(0), hahigh(0), halow(0),hae(0),tpae(0),trendae(0),typ(0),h4(0),tv(0); if Accum(1) > 1 then {typ=(H+L+C)/3; haclose=(Open + HIGH + LOW +CLOSE ) / 4 ; haopen = (haopen[1] + haclose[1]) / 2; hahigh=Max(H,haopen,haclose); halow=Min(L,haopen, haclose); H4=(haclose+haopen+hahigh+halow)/4; hae = MA(h4, HAA) ; tpae= MA(typ, TPA); trendae=MA(C,TAL); tv=IFF(tpae>hae and C>O AND C > trendae,1, IFF(tpae<=hae and C<=O and C<=trendae,-1,tv[1])); plot1(0,"0"); plot2(tv,"tv");
프로필 이미지
비류천
2017-12-11
194
글번호 114896
지표
답변완료

atstop 진입조건 문의

if stime<091000 then LL = DayLow; sell("S",atstop,LL); 위 atstop을 이용한 진입식을 아래처럼 if문을 이용한 진입식으로 변형하려합니다 if stime<091000 then LL = DayLow; if crossdown(c,LL) then sell("S"); 그런데 시뮬을 해보면 위 아래식의 진입신호가 다르게 나오던데 동일하게 진입이 발생하게끔 수정 좀 부탁드리겠습니다
프로필 이미지
훈sys
2017-12-11
181
글번호 114883
시스템

고민중 님에 의해서 삭제되었습니다.

프로필 이미지
고민중
2017-12-11
5
글번호 114882
시스템
답변완료

진입수식 부탁 드립니다.

현 그림은 buy_Line 을 종가 돌파시 매수 진입이 됩니다. 이를 buy_Line 돌파시(그림상의 buy1진입)의 종가를 buy1C 로 저장하고 buyR==true 일때 buy_ Line 보다 작거나 같고 buy1c보다 작거나 같을때 봉 완성전 실시간으로 buy진입식을 만들고 싶습니다.
프로필 이미지
다올
2017-12-11
218
글번호 114881
시스템
답변완료

분봉 거래량 평균과 최대 거래량 구하기

09-15 문의에 아래와 같이 답변을 주셨는데 연결선물 3분봉에 적용해 보니 아무런 결과도 나오질 않습니다. 죄송하오나 다시한번 살펴봐 주시길 부탁드립니다. -------------- 아 래 ------------------ Re : 분봉 거래량 평균과 최대 거래량 구하기 안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. input : N(40); var : idx(0),cnt(0),sum(0),ii(0),mav(0),hh(0); Array : dd[50](0); if bdate != bdate[1] Then{ Condition1 = true; dd[0] = sdate; for cnt = 1 to 49 { dd[cnt] = dd[cnt-1][1]; } } if Condition1 == true Then idx = idx+1; if dd[N] > 0 then{ sum = 0; ii = 0; HH = 0; for cnt = 1 to idx { if sdate[cnt] >= dd[N] and sdate[cnt] < sdate and stime[cnt] == stime Then { sum = sum+v[cnt]; ii = ii+1; if V[cnt] > hh Then hh = V[cnt]; } if sdate[cnt] < dd[N] Then cnt = idx+1; } mav = sum/ii; plot1(mav); plot2(HH); } 즐거운 하루되세요 > 스퍼트시커 님이 쓴 글입니다. > 제목 : 분봉 거래량 평균과 최대 거래량 구하기 > 항상 신속하고 상세한 답변 감사드립니다. 선물 3분봉에 적용하고자 합니다. 최근 40거래일 동안의 거래량 평균을 구해서 당일의 거래량과 비교하고자 합니다. 9:03, 09:06, 09:09 등 봉이 완성될때마다 전일 기준 40일 거래일의 거래량 합계를 40으로 나누어 평균을 구하고 같은 기간 동일시간(3분단위) 최대거래량을 구하고자 합니다. 그런데 수능시험일 등 개장시간이 10시인 경우도 있어서 단순히 시간이나 봉의 갯수로 합계 등을 구할 경우 정상 값이 아니어서 이점이 어렵군요! 이점을 극복하고 결과적으로 Plot1(평균거래량, "평균거래량"); Plot2(최대거래량, "최대거래량"); 위와 같이 막대그래프를 겹쳐서 나오게 하려고 합니다. 도움 부탁드립니다.
프로필 이미지
스퍼트시커
2017-12-11
241
글번호 114880
지표
답변완료

수식 문의드립니다.

안녕하세요. 30분봉상에 일봉의 시가와 전일(고+저)/2 가격을 수평으로 그리는 방법이 있는지요? dayopen 함수를 쓰다보니 어제의 시가, 그제의 시가도 다 표현이되는데... 당일의 시가와 어제의 중심값만 수평으로 표시되게 부탁드립니다. 내일이 되면 당연히 오늘의 라인은 없어지고 내일의 시가와 오늘의 중심값만 표시가 되겠죠. 부탁드립니다. 감사합니다.
프로필 이미지
하루만
2017-12-11
200
글번호 114877
지표