커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

항상 감사드립니다. 상기식에서 매수만 있는데... 매도부분 추가 부탁드립니다.(매도 기준은 매수의 반대로 입니다.) 그리고 정상적으로 작동되는데 문제가 없는지도 확인부탁드릴께요. Input:n(5),r(1.025),지표사용(1); Var:j(0),k(0),q(0),기간최저(0),고점상태(0),저점상태(0),고점기울기(0),고점절편(0), 저점기울기(0),저점절편(0),고점Bar(0),저점Bar(0),패턴번호(0),기울기(0), 저항선(0),지지선(0),상승(100),하락(-100),평행(1), 평균기울기(0), 평균대비하락각(0),평균대비상승각(0); Var:macdVal(0),macdSig(0),stoK(0),stoD(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0), 고LRS[20](0),저LRS[20](0),sumXY[20](0),sumX[20](0),sumY[20](0),sumX²[20](0), sumY²[20](0),고점상관계수[20](0),저점상관계수[20](0); #---------------------------------------------------------# # index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가 #---------------------------------------------------------# for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Idx[j] = Index - 고Bar[j]; 저Idx[j] = Index - 저Bar[j]; } 고점Bar = 고점Bar + 1; 저점Bar = 저점Bar + 1; #=========================================================# # 파동선 계산 #=========================================================# # 전고점(Peak) 계산 #---------------------------------------------------------# if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 고Bar[1] > 저Bar[1] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; 고LRS[j+1] = 고LRS[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then { 고[1] = H[n]; 고Bar[1] = n; 고Idx[1] = Index - 고Bar[1]; sumXY[1] = 고Idx[3]*고[3] + 고Idx[2]*고[2] + 고Idx[1]*고[1]; sumX[1] = 고Idx[3] + 고Idx[2] + 고Idx[1]; sumY[1] = 고[3] + 고[2] + 고[1]; sumX²[1] = 고Idx[3]^2 + 고Idx[2]^2 + 고Idx[1]^2; 고LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2); } } #---------------------------------------------------------# # 전저점(Trough) 계산 #---------------------------------------------------------# if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 저Bar[1] > 고Bar[1] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; 저Idx[j+1] = 저Idx[j]; 저LRS[j+1] = 저LRS[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1] = L[n]; 저Bar[1] = n; 저Idx[1] = Index - 저Bar[1]; sumXY[1] = 저Idx[3]*저[3] + 저Idx[2]*저[2] + 저Idx[1]*저[1]; sumX[1] = 저Idx[3] + 저Idx[2] + 저Idx[1]; sumY[1] = 저[3] + 저[2] + 저[1]; sumX²[1] = 저Idx[3]^2 + 저Idx[2]^2 + 저Idx[1]^2; 저LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2); } } #----------------------------------------------------------------------------# # 선형회귀방정식 # #----------------------------------------------------------------------------# # nΣxy - (Σx)(Σy) # # 기울기 a = --------------------- # # nΣx²- (Σx)² # # # # = (n*sum(xy) - sum(x) * sum(y)) / (n*sum(x^2)-sum(x)^2) # # # # (Σy)(Σx²)-(Σx)(Σxy) # # 절편 b = --------------------------- # # nΣx²- (Σx)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #----------------------------------------------------------------------------# # 상관도 공식 # #----------------------------------------------------------------------------# # n(Σxy) - (Σx)(Σy) # r = ------------------------------------- # # √[nΣx²- (Σx)²][nΣy²- (Σy)²] # # # # =(n*sum(xy)-sum(x)*sum(y))/sqrt((n*sum(x^2)-sum(x)^2)(n*sum(y^2)-sum(y)^2))# #----------------------------------------------------------------------------# #=========================================================# # 파동분석 #=========================================================# 기간최저 = Lowest(L,n*20); if 저[1][1] != 저[1] or 저Bar[1][1] + 1 != 저Bar[1] then { //저점 변동이 있을 경우 #---------------------------------------------------------# # 고점 추세선 분석 #---------------------------------------------------------# k = 0; for j = 1 to 19 { sumXY[j] = sumXY[j-1] + 고Idx[j]*고[j]; sumX[j] = sumX[j-1] + 고Idx[j]; sumY[j] = sumY[j-1] + 고[j]; sumX²[j] = sumX²[j-1] + 고Idx[j]^2; sumY²[j] = sumY²[j-1] + 고[j]^2; #---------------------------------------------------------# # 상관도가 가장 높은 선형회귀선 검색 #---------------------------------------------------------# 고점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/ Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2))); if j >= 3 and Abs(고점상관계수[k]) < Abs(고점상관계수[j]) then k = j; } 고점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2); #---------------------------------------------------------# # 가장 외곽을 지나는 추세선 검색 #---------------------------------------------------------# q = 1; for j = 2 to k { if 고점기울기*고Bar[q]+고[q] < 고점기울기*고Bar[j]+고[j] then q = j; } 고점절편 = 고[q]; 고점Bar = 고Bar[q]; #---------------------------------------------------------# # 기울기 분석 #---------------------------------------------------------# 기울기 = 고점기울기/ma(C,n*4)*10000; if 기울기 > 2 then 고점상태 = 상승; else if 기울기 < -2 then 고점상태 = 하락; else 고점상태 = 평행; #---------------------------------------------------------# # 저점 추세선 분석 #---------------------------------------------------------# k = 0; for j = 1 to 19 { sumXY[j] = sumXY[j-1] + 저Idx[j]*저[j]; sumX[j] = sumX[j-1] + 저Idx[j]; sumY[j] = sumY[j-1] + 저[j]; sumX²[j] = sumX²[j-1] + 저Idx[j]^2; sumY²[j] = sumY²[j-1] + 저[j]^2; #---------------------------------------------------------# # 상관도가 가장 높은 선형회귀선 검색 #---------------------------------------------------------# 저점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/ Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2))); if j >= 3 and Abs(저점상관계수[k]) < Abs(저점상관계수[j]) then k = j; } 저점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2); #---------------------------------------------------------# # 가장 외곽을 지나는 추세선 검색 #---------------------------------------------------------# q = 1; for j = 2 to k { if 저점기울기*저Bar[q]+저[q] > 저점기울기*저Bar[j]+저[j] then q = j; } 저점절편 = 저[q]; 저점Bar = 저Bar[q]; #---------------------------------------------------------# # 기울기 분석 #---------------------------------------------------------# 기울기 = 저점기울기/ma(C,n*4)*10000; if 기울기 > 2 then 저점상태 = 상승; else if 기울기 < -2 then 저점상태 = 하락; else 저점상태 = 평행; #---------------------------------------------------------# # 고점과 저점 추세를 비교하여 패턴판별 #---------------------------------------------------------# 패턴번호 = 0; if 고점상태 == 평행 and 저점상태 == 평행 then 패턴번호 = 1; if 고점상태 == 평행 and 저점상태 == 상승 then 패턴번호 = 2; if 고점상태 == 하락 and 저점상태 == 평행 then 패턴번호 = 3; if 고점상태 == 하락 and 저점상태 == 상승 then 패턴번호 = 4; if 고점상태 == 하락 and 저점상태 == 하락 and 고점기울기 < 저점기울기 then 패턴번호 = 5; #---------------------------------------------------------# #원형바닥,삼봉바닥 #---------------------------------------------------------# if 패턴번호 == 0 and 고LRS[4] < 고LRS[3] and 고LRS[3] < 고LRS[2] and 고LRS[2] < 고LRS[1] and 고LRS[4] < 0 and 고LRS[1] > 0 and 저LRS[4] < 저LRS[3] and 저LRS[3] < 저LRS[2] and 저LRS[2] < 저LRS[1] and 저LRS[4] < 0 and 저LRS[1] > 0 and 기간최저== min(저[6],저[5],저[4],저[3]) and max(고[9],고[8],고[7],고[6],고[5]) > 고[2] then 패턴번호 = 6; #---------------------------------------------------------# # 바닥 V자 모형 #---------------------------------------------------------# if 패턴번호 == 0 then { for j = 1 to 3 { 기울기 = (고[j]-저[j])/abs(고Bar[j]-저Bar[j])+ (고[j]-저[j+1])/abs(고Bar[j]-저Bar[j+1]); } 기울기 = 기울기/6; 평균기울기 = ema(기울기,n*10); 평균대비하락각 = Atan((고[1]-저[1])/abs(고Bar[1]-저Bar[1])/평균기울기)*180/pie(); 평균대비상승각 = Atan((H-저[1])/저Bar[1]/평균기울기)*180/pie(); if 고bar[1]-저bar[1]>= n*3 and //장기하락, V자형 나오기 쉬움 평균대비하락각 >= 60 and 평균대비상승각 >= 60 then //각도가 60도이상 패턴번호 = 7; } if 패턴번호 > 5 then { 고점기울기 = 0; 고점절편 = 고[1]; 고점Bar = 고Bar[1]; } } #---------------------------------------------------------# # 저항선, 지지선 계산 #---------------------------------------------------------# 저항선 = 고점기울기 * 고점Bar + 고점절편; 지지선 = 저점기울기 * 저점Bar + 저점절편; #=========================================================# # 시스템식 #=========================================================# macdVal = MACD(12,26); macdSig = ema(macdVal,9); stoK = StochasticsK(5,3); stoD = StochasticsD(5,3,3); if 패턴번호 > 0 and (저Bar[1]==n or C[1] <= 저항선[1]) and C > 저항선 and iff(지표사용==1,(macdVal > macdSig and macdVal > 0) or (stoK > stoD and stoK > 50),1) then { if 패턴번호 == 1 then Buy("직사각"); if 패턴번호 == 2 then Buy("상향직각삼각"); if 패턴번호 == 3 then Buy("하향직각삼각"); if 패턴번호 == 4 then Buy("대칭삼각"); if 패턴번호 == 5 then Buy("하락쐐기"); if 패턴번호 == 6 then Buy("원형바닥"); if 패턴번호 == 7 then Buy("바닥V자"); } if 지표사용 == 1 and 패턴번호 > 0 and 저항선 > 0 and C > 저항선 then { if CrossUp(macdVal,macdSig) and macdVal > 0 then Buy("MACD골드크로스"); if CrossUp(stoK,stoD) and stoK > 50 and (C > ma(c,5) or C > ma(C,20)) then Buy("스토K골드크로스"); } if 지표사용 == 1 then { if CrossDown(macdVal,macdSig) and macdVal < 0 then ExitLong("macd데드크로스"); if CrossDown(stoK,stoD) and stoK < 50 and (C < ma(c,5) or C < ma(C,20)) then ExitLong("스토K데드크로스"); } if CrossDown(C,저[1]) then ExitLong("추세종료");
프로필 이미지
성공시대1
2014-01-16
273
글번호 71469
시스템
답변완료

