커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

For 문으로 배열에 EMA 입력하는 차이

다음과 같은 수식으로 배열에 For문으로 EMA 를 넣으려는데 값이 이상합니다. (첫번째 첨부 화일) Arrays : a_ma[9](0); For Value1 = 0 to 8 { a_ma[Value1] = Ema(c, Value1 + 2); } plot1(a_ma[0], "t1"); plot2(a_ma[1], "t2"); plot3(a_ma[2], "t3"); plot4(a_ma[3], "t4"); plot5(a_ma[4], "t5"); plot6(a_ma[5], "t6"); plot7(a_ma[6], "t7"); plot8(a_ma[7], "t8"); plot9(a_ma[8], "t9"); 그런데 다음과 같이 수식을 For문이 아니라 그냥 나열해서 넣으면 제대로 나옵니다. (두번째 첨부 화일) Arrays : a_ma[9](0); a_ma[0] = ema(c, 2); a_ma[1] = ema(c, 3); a_ma[2] = ema(c, 4); a_ma[3] = ema(c, 5); a_ma[4] = ema(c, 6); a_ma[5] = ema(c, 7); a_ma[6] = ema(c, 8); a_ma[7] = ema(c, 9); a_ma[8] = ema(c, 10); plot1(a_ma[0], "t1"); plot2(a_ma[1], "t2"); plot3(a_ma[2], "t3"); plot4(a_ma[3], "t4"); plot5(a_ma[4], "t5"); plot6(a_ma[5], "t6"); plot7(a_ma[6], "t7"); plot8(a_ma[7], "t8"); plot9(a_ma[8], "t9"); 어떤 차이가 있는지요?
프로필 이미지
Nuno
2016-05-07
126
글번호 97791
지표
답변완료

강조수식부탁드립니다

안녕하세요 2가지 강조수식부탁드립니다 1. 1) 상승할때 강조는 아래 지표식 단기볼린져밴드(색변화)가 상승하고 벌어지면서 이평선 3종류(단기,중기,장기)골든크로스 유지되면서 adx상승 중일때 레드색 유지 2) 하락할때 강조는 아래 지표식 단기볼린져밴드(색변화)가 하락하고 벌어지면서 이평선 3종류(단기,중기,장기)데드크로스 유지되면서 adx상승 중일때 블루색 유지 2. 틱봉에서 1)상승시 다음틱봉이 전틱봉의 저점을 깨지 않고 계속 상승 유지하면 레드색유지 2)하락시 다음틱봉이 전틱봉의 고점을 깨지 않고 계속 하락유지하면 블루색유지 감사합니다
프로필 이미지
bestkim
2016-05-06
134
글번호 97790
강조
답변완료

참조 데이터를 사용할때 심각한 오류가 있습니다.!!!

참조데이터를 사용할때 아주 심각한 오류가 있습니다. 상황 설명이 난해하고 어려워 예를 들어서 설명을 하겠습니다. 1. 시뮬레이션 차트를 연결선물, 10분봉, 2015-01-01 ~ 2015-12-31 로 설정을 합니다. 2. 다음의 수식으로 시스템만들어 적용을 합니다. Variables : MA1(0), MA2(0); MA1 = MA(Close, 10); MA2 = MA(Close, 20); If (MA1[1] < MA2[1] ) Then Buy (); If (MA1[1] > MA2[1] ) Then Sell (); 3. 수수료 = 0, 슬리피지 = 0, 강제청산 없음 으로 세팅후 시뮬레이션 성능보고서를 확인해보면 => 총손익이 10.50 pt 로 나옵니다. 4. 참조데이터로 ATM 연결 콜옵션을 5 분봉으로 추가합니다. 5. 위의 수식 제일 아랫부분에 다음 코드를 추가합니다. Var : test(1); test = Data2( close ); 이 코드는 실제 매수/매도 에는 전혀 영향을 미치지 않는 코드입니다. 6. 다시 총손익을 확인해봅니다. => 총손익이 9.45 로 바뀌어 있습니다. 7. 참조데이터의 주기를 1분으로 바꾸어봅니다. => 총손익이 11.95 로 다시 바뀌었습니다. 7. 모든 차트는 그대로 둔 상태에서 시스템식에 추가한 두줄을 다시 삭제해봅니다. => 총손익이 다시 10.50 으로 돌아옵니다. 이렇게 실제 매매에 전혀 영향을 주어서는 안되는 코드가 실제 영향을 주고 있습니다. 제가 간단하게 예제만 작성을 하였기 때문에 그나마 영향이 적은 것이지 제가 실사용중인 시스템에서는 거의 사용 불가능할 정도로 영향을 주고 있습니다. 빠른 조치 부탁드립니다!!!
프로필 이미지
공간
2016-05-07
146
글번호 97789
시스템
답변완료

부탁 드립니다.

항상 도움 주심에 감사 드립니다. 질문1) 전일 일봉의 1)고점선 2)저점선 3)(고점선+저점선)/2 를 당일 분봉에 나타 내는 수식 질문2)그림과 같은 내용의 피보나치 수식을 log 피보나치로 나타 낼수 있겠는지요? 고점1.2797 저점 1.2506 로그로 변환한 값 -23.6%->1.2725 -38.2%->1.2582 -50%->1.2648 -61.8%->1.2613 -76.4%->1.2572 미리 감사와 경배 드립니다.
프로필 이미지
yes
2016-05-06
211
글번호 97788
지표
답변완료

