커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

1. 기타 이거 사용자 함수로 만들어 주실 수 있나요? 변동계수 https://terms.naver.com/entry.nhn?docId=293901&cid=60262&categoryId=60262
프로필 이미지
잡다백수
2019-01-31
215
글번호 125797
시스템
답변완료

항생진폭

안녕하세요? 아래의 수식은 항생진폭을 계산하는 수식입니다, 질문 : 항생진폭(당일고가-당일저가)을 계산하는 함수를 추가하여 주시기 바랍니다, 즉 한국시간 10:15분부터 17:30까지 계산된 진폭이 출력되도록 추가 부탁드립니다. var : TX(0), TX1(0); Var80 = dayhigh()-daylow(); Text_Delete(tx); tx = Text_New(sdate,stime,C-PriceScale*240,NumToStr(var80,2)); Text_Delete(tx1); tx1 = Text_New(sdate,stime,C+PriceScale*240,NumToStr(var80,2));
프로필 이미지
추세승리
2019-01-31
171
글번호 125795
지표

번성 님에 의해서 삭제되었습니다.

프로필 이미지
번성
2019-02-01
18
글번호 125786
시스템
답변완료

문의 드립니다.

안녕하세요 아래 파동식에서 파동의 고점과 저점이 확정이 되고 정해진후 캔들의 종가가 파동의 고점을 상향 돌파 또는 파동의 저점을 하향 돌파 할 때 소리가 나게 부탁드립니다. 감사합니다. input:length(6); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(0==1,C,H); LL = IFF(0==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 { T = 1; 최종고가 = 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]); TL_SetSize(TL1,1); TL_SetColor(TL1,white); } 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 처리구분 == "저점처리" Then { T = -1; 최종저가 = 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]); TL_SetSize(TL1,1); TL_SetColor(TL1,white); } 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]); } 최종꼭지점 = "저점"; }
프로필 이미지
동해바다01
2019-01-31
197
글번호 125785
지표

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

프로필 이미지
회원
2019-01-31
27
글번호 125784
시스템
답변완료

지표를 시스템으로 변경 문의 입니다.

안녕하세요 아래와 지표 2개를 사용하여 시스템을 만들려고 하는데 지표 1,2 가 동시에 상승할때 매수 지표 1,2 가 동시에 하락할때 매도로 구현이 가능한가요 ? 지표1 Input : short(6), longPeriod(26); Var : value(0); value = MACD(short, longPeriod); if value > value[1] Then plot1(value,"macd",YELLOW); Else plot1(value,"macd",CYAN); 지표2 Input : shortPeriod(12), longPeriod(26), Period(9); Var : value(0) , macdosc(0), MACD전저점(0), 가격전저점(0), 예비저(0), 예비봉저(999), macdplot(0), macd전고점(0), 가격전고점(0), 예비고(0), 예비봉고(0); value = MACD(shortPeriod, longPeriod); macdosc = value-ema(value,Period); if macdosc > 0 then { plot3(macdosc * 2, "MACDOscillator", RED); if(macdosc[1] <= 0) then { // 이전 봉 까지는 음수인 경우 전저점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전저점 <= -0.01 ) and (macd전저점 <= 예비저) and (가격전저점 >= 예비봉저) then { macdPlot = macd전저점 * -1; MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f 다이버젼스 발견", macd전저점, 가격전저점, 예비저, 예비봉저); } else macdPlot = 0; if(예비저 <= -0.01) then { macd전저점 = 예비저; 가격전저점 = 예비봉저; } } else { macdPlot = 0; } 예비저 = 0; 예비봉저 = 999; if(예비고 < macdosc) then { 예비고 = macdosc; } 예비봉고 = max(예비봉고, c); } else { Plot3(macdosc * 2, "MACDOscillator", BLUE); macdPlot = 0; if(예비저 > macdosc) then { 예비저 = macdosc; } if(macdosc[1] >= 0) then { // 이전 봉 까지는 양수인 경우 전고점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전고점 >= 0.01 ) and (macd전고점 > 예비고) and (가격전고점 <= 예비봉고) then { macdPlot = macd전고점 * -1; MessageLog("macd전고점 %.0f 가격전고점%.0f 예비고%.0f 예비봉고%.0f 다이버젼스 발견", macd전고점, 가격전고점, 예비고, 예비봉고); } else macdPlot = 0; if(예비고 >= 0.01) then { macd전고점 = 예비고; 가격전고점 = 예비봉고; } } else { macdPlot = 0; } 예비고 = 0; 예비봉고 = 0; 예비봉저 = min(예비봉저, c); } PlotBaseLine1(0, "기준선1"); plot1(macdPlot); //MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f", macd전저점, 가격전저점, 예비저, 예비봉저);
프로필 이미지
세계일주
2019-01-31
213
글번호 125783
시스템
답변완료

봉완성전

봉완성전에 다른값을 그리다가 봉완성이 되면 또다른값으로 그리고 싶은데 가능한가요 ?
프로필 이미지
크리스쿠
2019-01-31
178
글번호 125782
지표
답변완료

처음으로 수식작성 문의드립니다.

1월에 하이투자 교대에서 교육받고 열심히 예스랭귀지 셀프 스터디하고 있습니다...^^ 현재까지의 지식으로 도저히 방법이 나오지 않아 문의드립니다. ETF 부터 시작하기 위해 무조건 매수-매도 시스템을 구상중입니다. 생각하는 조건 중 매수 조건은 가격을 가지고 어찌어찌 만들었습니다만....매도 조건을 수식화하기 어렵습니다. 매수한 이후.... 1. 연속하여 나오는 첫 번째 음봉의 종가에서 매도하기 ex) 양봉(1, 매수) - 양봉(2) - 양봉(3) - 음봉(4, 매도) 2. 연속하여 나오는 두 번째 음봉의 종가에서 매도하기 ex) 양봉(1, 매수) - 양봉(2) - 음봉(3) - 양봉(4) - 음봉(5, 매도) 3. 연속하여 나오는 세 번째 음봉의 종가에서 매도하기 ex) 양봉(1, 매수) - 양봉(2) - 음봉(3) - 양봉(4) - 음봉(5) - 음봉(6, 매도) 시가=종가인 도지봉은 양봉으로 간주하시면 됩니다. 이런 식으로 음봉의 종가에서 매도하는 수식 작성 문의드립니다...^^ 미리 감사드립니다.
프로필 이미지
돼지엄마
2019-01-30
238
글번호 125781
지표
답변완료

