커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6063
글번호 230811
답변완료
종목 검색이 잘 되지 않아 다시 질문드립니다.
https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=1&num=153763&ref=153745&Sort=&KeyField=NickName&KeyWord=mhim30
위 링크는 저번에 질문드렸었던 링크입니다.
답변 잘 받았습니다.
다름이 아니라 답변해주시는대로 해보았으나, 검색되어야 될 종목이 검색이 되질 않아
다시 질문드려봅니다.
첨부 이미지를 보시면 초록색 선이 있는데 그 선은 일봉상 상한가 전날의 종가에 선을 그어
놨고, 그 선에 +5%~-10% 범위 안에 들어오는 종목을 검색하고자 합니다.
위 조건이라면 재영솔루텍 종목이 검색되어야되는데, 검색이 되질 않습니다.
다시 한번 봐주시면 감사하겠습니다.
감사합니다.
2021-10-25
1595
글번호 153154
답변완료
문의드립니다
1.
5일과20일크로스업 인 당일종목검색을 하고 전일종목검색을하고 전전일 검색을 하고싶은데
Input : Period(0) 를 이용하여 할수있는 방법이 있을까요? 아니면 다른 방식이 있으면 알려주세요
2.
당일 10분봉에서 평균거래량보다 2배이상거래봉 2번이상 나온종목을 찾고싶습니다
2021-10-26
973
글번호 153153
답변완료
지표 부탁 드립니다.
input : sto1(12),sto2(26),sto3(9);
var : Stochasticsfast(0),Stochasticsslow(0),StochasticssOsc(0);
StochasticsFast = (C-lowest(L,sto1))/(highest(H,sto1)-lowest(L,sto1))*100;
Stochasticsslow = AccumN(C-lowest(L,sto1),sto2)/AccumN((highest(H,sto1)-lowest(L,sto1)),sto2)* 100;
StochasticssOsc = ema(Stochasticsfast,sto2)-ema(Stochasticsslow,sto3);
if StochasticssOsc > 0 Then
plot1(StochasticssOsc,"osc",RED);
Else
plot1(StochasticssOsc,"osc",BLUE);
PlotBaseLine1(0);
PlotBaseLine2(20);
PlotBaseLine3(-20);
PlotBaseLine4(15);
PlotBaseLine5(-15);
PlotBaseLine6(5);
PlotBaseLine7(-5);
직전봉보다 적을시 파랑 크면 빨강 부탁 드립니다. 수고하세요
2021-10-25
1010
글번호 153152
답변완료
문의드립니다
수고많으십니다.
아래 내용을 수식으로 만들어 주셨는데요..
실제에는 다르게 나타나서요.
1. 신호나올시 즉시 매수 매도하는 것도 가격이 차이가 많이 납니다.
2. 그리고 종가에 매수 매도하는 것하고 즉시 매수 매도하는 것이
거래 횟수가 5-6배 이상 차이가 나는 것도 이상한 거 같습니다.
두 경우에 신호가 나타난 차트 사진 올려 드립니다.
6분과 30분에 같은 방향 신호가 동시에 나올때 즉시 매수 매도 하는 것과
6분의 종가에 매수매도 하는 2가지 수식을 주셨습니다.
수동으로 복귀해보는 것과 차이가 많이 납니다.
확인 한번 부탁드립니다.
요청했던 부분 다시 남깁니다.
감사합니다.
6분봉과 30분봉, 매수 매도 신호가 나오도록 해주세요.
1. 현재 캔들이 10번째 이전 캔들의 고가를 돌파할때 매수 신호, 저가를 깰때 매도 신호가 나오도록 해주세요. 종가가 아닌 돌파나 깰때 바로 나오도록 해주세요.
2. 현재 캔들이 10번째 이전 캔들의 고가를 돌파하거나 저가를 깨는 일이 같이 일어날 때는 일어나는 그 시각에 해당되는 매수, 매도 신호가 나오도록 해주세요.
3. 10번째 이전 캔들의 고가 위에서 현재 캔들이 앞 캔들의 고가를 높이는 경우, 매수 신호가 나오도록 해주세요.
4. 10번째 이전 캔들의 저가 아래에서 현재 캔들이 앞 캔들의 저가를 깨는 경우 매도 신호가 나오도록 해주세요.
* 위 사항에 대해 6분봉과 30분봉이 같은 방향으로 신호가 있을 때만 그 방향으로 매수, 매도 진입하도록 해주세요.
1 즉시진입
input : ntime1(6),ntime2(30),n(10);
input : StartTime(222500),EndTime(010000);
input : 익절틱수(50),손절틱수(50);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),cnt(0);
Array : H1[50](0),L1[50](0),H2[50](0),L2[50](0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%ntime1;
TF2 = TM%ntime2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or
(Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then
{
H1[0] = H;
L1[0] = L;
For cnt = 1 to 49
{
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
}
}
if H1[0] > 0 and H > H1[0] Then
H1[0] = H;
if L1[0] > 0 and L < L1[0] Then
L1[0] = L;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or
(Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then
{
H2[0] = H;
L2[0] = L;
For cnt = 1 to 49
{
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
}
}
if H2[0] > 0 and H > H2[0] Then
H2[0] = H;
if L2[0] > 0 and L < L2[0] Then
L2[0] = L;
if Tcond == true Then
{
if MarketPosition <= 0 and H1[n] > 0 and H2[n] > 0 and H < min(H1[n],H2[n])+PriceScale*1 Then
Buy("b",AtStop,max(H1[n],H2[n]+PriceScale*1));
if MarketPosition >= 0 and L1[n] > 0 and L2[n] > 0 and L > max(L1[n],L2[n])-PriceScale*1 Then
Sell("s",AtStop,min(L1[n],L2[n])-PriceScale*1);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
2. 종가진입
input : ntime1(6),ntime2(30),n(10);
input : StartTime(222500),EndTime(010000);
input : 익절틱수(50),손절틱수(50);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),cnt(0);
Array : H1[50](0),L1[50](0),H2[50](0),L2[50](0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%ntime1;
TF2 = TM%ntime2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or
(Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then
{
H1[0] = H;
L1[0] = L;
For cnt = 1 to 49
{
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
}
}
if H1[0] > 0 and H > H1[0] Then
H1[0] = H;
if L1[0] > 0 and L < L1[0] Then
L1[0] = L;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or
(Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then
{
H2[0] = H;
L2[0] = L;
For cnt = 1 to 49
{
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
}
}
if H2[0] > 0 and H > H2[0] Then
H2[0] = H;
if L2[0] > 0 and L < L2[0] Then
L2[0] = L;
if Tcond == true Then
{
if H1[n] > 0 and H2[n] > 0 and C > H1[n] and C > H2[n] and C > O Then
Buy();
if L1[n] > 0 and L2[n] > 0 and C < L1[n] and C < L2[n] and C < O Then
Sell();
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
2021-10-25
882
글번호 153151
답변완료
도움 부탁 드립니다.
항상 답변 감사드립니다. 아래와 같은 내용으로 시스템을 만들려고하는데 잘 되지 않습니다. 부탁드립니다.
-------
여러 상황이 있고 각각의 상황이 연결되어있습니다.
각 조건(알파벳)은 '만족하고 있는 상태'가 아니라 '특정 상황을 만족했을 시'입니다.
1. 0 = 아무것도 아닌 상태 (동시에 무포지션)
2. A, A', B, C = 특정 조건 만족
2021-10-25
702
글번호 153149
답변완료
도움 부탁드립니다.
안녕하세요 항상 답변 감사드립니다. 아래와 같은 내용으로 시스템을 만들려고하는데 도움 부탁드립니다.
특정 상황 x가 만족된뒤 완성되는 봉의 고가와 저가의 값에서 바로 전 봉의 atr값을 뺀 뒤, 해당 값을 저장한뒤(편의상 z)현재 봉이 해당 값을 뚫고 아래에서 음봉 마감되면 매수.
이때 중요한 건, 종가가 z 값보다 아래에서 완성되는 첫번쨰 봉에서만 매수하고 싶습니다. (시가가 z보다 큰지 아닌지는 상관 x)
z값 아래에서 음봉마감이 계속 되면 계속 들어가더라구요. 그렇게 안됐으면 좋겠습니다.
도와주세요
2021-10-25
691
글번호 153146
답변완료
시스템식 문의 드립니다.
시스템식 문의를 드리려고 요청 드립니다.
청산관련해서.
특정한 금액에서 매수를 했다면,
예를들어 목표 수익률 5% 잡고, 10,000원에 매수했을경우...
만약에 -1% 하락시 (주가가 9,900원) 이 되었을때 목표수익률 4%로 변경,
-2% 하락시 (주가가 9,800원) 이 되었을때 목표수익률 3%로 변경,
-3% 하락시 (주가가 9,700원) 이 되었을때 목표수익률 2%로 변경,
-4% 하락시 (주가가 9,600원) 이 되었을때 목표수익률 1%로 변경,
-5% 하락시 (주가가 9,500원) 이 되었을때 목표수익률 0%로 변경,
-6% 하락시 (주가가 9,400원) 이 되었을때 목표수익률 -1%로 변경,
-7% 하락시 (주가가 9,300원) 이 되었을때 청산
이런식을 작성하고 싶은데.. 가능할지 궁금합니다.
그럼 부탁드리겠습니다. 감사합니다.
2021-10-25
776
글번호 153144
베어샘 님에 의해서 삭제되었습니다.
2021-10-25
61
글번호 153142
답변완료
윗꼬리 관련 검색수식 질문드립니다
안녕하세요
키움증권을 쓰다가 예스랭귀지를 공부해보려고 하는데요
키움에서 작성한 수식을 변환을 부탁드립니다
윗꼬리 관련 수식이고요
변수는 배수 상승률 상승조건이렇게 설정해놨고
배수는 윗꼬리 길이와 바디와의 크기 비율입니다
상승조건 기본 설정은 고가/시가(1) 입니다
당일 장중에 이런 조건이 발생한 경우를 발생시간에 상관없이 모두 찾아보고 싶습니다
valuewhen 은 상단 하단 라인을 만들어서 색상 채우기로 표현한 부분입니다
예스에서도 표현이 가능한지요
수식1
A=고가-저가;
B=max(종가,시가)-저가;
조건=A/B>배수 and 상승조건>(1+상승률/100);
valuewhen(1,조건,고가);
수식2
A=고가-저가;
B=max(종가,시가)-저가;
조건=A/B>배수 and 상승조건>(1+상승률/100);
valuewhen(1,조건,max(종가,시가));
부탁드립니다
2021-10-25
1066
글번호 153134