커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6176
글번호 230811
답변완료
지표식 수정 부탁합니다
첨부한 그림과 같이 파동선 표시되도록 수정 부탁합니다
1. 상승추세 마디는 빨강색 선으로 표시하되, 상승추세 중에 전저점을 이탈하지 않으면서 생긴 모든 마디는 전저점을 이탈하기 전까지 빨강색 선으로 표시
2. 하락추세 마디는 파랑색 선으로 표시하되, 하락추세 중에 전고점을 돌파하지 않으면서 생긴 모든 마디는 전고점을 돌파하기 전까지 파랑색 선으로 표시
3. 전고점, 전저점 돌파 또는 이탈에 따른 캔들 색깔 변경 요청 합니다
위 1,2와 같은 개념으로서 캔들이 직전 고점을 돌파하면 고점돌파 다음 캔들부터 생긴 모든캔들은 빨강색으로 표시하되, 전저점을 이탈하기 전까지 생긴 모든 캔들을 빨강색 표시하고, 캔들이 직전 저점을 이탈하면 저점이탈 다음 캔들부터 생긴 모든 캔들은 회색으로 표시하되, 전고점을 돌파하기 전까지 생긴 모든 캔들을 회색으로 표시
1.2번은 아래의 지표식을 수정해 주시고, 3번은 별도의 지표식으로 작성해 주시면 감사하겠습니다
Input:n(5);
Var:j(0),sBar(0),eBar(0),TL1(0),TL2(0),Text1(0),처리구분("");
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) and
Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) Then
{
If 저점[1,1] > L[n] Then 처리구분 = "저점처리";
If 고점[1,1] < H[n] Then 처리구분 = "고점처리";
}
Else If Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) Then 처리구분 = "고점처리";
Else If Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
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[n] Then
{
고점[1,1] = H[n]; 고점[1,2] = Index - n;
sBar = Index - 저점[1,2];
eBar = n;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1]*1.0003,NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
If 고점[2,1] > 고점[1,1] and 고점[2,1] > 고점[3,1] and 저점[2,1] < 저점[1,1] Then
{
TL_SetExtRight(TL2,False);
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
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[n] Then
{
저점[1,1] = L[n];
저점[1,2] = Index - n;
sBar = Index - 고점[1,2]; eBar = n;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1]*0.9997,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
{
TL_SetExtRight(TL2,False);
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,GRAY);
2018-03-03
289
글번호 117118
답변완료
문의 드립니다.
[질문1: 지표]
오늘의 캔들 중에서(어제의 캔들은 제외) 처음5봉 중에서만(이후의 캔들은 제외) 거래량이 제일 많은 봉의 고가와 저가의 1/2선 출력하고 싶습니다. 그러니까 오늘의 캔들 첫번째봉에서 5번째봉까지만 가지고 계산합니다.
[질문2:시스템]
시스템 수식 중에서 아래의 내용을 수식으로 구현하는 방법을 좀 부탁드립니다.
AA = 6봉전부터 2봉 전 캔들까지(총5봉)의 최고가
BB = 6봉전부터 2봉 전 캔들까지의 최저가
1. 1봉전 캔들의 종가가 AA보다 높고(전고돌파) 현재봉에서 AA가격까지 내려오는 경우 AA가격으로 매수
2. 1봉전의 캔들의 종가가 BB보다 낮고(전저돌파) 현재봉에서 AA가격까지 올라오는 경우 AA가격으로 매도
2018-03-04
168
글번호 117117
답변완료
검색식 작성문의드립니다
검색조건식 2가지 부탁드립니다.
첫째, ADX 지표에서
1. D+ > D- and D+는 30 이상
2. ADX는 20 이상에서 우상향(상승추세)
3. DMI가 50 이상으로 3가지 조건을 동시에 만족하는 조건 검색식
둘째, ADX 지표에서
1. D+ > D- and D+는 40 이상
2. ADX는 우상향하면서 30 돌파(상승추세)
3. DMI가 50 이상 3가지 조건을 동시에 만족하는 조건 검색식
2018-03-05
185
글번호 117116
답변완료
시스템식좀 부탁드립니다.
시스템식좀 부탁드립니다.
이동평균선 5, 10, 20, 60, 120, 240, 360 있을 때
모든 이평선이 우상향하고 그리고 이평선 최고값과 최저값의 편차가
0.7P 이하에 있을 때 매수하고,
이평선 3개가 우하향 할때 청산하라.
또는 모든 이평선이 우하향하고 그리고 이평선 최고값과 최저값의 편차가
0.7P 이하에 있을 때 매도하고,
이평선 3개가 우상향 할때 청산하라.
수고하세요
2018-03-02
174
글번호 117115
답변완료
부탁드립니다.
도움주심에 감사 드립니다.
아래수식으로 실행된 결과가 그림과 같이 되도록 부탁 드립니다.
미리 감사 드립니다.
VAR1=DATA2(V);
plot1(var1,"RED",RED,DEF,0);
2018-03-02
223
글번호 117112
답변완료
다시 부탁드립니다 꾸벅
아래 3개의검색식 하나로 만들어 주세요
1, 장시작후 2분후 검색되게 부탁드리려요( 외부변수부탁)
2, 3개검색식 공통 되는부분은 통합 부탁드립니다
3, 3개검색식 포착 되는 종목중 거래대금 상위 7개 이내로 부탁드립니다
1, 종목검색식
if C >= 1000 and C <= 50000 and
C >= O[1]*1.03 and
C > O and
V >= 1000000 and
C > H[1] and
Upvol/DownVol*100 >= 100 and
ma(M,5) >= 10000 Then
find(1);
2,종목검색식
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
var1 = ma(M,5);
if var1 >= 100000000 and
countif(H >= 상한가,100) >= 1 and
C >= 1000 and C <= 50000 and
Upvol/DownVol*100 >= 100 and
C > H[1] Then
find(1);
3,종목검색식
ar1 = ma(C,20);
var2 = ma(C,60);
var3 = ma(c,120);
if m >= 1000000 and
C >= O*1.05 and C < O*1.30 and
var1 > var2 and var2 > var3 Then
find(1);
2018-03-02
198
글번호 117111
답변완료
문의드립니다.
항상 친절한 답변해주셔서 감사합니다.
아직 초보라 부족한게 많아 계속 질문을 하게 되네요
아래 종목검색식에서 고점을 갱신 && 이평(20,60,120) 정배열을 동시에 만족하는 조건을 찾을려면 어떻게 작성해야하나요??
검색식을 2개 만들까했는데 하나로 만들려면 어떻게 해야하는지 궁금합니다.
안녕하세요
예스스탁입니다.
1 종목검색식
var : DParity(0),HH(0);
DParity = Disparity(60);
if sdate != sdate[1] Then
HH = DParity;
if sdate == sdate[1] and DParity > HH Then{
HH = DParity;
find(1);
}
2 지표식
var : DParity(0),HH(0);
DParity = Disparity(60);
if sdate != sdate[1] Then
HH = DParity;
if sdate == sdate[1] and DParity > HH Then
HH = DParity;
plot1(DParity,"이격도");
plot2(HH,"당일최고");
즐거운 하루되세요
> 확실한수익 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 5분봉에서 당일 이격도(60) 값이 당일 최고값을 갱신하는 검색식이 궁금합니다.
DParity = Disparity(60);
분봉은 고가 저가 이런게 있는데 지표에 고가 갱신을 적용할려니 잘 모르겠네요
2018-03-02
169
글번호 117106
스오어스 님에 의해서 삭제되었습니다.
2018-03-02
18
글번호 117105
답변완료
문의드립니다.
현대하이투자 예스 트레이더 챠트 보고 있습니다.
지표상 시고저라인은 있어 유용한다 고가와 저가사이의 중심선이 꼭 필요한데
그것은 없네요.
시고저중 으로 네가지 다 볼수있는 지표를 만들어주시면 감사하겠습니다.
정 안되면 고가와 저가의 중심가라도 볼수있으면 좋겠습니다.
제가 지표 작성 프로그램 몰라서 어떻게 하는지 모릅니다...
두번째로는 quadrant line 사용법을 잘 몰라서요..
어떤 지점의 고점과 저점을 찍고 qUADRANT LINE을 보고쉽어 체크하면 정확하게 되지 않습니다...
어중간한 중간지점에 네개의 라인이 형성되네요..
어떻게 해야하는지 가르쳐주십시요.
감사합니다.
2018-03-02
184
글번호 117103