커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식부탁드립니다.

1. 60일이평선을 골드크로스 또는 데드크로스시 3번째봉종가에 한번만 진입후 40틱손실나면 자동청산하고 재진입금지, 60틱수익이면 자동청산후 재진입 금지하도록 하는 자동매매수식. 2. 전일종가를 골드크로스 또는 데드크로스시 3번째봉종가에 한번만 진입후 40틱손실나면 자동청산하고 재진입금지, 60틱수익이면 자동청산후 재진입 금지하도록 하는 자동매매수식 좀 부탁드립니다.
프로필 이미지
알러뷰
2017-12-12
147
글번호 114909
시스템
답변완료

함수요청

안녕하세요? 함수요청드립니다. - 상품: 크루드오일 - 주기: 60분봉 - 매수: 당일제외 과거 5영업일 양봉마감 and 전일봉 양봉마감 and 전일 마직막 60분봉 양봉마감시 익봉 시가 매수 진입 - 매도: 당일제외 과거 5영업일 음봉마감 and 전일봉 음봉마감 and 전일 마지막 60분봉 음봉마감시 익봉 시가 매도 진입 - 청산: 당일 청산, 진입 당일 종가가 목표로써 종가가 나온 다음 익일 시가에 신호가 생성되는 것이 아닙니다. 신호가 익일 시가에 나오게 되면 진입과 신호가 충돌됩니다. 목표치 설정하여 강제청산이 아닌 진입일 장중에 신호를 생성하고자 합니다.
프로필 이미지
통큰베팅
2017-12-12
142
글번호 114908
시스템
답변완료

문의드립니다.

오늘 날씨가 많이 춥습니다. 따뜻한 물을 자주 마시면 감기예방에 좋습니다. 아래와 같은 수식 부탁드립니다. 1.진입신호 구간(30일 이평선 기준) 아래 2번의 진입조건에 따라 30일 이평선 우상향인 구간에서만 매수진입 신호가 단 한번만 발생하고 우하향인 구간에서는 매도진입 신호가 단 한번만 발생 (= 30일 이평선의 각각의 기울기가 바뀔때마다 진입신호는 단 한번만 발생함) 2.진입조건(2계약 진입) 매수진입 : 30일 이평선 우상향 하고 볼린저밴드에서 종가가 중심선을 상향 돌파한 후에 다음 봉의 종가가 앞의 종가를 다시 상향 돌파하면 매수진입(매도는 반대) 3.청산/스위칭/손절 청산 : 40틱 수익시 모두 청산 손절 : -20틱 손실시 손절 스위칭 : 매수진입후 종가가 중심선을 하향 돌파한 후에 다음 봉의 종가가 앞의 종가를 다시 하향 돌파하면 청산(매도는 반대) 수고하세요^^
프로필 이미지
웹피
2017-12-12
145
글번호 114907
시스템
답변완료

문의드립니다

안녕하세요 1.아래지표식에서 sound 발생을부탁드립니다 그런데 챠트를보면 지표의 선막대기가완성된후 단한번만 발생하게해주세요 완성되는도중 연속적으로 계속 중복 발생되지않구요 . 완성후 단한번만발생이 불가능하다면 그냥 연속적으로라도 발생하게해주세요. 2.아래지표식을 씨스템식으로변환해주세요 감사드립니다 var1 = macd(12,26); var2 = ema(var1,9); if crossup(var1,var2) Then{ value1 = var1; value2 = value1[1]; value3 = c; value4 = value3[1]; if value1 > value2 and value3 < value4 and value4 > 0 then{ plot1(H); } } var11 = StochasticsK(25,6); var12 = StochasticsD(25,6,6); if crossup(var11,var12) Then{ value11 = var11; value12 = value11[1]; value13 = c; value14 = value13[1]; if value11 > value12 and value13 < value14 and value14 > 0 then{ plot1(H); } } var21 = CCI(9); var22 = ema(var21,10); if crossup(var21,var22) Then{ value21 = var21; value22 = value21[1]; value23 = c; value24 = value23[1]; if value21 > value22 and value23 < value24 and value24 > 0 then{ plot1(H); } } var31 = RSI(14); var32 = ema(var31,10); if crossup(var31,var32) Then{ value31 = var31; value32 = value31[1]; value33 = c; value34 = value33[1]; if value31 > value32 and value33 < value34 and value34 > 0 then{ plot1(H); } }
프로필 이미지
매일
2017-12-12
166
글번호 114906
지표
답변완료

수식 문의 드립니다...^^

수고가 많으시죠... 볼린저밴드 (40.2) 이평선 3일 볼린저밴드 상단에 이평선 3일 상승돌파에 매수 하락돌파에 매도 볼린저밴드 하단에 이평선 3일 하락돌파에 매도 상승돌파에 매수 이상입니다...수고하세요...
프로필 이미지
우섭
2017-12-12
136
글번호 114905
시스템
답변완료

매수 미체결 수량 청산 주문 관련

매수 주문이 나갔는데 수량이 적어 체결이 안되다가 청산 수식이 나왔는데 이상하게 청산이 안되는 경우가 있는거 같습니다. 우선 청산수식 나가면 그전에 주문이 발생한 미체결 매수 신호를 다 없애고 청산수식이 나가게 할수는 없나요?
프로필 이미지
고진감래
2017-12-12
154
글번호 114904
시스템
답변완료

키움수식을 예스용으로

키움수식입니다. 수식1 HighestSince(1,CrossUp(Trix(5),0),avg(C,20)) 수식2 LowestSince(1,CrossDown(Trix(5),0), avg(C,20)) 수식3 HighestSince(1,CrossUp(Trix(20),0),avg(C,20)) 수식4 LowestSince(1,CrossDown(Trix(20),0), avg(C,20)) 수식변환부탁드립니다.
프로필 이미지
수급이
2017-12-11
233
글번호 114903
지표
답변완료

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
159
글번호 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
168
글번호 114900
지표