커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다

1. 진행되고 있는 60분봉의 고점,저점, 중간값에 우측으로 연장된 수평선을 긋고 그 값을 표시하고 싶습니다 부탁드립니다 (현재시간이 10시 16분이라면 9시~10시의 60분 캔들봉의 고가,저가,중간값에 우측으로 연장된 선을 긋고 그 가격을 표시함) 2.아래수식에서 지그재그선이 계속 나오는데요 진행중인 현재시점에서 마지막에 나온 고점과 저점을 이은 선의 중간값에 수평선과 그 값을 표시하고 싶습니다(1번과 동일) 부탁드립니다 Input:length(12),X(1); 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); 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); } if X == 1 Then TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); if H < 고점[2,1] Then TL_SetColor(TL1,red); Else TL_SetColor(TL1,MAGENTA); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2)); Text_SetStyle(Text1, 2, 1); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL_SetExtLeft(TL2,false); TL_SetExtRight(TL2,false); if X == 1 Then TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL2,BLUE); TL_SetExtLeft(TL2,true); TL_SetExtRight(TL2,true); } } } 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); } if X == 1 Then TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL1,blue); if L > 저점[2,1] Then TL_SetColor(TL1,blue); Else TL_SetColor(TL1,cyan); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2)); Text_SetStyle(Text1, 2, 0); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL_SetExtLeft(TL3,false); TL_SetExtRight(TL3,false); if X == 1 Then TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL3,RED); TL_SetExtLeft(TL3,true); TL_SetExtRight(TL3,true); } } } TL_SetSize(TL1,3); TL_SetSize(TL2,2); TL_SetSize(TL3,2);
프로필 이미지
마르뚝
2017-04-07
232
글번호 108548
지표
답변완료

부탁드립니다.

안녕하세요. 초보라서 더 이상 수식을 작성할 수가 없네요. 부탁 좀 드리겠습니다. 일목균형의 선행들과 파라볼릭으로 시스템을 돌릴려고 했는데요. 일단 제가 조합한 수식은 아래와 같습니다. -------------------------------------------- Inputs: shortperiod(10), midperiod(250), longperiod(410),af(0.1), maxAF(0.155); VAR1 = (Highest(High, shortperiod) + Lowest(Low, shortperiod)) / 2; VAR2 = (Highest(High, midperiod) + Lowest(Low, midperiod)) / 2; VAR4 = (VAR1 + VAR2) / 2 ; VAR5 = (Highest(High, longperiod) + Lowest(Low, longperiod)) / 2; VAR6 = SAR(af,maxAF); IF C > VAR6 AND VAR4 > VAR5 Then { Buy(); } IF C < VAR6 Then { SELL(); } ---------------------------------------- 질문1) 거래시간을 조절하고 싶습니다. 오후6시부터 ~ 오후11시까지 거래가 되고 11시가 되면 강제청산이 됐으면 좋겠습니다. 질문2) 첨부사진 처럼 1에서 BUY가 나와서 진입이 된 상태인데 2번구역에서 파라볼릭이 바뀌면서 청산을 시키고 싶습니다. 즉, BUY의 청산과 SELL의 청산을 각각 따로 어떻게 하는지를 모르겟네요..
프로필 이미지
Argo
2017-04-07
210
글번호 108547
시스템
답변완료

예스랭귀지 초보적인 질문입니다..