순매수잔량이평선

순매수잔량(총매수잔량 - 총매도잔량)의 단기 및 장기 이평선을 구하고지합니다.
프로필 이미지
너무조아
2014-01-16
177
글번호 71468
지표
답변완료

문의드립니다.

34361 번에서 도움주신 로직가지고 시스템을 돌려보았는데, #추가진입 if MarketPosition==1 and MaxEntries==1 Then buy("매수추가진입",atlimit,Entryprice-하락포인트,추가진입수량); if MarketPosition==-1 and MaxEntries==1 Then sell("매도추가진입",atlimit,Entryprice+하락포인트,추가진입수량); 여기에 문제가 있는 것 같습니다. 매수 포지션을 익절한 후 매도에 진입을 했으나, 직전에 매수 포지션에 진입한 포인트보다 지정한 하락포인트 만큼 하락했을 시 매도가 청산되고 매수추가진입이 되네요. 혹시 MarketPosition을 지정하는 것 외에 매수 추가진입은 매수 포지션을 보유하고 있을 때만 가능하도록, 매도 추가진입은 매도 포지션을 보유하고 있을 때만 가능하도록 제한 걸 수 없을까요? 아니면 이 오류를 어떻게 수정해야할까요? 항상 수고많으십니다. 감사합니다.
프로필 이미지
마코
2014-01-16
130
글번호 71467
시스템
답변완료