수식문의

어제 질문드린 내용입니다 수식의 해석과 시스템식으로의 변형 시스템식은 조건이 있어야 한다고 하셔서 재자 질문드립니다 다 아시겠지만 첨부파일을 보시면 수치와 꺽인선이 보이실겁니다 그냥 단순하게 저 꺽이는 선과 숫자가 나오는 선에서 매수 매도 입니다 첫 숫자가 출현하고도 상하로 더 운동을 하는것을 볼수잇는데 첫 숫자 출현후 10틱 손절과 첫 숫자 표현자리가 표현되었으면 좋겠습니다 첫 숫자 출현후 출현 가격에 매수도가 사람은 불가능해도 시스템적으로 가능할거 같은데 .......... 또한 10틱 손절후 재차 진입이 가능한지 궁금합니다 화면상에는 보이지 않지만 꺽인선보다 숫자가 가 우선입니다 숫자 표현시 매수도 손익절입니다 지속적으로 스위칭이 일어나게 했으면 합니다 손절틱은변형이 가능하다면 같이 부탁드려봅니다 감사합니다 input : af(0.02), maxAF(0.2); input : 텍스트출력(1); var : T(0),cnt(0),count(0); var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),day1(0),day0(0); var : TL1(0),TL2(0),tx1(0),tx2(0),tx11(0),tx22(0); Array : HD[20](0),HT[20](0),HH[20](0),LD[20](0),LT[20](0),LL[20](0); var1 = CSar(af,maxAF); if bdate != bdate[1] Then { day0 = sdate; day1 = day0[1]; } if crossup(c,var1) Then { T = 1; HH[0] = H; HD[0] = sdate; HT[0] = stime; for cnt = 1 to 19 { HD[cnt] = HD[cnt-1][1]; HT[cnt] = HT[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; } if LL[0] > 0 Then { if 텍스트출력 == 1 then { Tx11 = Text_New(HD[1],HT[1],HH[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(HH[1],2)); Text_SetStyle(tx11,2,1); Text_SetColor(tx11,BLACK); Text_Delete(tx1); Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2)); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,GRAY); Condition1 = false; for cnt = 1 to 19 { if Condition1 == false and abs(LL[0]-LL[cnt]) <= PriceScale*1 and LD[cnt] >= day1 Then { Condition1 = true; TL1 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]); } } } } } if CrossDown(c,var1) Then { T = -1; LL[0] = L; LD[0] = sdate; LT[0] = stime; for cnt = 1 to 19 { LD[cnt] = LD[cnt-1][1]; LT[cnt] = LT[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } if HH[0] > 0 Then { if 텍스트출력 == 1 then { Tx22 = Text_New(LD[1],LT[1],LL[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(LL[1],2)); Text_SetStyle(tx22,2,0); Text_SetColor(tx22,RED); Text_Delete(tx2); Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2)); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,MAGENTA); Condition2 = false; for cnt = 1 to 19 { if Condition2 == false and abs(HH[0]-HH[cnt]) <= PriceScale*1 and HD[cnt] >= day1 Then { Condition2 = true; TL2 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]); } } } } } if T == 1 then { if H > HH[0] Then { HH[0] = H; HD[0] = sdate; HT[0] = stime; if 텍스트출력 == 1 then { Text_Delete(tx1); Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2)); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,BLACK); } } } if T == -1 then { if L < LL[0] Then { LL[0] = L; LD[0] = sdate; LT[0] = stime; if 텍스트출력 == 1 then { Text_Delete(tx2); Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2)); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,RED); } } }
프로필 이미지
이립
2019-01-31
196
글번호 125780
시스템