커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지수볼린저밴드 수식 문의 드립니다.

수고하십니다. 일반볼린저밴드를 지수볼린저밴드로 변경하려고 16164에 있는 수식을 붙여 넣었는데 선언되지 않은 std-e나 price등이 있다며 수식에 에러가 자꾸 뜹니다. 아래는 제가 붙여넣은 수식인데 뭐가 잘못된건지 봐 주십시요 Input : Period(20), D(2); var : Base(0), BollUp(0), BollDn(0); Base = ema(C, period); BollUP = ema(C, Period) + (D * std_e(C, Period)); BollDn = ema(C, Period) - (D * std_e(C, Period)); plot1(Base); plot2(BollUp); plot3(BollDn); [사용자함수식 : std_e] Input : Price(NumericSeries), Length(NumericSimple); Var : SumSqrt(0), Avg(0), Counter(0); If Length != 0 Then Begin Avg = eMa(Price, Length); SumSqrt = 0; For Counter = 0 To Length - 1 Begin SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg); End; Std_e = SquareRoot(SumSqrt / Length); End Else Std_e = 0;
프로필 이미지
선물만땅
2014-06-16
218
글번호 75879
지표
답변완료

부탁드립니다..

안녕하세요.. 2개의 지표에 의한 시스템식 부탁드립니다.. 1. 지수이동평균에 의한 envelope 시스템식 - 매수 : 20일 지수이동평균에 의한 5% 지지선 도달시 - 매도 : 20일 지수이동평균에 의한 5% 저항선 도달시 2. BinaryWave Seven 시스템식 그럼..수고하세요..
프로필 이미지
danykim
2014-06-16
183
글번호 75861
시스템
답변완료

문의드립니다.!!!

수고하십니다.! 6101 전략실행차트에서 300틱차트 지수이동평균을 사용하고 있습니다. 지수이평 60선과 현재봉의 종가가 선물 '1point 이상' 이격이 생길때를 검색하고 싶습니다. 수식을 어떻게 작성해야 하는지요? 부탁드립니다. 감사합니다.!
프로필 이미지
해암
2014-06-16
145
글번호 75860
검색
답변완료

알람설정 부탁드립니다