상한가찾기

저는 다음과 같은 수식으로 상한가를 찾고 있습니다. input : N(0); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } if H[N] >= 상한가[N] Then find(1); 이건 예스스탁쪽에서 적어준 식인데, 이대로 검색을 하면 실제 상한가를 친 종목에서 한 두 종목 빼고 나올때가 많습니다. 예를들어 2016년 04월 01의 상한가 친 종목은 보락, 지에스인스트루, 대성미생물인데 여기서 검색하면 보락과 지에스인스트루만 나옵니다. 이런 경우는 나열하려면 셀 수 없이 많습니다. 왜 이런지 궁금하고, 모든 상한가 친 종목을 검색할 수 있는 검색식좀 부탁드리겠습니다.
프로필 이미지
회원
2016-05-06
137
글번호 97787
종목검색

곽민수 님에 의해서 삭제되었습니다.

프로필 이미지
곽민수
2016-05-07
15
글번호 97786
시스템
답변완료

질문드립니다~

Input: P20(20), D1(1); VAR: PERD(0), APER(0), MID(0), SD(0), TOP(0), BOT(0); PERD= ( C-C[1] )/C[1] ; APER= MA(PERD, P20) ; MID= C*(1 + APER) ; SD= STD(PERD, P20) ; TOP= C*( 1 + APER + D1*SD) ; BOT= C*( 1 + APER - D1*SD) ; Plot1(TOP, "TOP"); Plot2(BOT, "BOT"); Plot3(MID, "MID"); Input: VSStd(1); Vars: SumVS(0), AvgVS(0), DiffVS(0), StdVS(0), SetArr(0), SumArr(0), DiffArr(0), VSLow(0), VSMid(0), VSHigh(0); Array: VS[20](0); For SetArr = 0 To 4 { VS[SetArr * 4 + 0] = (O[SetArr] - C[SetArr + 1]) / C[SetArr + 1]; VS[SetArr * 4 + 1] = (H[SetArr] - C[SetArr + 1]) / C[SetArr + 1]; VS[SetArr * 4 + 2] = (L[SetArr] - C[SetArr + 1]) / C[SetArr + 1]; VS[SetArr * 4 + 3] = (C[SetArr] - C[SetArr + 1]) / C[SetArr + 1]; } For SumArr = 0 To 19 { If SumArr == 0 Then SumVS = 0; SumVS = SumVS + VS[SumArr]; If SumArr == 19 Then AvgVS = SumVS / 20; For DiffArr = 0 To 19 { If DiffArr == 0 Then DiffVS = 0; DiffVS = DiffVS + Square(VS[DiffArr] - AvgVS); If DiffArr == 19 Then StdVS = SquareRoot(DiffVS / 20); } } VSLow = C * (1 + (AvgVS - StdVS * VSStd)); VSMid = C * (1 + AvgVS); VSHigh = C * (1 + (AvgVS + StdVS * VSStd)); Plot4(VSLow, "MBC2 Low"); Plot5(VSMid, "MBC2 Mid"); Plot6(VSHigh, "MBC2 High"); 조건은 이렇습니다 지표 차트표시에 이동 에 수평 TOP -1 BOT -1 MID 1 로 수평을 조정하고싶습니다~ 매수-캔들의 몸통이 하단선 아래에 있을떄 매도-캔들의 몸통이 상단선 위에 있을떄 차트 캔들과 겹처진 가격선(검정색선) MID 교차 후 나오는 몸통을 말합니다~ 감사합니다
프로필 이미지
곽민수
2016-05-09
142
글번호 97785
시스템
답변완료

용어, 함수에 대해 질문드립니다.

항상 친절한 답변에 감사드립니다. 메뉴얼 공부중 용어와 함수에 대해 질문 드립니다. 1. '포인트'의 개념이 정확히 뭔가요? 해외선물 오일의 경우 1포인트는 0.01인가요? 이게 호가단위와 언제나 일치하나요? (PositionProfit 함수 질문입니다. 호가단위가 0.01인 오일 기준으로 질문 드립니다.) 2. 수수료 등을 다 감안해 2.5틱 수익이 났다고 하면 리턴값이 2.5와 0.025 둘중 뭔가요? 3. 반대로 2.5틱 손실이면 리턴값이 뭔가요? 수익이 0이면 리턴값은 0이죠? 4. 이 함수의 작동 시점에 대한 질문입니다. 매수중인데 수식에서 exitlong 을 만나고, 바로 다음 줄에 PositionProfit 코딩이 돼 있으면 이 청산을 직전거래로 인식하나요? 아니면 다음봉 연산때 인식하나요?
프로필 이미지
로봇짱
2016-05-05
118
글번호 97784
사용자 함수
답변완료

강조수식부탁드립니다

틱봉에 색변화 강조막대들어가는 수식부탁드립니다 1.단기,중기,중단기,장기 이평선 골든크로스 + adx 상승 = red 강조막대 adx하락 시 강조막대 없어짐 2.단기,중기,중단기,장기 이평선 데드크로스 + adx 상승 = blue 강조막대 adx하락 시 강조막대 없어짐 감사합니다
프로필 이미지
bestkim
2016-05-05
130
글번호 97783
강조