var : count(0) , idx (1), Entriestoday(0) ; if EntryDate(0) == 0 Then count = 0 ; if EntryDate(0) == sDate Then count = 1 ; While EntryDate(idx) == sDate { count = count + 1 ; idx = idx + 1 ; } Entriestoday = count ; 위의 당일진입횟수 함수를 인터넷에서 찾아서 예스랭귀지에서 검증했을 때 "함수가 값을 리턴하고 있지 않습니다. 함수는 반드시 값을 리턴해야 합니다." 라고 뜨는데 예스랭귀지나 기타 다른 언어도 하나도 모르는 까막눈이라 여기에 질문드립니다.. 어떻게 하면 저 함수에서 저러한 오류가 뜨지 않게 만들수 있나요? 또한 한가지 추가로 더 여쭙고 싶은게 있습니다.. 일반적인 entriestoday 함수 input : ndate(Numeric); var : count (0); count = 0 ; for value1 = 0 to 10 { if EntryDate(value1) == ndate Then count = count + 1 ; } EntriesToday = count; 에서.. ndate 는 새로 만든 변수인가요 아니면 sdate처럼 오늘 날짜를 뜻하는 것인가요? 그리고 input : ndate(Numeric);이라는 변수는 input : ndate(0);과 무슨 차이가 있는지요?
프로필 이미지
정현웅
2017-04-07
215
글번호 108546
사용자 함수
답변완료

문의 드립니다

안녕하세요 아래 수식에서 고점과 저점이 확정되기 전에 첨부한 차트와 같이 지그재그 파동선이 미리 그어지는데 미리 그려지는 순간에 소리가 나게 부탁드립니다. 감사합니다. ==================== Input:length(5); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),처리구분(""), TL_Val1(0),TL_Val2(0); var : T(0),LTL1(0); var : HTL1(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 { T = 1; 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); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); if T[1] != 1 Then{ TL_SetExtRight(LTL1,False); LTL1 = TL_New(sDate[index-저점[2,2]],sTime[index-저점[2,2]],저점[2,1],sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]); TL_SetExtRight(LTL1,true); } 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 { T = -1; 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); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); if T[1] != -1 then{ TL_SetExtRight(HTL1,false); HTL1 = TL_New(sDate[index-고점[2,2]],sTime[index-고점[2,2]],고점[2,1],sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]); TL_SetExtRight(HTL1,true); } If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,1); TL_SetColor(TL1,white); TL_SetColor(LTL1,green); TL_SetColor(HTL1,yellow); TL_SetSize(LTL1,1); TL_SetSize(HTL1,1);
프로필 이미지
동해바다01
2017-04-06
395
글번호 108545
지표
답변완료

수식문의

5.20.60 테마선이 양일때는 붉은선이 나오고 음일때는 푸른색으로 선이 나타나도록 부탁드릴게요, 그리고 그옆에 테마선값이 숫자로 나왓어면 좋겟습니다
프로필 이미지
레전드
2017-04-07
216
글번호 108544
지표
답변완료

부탁합니다

5분봉차트에 30분봉 삼각가중이평선 10일선을 그리고 싶습니다 부탁합니다
프로필 이미지
매화산삼
2017-04-06
230
글번호 108543
지표
답변완료

수식 부탁드립니다

안녕하십니까? 늘 고맙습니다. 주식 거래에서. 주봉에서 볼밴 120 하한선 을 봉의 종가가 이탈하면 매수신호 발생으로 매수대기 이후 일봉에서 볼밴 120 하한선 이탈시 1차 매수 50만원, 이후 rsi 30이하진입시 2차 매수 100만, 3차매수 2차매수후 시초가에 매수, 4차 매수 3차매수후 시초가, 5차매수 4차매수후 시초가(각50만원) 3% 상승시 20% 매도, 3%상승후 2% 하락시 20% 매도, 5%상승시 20% 매도, 5%상승후 2%하락시 20%매도, 8%상승시 모두청산 검색식은. 볼밴 120 하한선 돌파 종목 검색(주봉에서)으로 부탁드립니다.
프로필 이미지
하늘북
2017-04-06
222
글번호 108542
지표
답변완료

수식 부탁드립니다.

60캔들 내의 최저가와 최고가 간격을 1로 봤을 때 -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4 간격에 선을 만들어주시면 감사하겠습니다. 그리고 0과 1에는 "최저가", "최고가"라고 나올 수 있도록 부탁드립니다. 감사합니다.
프로필 이미지
짱구아빠1234
2017-04-06
212
글번호 108541
지표
답변완료