감사합니다 주문이 없을때도 청산알람소리가 계속 나옵니다 1, 아래 시스템 청산 수식에서 반대주문이 있을때만 청산알람소리가 나게 부탁드립니다 주문 알람소리도 매수 = v1 > 0 매도 = v1 < 0 때만 나타나게 부탁드립니다 2, 야간장에서 야간장 시작첫번째봉부터 호가잔량 누적식 부탁드립니다 Input : Period(20); var1 = ((Bids)-(Bids[1]) - (Asks)-(Asks[1])); if date != date[1] Then var2 = 0; if dayindex >= 0 and dayindex <= Period Then var2 = var2 + var1 ; if dayindex >= Period Then var2 = accumN(var1 ,Period); 시스템파일 첨부했습니다 좋은하루 되세요~ Input : vol(1000); Input : vol2(3000); var : V1(0), V2(0), V3(0), V4(0), V5(0), V6(0), V7(0), V8(0), V9(0), V10(0); V1 = Upvol - DownVol; V2 = V1 + V1[2]; V3 = V1 + V1[2] + V1[2] + V1[3]; V4 = V1 + V1[2] + V1[2] + V1[3] + V1[4]; V5 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5]; V6 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5] + V1[6]; V7 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5] + V1[6] + V1[7]; V8 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5] + V1[6] + V1[7] + V1[8]; V9 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5] + V1[6] + V1[7] + V1[8] + V1[9]; V10 = V1 + V1[2] + V1[2] + V1[3] + V1[4] + V1[5] + V1[6] + V1[7] + V1[8] + V1[9] + V1[10]; /////////////////////////////////////////////////////////////////////////////////////////////////////////// //value1----------------------------------------------------------------------------------------------------------- if V1 >= vol Or V2 >= vol Or V3 >= vol Or V4 >= vol Or V5 >= vol Or V6 >= vol Or V7 >= vol Or V8 >= vol Or V9 >= vol Or V10 >= vol Then{ value1 = 1; } //파동선1----------------------------------------------------------------------------------------------------------- if V1 <= -vol Or V2 <= -vol Or V3 <= -vol Or V4 <= -vol Or V5 <= -vol Or V6 <= -vol Or V7 <= -vol Or V8 <= -vol Or V9 <= -vol Or V10 <= -vol Then{ value1 = -1; } /////////////////////////////////////////////////////////////////////////////////////////////////////////// //value1----------------------------------------------------------------------------------------------------------- if V1 >= vol2 Or V2 >= vol2 Or V3 >= vol2 Or V4 >= vol2 Or V5 >= vol2 Or V6 >= vol2 Or V7 >= vol2 Or V8 >= vol2 Or V9 >= vol2 Or V10 >= vol2 Then{ value2 = 1; } //파동선1----------------------------------------------------------------------------------------------------------- if V1 <= -vol2 Or V2 <= -vol2 Or V3 <= -vol2 Or V4 <= -vol2 Or V5 <= -vol2 Or V6 <= -vol2 Or V7 <= -vol2 Or V8 <= -vol2 Or V9 <= -vol2 Or V10 <= -vol2 Then{ value2 = -1; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 매수0 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 0 && !(V1 > 100) Then{ Buy("0", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도0 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < 0 && !(V1 < -100) Then{ Sell("-0-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수1 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 100 && !(V1 > 200) Then{ Buy("1", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도1 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -100 && !(V1 < -200) Then{ Sell("-1-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수2 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 200 && !(V1 > 300) Then{ Buy("2", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도2 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -200 && !(V1 < -300) Then{ Sell("-2-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수3 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 300 && !(V1 > 400) Then{ Buy("3", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도3 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -300 && !(V1 < -400) Then{ Sell("-3-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수4 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 400 && !(V1 > 500) Then{ Buy("4", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도4 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -400 && !(V1 < -500) Then{ Sell("-4-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수5 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 500 && !(V1 > 600) Then{ Buy("5", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도5 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -500 && !(V1 < -600) Then{ Sell("-5-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수6 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 600 && !(V1 > 700) Then{ Buy("6", OnClose, DEF); PlaySound("C:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도6 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -600 && !(V1 < -700) Then{ Sell("-6-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수7 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 700 && !(V1 > 800) Then{ Buy("7", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도7 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -700 && !(V1 < -800) Then{ Sell("-7-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수8 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 800 && !(V1 > 900) Then{ Buy("8", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도8 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -800 && !(V1 < -900) Then{ Sell("-8-", OnClose, DEF); PlaySound("C:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수9 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 900 && !(V1 > 1000) Then{ Buy("9", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도9 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -900 && !(V1 < -1000) Then{ Sell("-9-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } // 매수10 /////////////////////////////////////////////////////////////////// if value2 == 1 &&value1 == 1 && !(value1[1] == 1) && V1 > 1000 // && !(V1 > 1100) Then{ Buy("10", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매수를고려하세요.wav"); } // 매도9 ////////////////////////////////////////////////////////////////////////////////// if value2 == -1 &&value1 == -1 && !(value1[1] == -1) && V1 < -1000 // && !(V1 < -1100) Then{ Sell("-10-", OnClose, DEF); PlaySound("D:₩예스트레이더₩data₩Sound₩매도를고려하세요.wav"); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //매수청산0 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < 0 &&!(V1 < -100) Then{ ExitLong("-"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산0 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 0 &&!(V1 > 100) Then{ ExitShort("+"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산100 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -100 &&!(V1 < -200) Then{ ExitLong("-1"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산100 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 100 &&!(V1 > 200) Then{ ExitShort("+1"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산200 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -200 &&!(V1 < -300) Then{ ExitLong("-2"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산200 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 200 &&!(V1 > 300) Then{ ExitShort("+2"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산300 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -300 &&!(V1 < -400) Then{ ExitLong("-3"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산300 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 300 &&!(V1 > 400) Then{ ExitShort("+3"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산400 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -400 &&!(V1 < -500) Then{ ExitLong("-4"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산400 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 400 &&!(V1 > 500) Then{ ExitShort("+4"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산500 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -500 &&!(V1 < -600) Then{ ExitLong("-5"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산500 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 500 &&!(V1 > 600) Then{ ExitShort("+5"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산600 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -600 &&!(V1 < -700) Then{ ExitLong("-6"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산600 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 600 &&!(V1 > 700) Then{ ExitShort("+6"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산700 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -700 &&!(V1 < -800) Then{ ExitLong("-7"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산700 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 700 &&!(V1 > 800) Then{ ExitShort("+7"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산800 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -800 &&!(V1 < -900) Then{ ExitLong("-8"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산800 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 800 &&!(V1 > 900) Then{ ExitShort("+8"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산900 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -900 &&!(V1 < -1000) Then{ ExitLong("-9"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산900 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 900 &&!(V1 > 1000) Then{ ExitShort("+9"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); } //////////////////////////////////////////////////////////////////////////////////////// //매수청산1000 ----------------------------------------------------------------------------------------- if (value1 == -1 ) && V1 < -1000 &&!(V1 < -1100) Then{ ExitLong("-10"); PlaySound("D:₩예스트레이더₩data₩Sound₩매도신호.wav"); } //매도청산1000 ------------------------------------------------------------------------------------------ if (value1 == 1 ) && V1 > 1000 &&!(V1 > 1100) Then{ ExitShort("+10"); PlaySound("D:₩예스트레이더₩data₩Sound₩매수신호.wav"); }
프로필 이미지
감사1
2014-06-16
189
글번호 75852
시스템