문의 드립니다

안녕하세요. 아래내용 문의 드립니다. 1분봉에서 Input : af(0.02), maxAF(0.2); var1 = SAR(af,maxAF); if var1 > C Then Plot1(var1, "SAR",BLUE); Else Plot1(var1, "SAR",RED); 라는 지표식이 있습니다. 매 분봉마다. 매도(파랑색) 매수(빨간색) 으로 표시가 되잖아요 이 식에서 전전분봉의 신호가 파란색이면 매수진입하지 않음 으로 시스템 식을 만들고 싶습니다. 살펴봐 주세요! 감사합니다.
프로필 이미지
강동원
2014-01-16
126
글번호 71466
시스템

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

프로필 이미지
회원
2014-01-16
14
글번호 71465
지표
답변완료

행복; 수식 작성 바랍니다

한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 질문 드립니다 시뮬레이션 차트를 띄우면서 주기를 초 또는 틱으로 선택하면 " 정의되지 않은 오류입니다(2403) "라는 메시지가 뜨면서 차트가 뜨지 않습니다 설정이 잘못되어서 그런가요? 어떻게 해야 하는지요? 수고하십시요^^
프로필 이미지
행복한가방
2014-01-15
135
글번호 71464
시스템
답변완료

지표식 질문입니다

30분차트에서 하루하루의 000000-003000 고저차 누적합 003000-010000 고저차 누적합 013000-020000 고저차 누적합 .... 233000-240000 고저차 누적합 지표를 만들고 싶습니다
프로필 이미지
파인애플
2014-01-15
131
글번호 71463
지표
답변완료

문의드립니다.

20기간 볼린저밴드 상단밴드가 40기간 볼린저밴드 상단밴드보다 상단에 있고 현재주가가 20기간 볼린저밴드 상단밴드보다 상단에 있는 종목 검색식 부탁드립니다. 수고하세요.
프로필 이미지
감동예스
2014-01-15
142
글번호 71462
검색

늘푸른은하수 님에 의해서 삭제되었습니다.

프로필 이미지
늘푸른은하수
2014-01-15
0
글번호 71461
지표