커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

Input:length(5); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(0); Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0); Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2)); PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL_SetColor(TL1,MAGENTA); TL_SetSize(TL1,2); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2)); PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL_SetColor(TL1,green); TL_SetSize(TL1,2); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } mav = ma(C,20); 고점과저점을텍스트수치가 아닌 일자수평선으로 나오게 할수있는지요?
프로필 이미지
장군
2016-11-24
110
글번호 104326
지표
답변완료

문의드립니다

1. input : P(18),간격(3),굵기(2); array : mav[12](0); mav[1] = wma(c,P+간격*1); mav[2] = WMA(c,P+간격*2); mav[3] = WMA(c,P+간격*3); mav[4] = WMA(c,P+간격*4); mav[5] = WMA(c,P+간격*5); mav[6] = WMA(c,P+간격*6); mav[7] = WMA(c,P+간격*7); mav[8] = WMA(c,P+간격*8); mav[9] = WMA(c,P+간격*9); mav[10] = WMA(c,P+간격*10); mav[11] = WMA(c,P+간격*11); mav[12] = WMA(c,P+간격*12); plot1(mav[1],"1",iff(mav[1] > mav[1][1],RGB(225,228,0),RGB(0,0,0)),def,굵기); plot2(mav[2],"2",iff(mav[2] > mav[2][1],RGB(255,100,100),RGB(100,100,250))); plot3(mav[3],"3",iff(mav[3] > mav[3][1],RGB(255,100,100),RGB(100,100,250))); plot4(mav[4],"4",iff(mav[4] > mav[4][1],RGB(255,100,100),RGB(100,100,250))); plot5(mav[5],"5",iff(mav[5] > mav[5][1],RGB(255,100,100),RGB(100,100,250))); plot6(mav[6],"6",iff(mav[6] > mav[6][1],RGB(255,100,100),RGB(100,100,250))); plot7(mav[7],"7",iff(mav[7] > mav[7][1],RGB(255,100,100),RGB(100,100,250))); plot8(mav[8],"8",iff(mav[8] > mav[8][1],RGB(255,100,100),RGB(100,100,250))); plot9(mav[9],"9",iff(mav[9] > mav[9][1],RGB(255,100,100),RGB(100,100,250))); plot10(mav[10],"10",iff(mav[10] > mav[10][1],RGB(255,100,100),RGB(100,100,250))); plot11(mav[11],"10",iff(mav[11] > mav[11][1],RGB(255,100,100),RGB(100,100,250))); plot12(mav[12],"10",iff(mav[12] > mav[12][1],RGB(255,100,100),RGB(100,100,250))); 2. input : P1(5),P2(20),P3(60); var1 = ma(C,P1); var2 = ma(C,P2); var3 = ma(C,P3); Condition1 = var1 > var2 and var2 > var3; Condition2 = var1 < var2 and var2 < var3; if Condition1 == true Then plot1(H,"검색",RED); if Condition2 == true Then plot1(L,"검색",blue); ................................................................. 1번과 2번 지표를 결합해서 시스템식을 만들고 싶습니다. 매수조건 : 1번지표가 빨간색인데 2번지표가 파란색점에서 나올때 매수 매도조건 : 1번지표가 파란색인데 2번지표가 빨간색점에서 나올때 매도 변수는 조정할 수 있게 부탁드립니다 감사합니다.
프로필 이미지
회원
2016-11-24
103
글번호 104325
시스템
답변완료

수식 부탁드립니다

안녕하세요 예스스탁입니다. 전일 마지막봉 거래량이 기준이면 if date != date[1] Then var1 = V; 를 if date != date[1] Then var1 = V[1]; 와 같이 변경만 하시면 됩니다. if date != date[1] Then는 당일 첫봉이라는 표현입니다. 당일첫봉에서 1봉전 거래량이면 전일 마지막봉 거래량입니다. 수정한 식입니다. if date != date[1] Then var1 = V[1]; if var1 > 0 and V > var1 Then buy(); 항상 감사드립니다 여기서 종가 봉을 기준으로 a 하면 a 을 기준으로 다음날 시스널은 첫봉을 빼고 그 다음봉 부터 신호를 볼수 있게 가능 할까요
프로필 이미지
미스포터
2016-11-24
101
글번호 104323
시스템

렉쳐 님에 의해서 삭제되었습니다.

프로필 이미지
렉쳐
2016-11-24
10
글번호 104322
지표
답변완료

수식 문의 드립니다

두번째 진입후 두시 청산이되는데요 세번째 신호가나오면 청산만 하고 매매종료하려 합니다 감사합니다 input : 시작시간(090300),당일청산시간(140000); var : idx(0),entry(0),tt(0),t1(0),count(0); var1 = ema(c,5); var2 = ema(c,25); # 당일진입횟수계산 count = 0 ; for value1 = 0 to 10 { if entrydate(value1) == date then count = count + 1 ; } if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { idx = 0; } if stime >= 시작시간 and count < 2 Then{ idx = idx+1; if idx == 1 && var1 > var2 Then buy ("a"); Else if CrossUp(var1,var2) then buy("b"); if idx == 1 && var1 < var2 Then sell("c"); Else if crossdown(var1,var2) Then sell("d"); } SetStopEndofday(당일청산시간);
프로필 이미지
비상8
2016-11-24
100
글번호 104308
시스템
답변완료

수식부탁드립니다

if date != date[1] Then var1 = V; if var1 > 0 and V > var1 Then buy(); 여기에서 전일에 마지막봉 이 기준이 되고 =a 라고 가정을 하면 다음날 a 봉 보다 거래량이 많은 봉이 나오면 매수
프로필 이미지
미스포터
2016-11-24
102
글번호 104307
시스템
답변완료

시스템 수식 작성을 부탁드립니다.

항상 진입수량은 1을 넘지 않도록 하며 새로운 봉이 시작된후 10초 이후 적용, 현재가가 시가를 돌파하면 (또는 시가에 도달하면) 현재가+10틱에 매수하되 매수 주문후 60초 동안 체결되지 않거나 또는 종가까지 체결되지 않으면 주문 취소되도록 하는 수식 작성을 부탁 드립니다. 감사합니다.
프로필 이미지
미래자유인
2016-11-24
95
글번호 104306
시스템
답변완료

청산 신호 관련 문의

안녕하세요. 시스템 청산신호가 제대로 작동을 안하여 문의 드립니다. 진입 후 종가기준으로 최고가가 진입가격보다 0.5*ATR 이상 상승한 경우, 진입가격에서 본전 청산을 걸어놓고 싶습니다. If MarketPosition == 1 and Highest(C, BarsSinceEntry) >= (ATR(20)*0.5 + EntryPrice) Then ExitLong("saveprofit1", AtStop, EntryPrice); 위 수식으로 작성했을 경우, 신호가 발생하지 않는데, 수식에 어떤 문제가 있는지 알고 싶습니다. 고맙습니다.
프로필 이미지
리버티
2016-11-24
109
글번호 104305
시스템
답변완료

문의드립니다.

1.분봉에서 종가가 상한가면 매수(onclose) 2.분봉에서 상한가 ATSTOP 매수 수식부탁드립니다.
프로필 이미지
7007
2016-11-24
108
글번호 104304
시스템