감사1 님에 의해서 삭제되었습니다.

프로필 이미지
감사1
2014-06-16
0
글번호 75851
시스템

태양같이 님에 의해서 삭제되었습니다.

프로필 이미지
태양같이
2014-06-16
26
글번호 75850
지표

오늘도수익 님에 의해서 삭제되었습니다.

프로필 이미지
오늘도수익
2014-06-16
15
글번호 75849
지표
답변완료

수식문의

Input : smooth(3), smooth2(5), smooth3(5) ; Var: 상단(0),하단(0); 상단 = 하단 = var1 = lowest(상단,5); var2 = highest(var1,15); var3 = ema(ema(ema((var2), smooth),smooth2),smooth3); var4 = lowest(하단,5); var5 = lowest(var4,15); var6 = ema(ema(ema((var5), smooth),smooth2),smooth3); var7 =(var3+var3+var6+var6)/4; plot1(var7); 수고많으십니다 위의 수식을 250Tick챠트에사용하고있는데 100tick 챠트에사용할수있도록 부탁드림니다 항상신속하고 성실하게 답변줘서 고맙슴니다 감사합니다 ^^
프로필 이미지
kcw1954
2014-06-16
155
글번호 75847
지표
답변완료

차팅할 봉의 갯수 자동 지정

항상 신속하고 상세하게 답변 주셔서 많은 도움을 받고 있습니다. 감사합니다. 분봉이나 틱봉으로 수급선을 적용할 때 당일 개장 후 끝날 때까지 수급선이 시가부터 종가까지 전체가 나타나게할 방법이 있는지요? [분,틱봉 당일분만 적용]에 체크하면 당일분만 나오는것은 가능한데 차트에 출력할 봉의 갯수를 계속 조정해 주어야 하는 불편이 있습니다. 다른 회사 차트를 비교해서 죄송하오나 첨부한 이미지 처럼 개장 후 봉의 갯수가 늘어나는 만큼 화면에 출력할 봉의 갯수를 자동으로 증가시켜주는 방안이 있는지 도움을 요청합니다.
프로필 이미지
스퍼트시커
2014-06-16
225
글번호 75846
지표