수식 수정 부탁드립니다

**************************************************************************************** <1> 아래는 만들어주신 수식입니다 var : T(0),H1(0),H2(0),H3(0); var : AA(0),BB(0),CC(0); var1 = ma(C,10); var2 = ma(c,20); if var1 > var2 then{ if crossup(c,var1) Then{ T = 1; H1 = H; H3 = var2; } if CrossDown(C,var1) Then{ T = -1; H2 = var1; } } if T == 1 and H > H1 Then{ H1 = H; H3 = var2; } if T == -1 and var1 > H2 Then H2 = var1; if T == -1 and CrossDown(L,var2) Then T = -2; if T ==-2 and T[1] == -1 Then{ AA = H1; BB = H2; CC = H3; } if BB > 0 and crossup(c,BB) Then buy(); if CC > 0 and CrossDown(c,CC) Then sell(); ************************************************************************ <2> 위에서 만들어주신 수식에 다음 수식 추가 부탁드립니다 매수 진입 캔들 저가 붕괴시키는 음봉 캔들 종가에 매도 매도 진입 캔들 고가 돌파시키는 양봉 캔들 종가에 매수 ************************************************************************ <3> 아래는 만들어주신 수식입니다 안녕하세요 예스스탁입니다. 1. var : T(0),H1(0),H2(0),H3(0); var : AA(0),BB(0),CC(0); var1 = ma(C,10); var2 = ma(c,20); if var1 > var2 then{ if crossup(c,var1) Then{ T = 1; H1 = H; H3 = var2; } if CrossDown(C,var1) Then{ T = -1; H2 = var1; } } if T == 1 and H > H1 Then{ H1 = H; H3 = var2; } if T == -1 and var1 > H2 Then H2 = var1; if T == -1 and CrossDown(L,var2) Then T = -2; if T ==-2 and T[1] == -1 Then{ AA = H1; BB = H2; CC = H3; } plot1(AA); plot2(BB); plot3(CC); 2 var : T(0),H1(0),H2(0),H3(0); var : AA(0),BB(0),CC(0); var1 = ma(C,10); var2 = ma(c,20); if var1 > var2 then{ if crossup(c,var1) Then{ T = 1; H1 = H; H3 = var2; } if CrossDown(C,var1) Then{ T = -1; H2 = var1; } } if T == 1 and H > H1 Then{ H1 = H; H3 = var2; } if T == -1 and var1 > H2 Then H2 = var1; if T == -1 and CrossDown(L,var2) Then T = -2; if T ==-2 and T[1] == -1 Then{ AA = H1; BB = H2; CC = H3; } if BB > 0 and crossup(c,BB) Then buy(); if CC > 0 and CrossDown(c,CC) Then sell(); 즐거운 하루되세요 > 타이쿤 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > 1. 가격이 천정(A)을 형성한후 10ma를 붕괴하고 20ma를 터치할 경우 가격 천정 A를 표시한다 10ma 천정 B를 표시한다 가격 천정 A일때 20ma 가격 C를 표시한다 2. 가격이 B 위치를 아래에서 위로 터치할 때 매도 가격이 C 위치를 위에서 아래로 터치할 때 매수 ******************************************************************************* <4> 위의 식을 방향을 바꾸어 아래 수식으로 수정 부탁드립니다 1. 가격이 바닥(A)을 형성한후 10ma를 돌파하고 20ma를 터치할 경우 가격 바닥 A를 표시한다 가격 바닥 A위에 위치한 10ma 바닥 B를 표시한다 가격 바닥 A일때 A바닥 수직선 위에 위치한 20ma 가격 C를 표시한다 2. 가격이 B 위치를 위에서 아래로 터치할 때 매수 가격이 C 위치를 아래에서 위로 터치할 때 매도 감사합니다
프로필 이미지
회원
2017-04-07
331
글번호 108540
시스템