커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6135
글번호 230811
답변완료
수식 수정부탁드립니다.
안녕하십니까
수식 수정 부탁드립니다. 아래는 작성하여 주신 수식 입니다.
input : 금액(10000000),ntime(100000);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
input : P(20),진입횟수(3),BBP(20),dv(2);
input : 진입시작1(91500),진입종료1(110000);
input : 진입시작2(130000),진입종료2(153000);
var : mav(0),entry(0),volma(0),Tcond(False),BBup(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
mav = ma(C,P);
volma = ma(V,P);
BBup = BollBandUp(BBP,dv);
Tcond = (sTime >= 진입시작1 and sTime < 진입종료1) or (sTime >= 진입시작2 and sTime < 진입종료2); #오전 09:30~11:00, 오후 1:00~15:30분 사이만 매수
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;
}
}
if MarketPosition == 0 and
Tcond == true and
entry < 진입횟수 and #당일진입은 3회까지
C > DayOpen and #일봉양봉
(mav > mav[1] and
(TotalTrades == 0 or (TotalTrades > 0 and CountIf(mav<mav[1],BarsSinceExit(1)) >= 1))) and
V >= volma[1]*1.50 Then #20거래량 평균 50%이상 거래량 발생
Buy("b");
if MarketPosition == 1 Then
#if CrossDown(C,BBup) Then #볼밴상단 하향돌파
#ExitLong("bx2");
ExitLong("bx",AtLimit,상한가);
SetStopLoss(3,PercentStop);
SetStopEndofday(151500);
현재 매수 조건은
1. 일봉양봉 2. 20일 이평상승 3. 거래량 20거래량 평균 50% 이상 발생 시 매수
입니다.
수정 부탁 드릴 조건은 위 1~3번 조건이 발생 한 후 종가가 20일 이평을 하향 하였을때 매수로 변경 부탁드립니다,(3분 5분봉에 적용할예정입니다.)
첨부 이미지 보시면 현재는 1번에서 주문이 나가는데 2번에서 주문이 나갈수 있게 변경하고 싶습니다.
항상 건강하십시오. 감사합니다.
2022-02-09
1256
글번호 156150
답변완료
재문의드립니다
75860번 전일고가저가를 추가하였는데 고가저가크로스될때도 수평선이 나오게 부탁드립니다~~항상감사합니다
2022-02-09
1279
글번호 156146
답변완료
문의드립니다
수고하십니다
볼린저밴드하단선을 저가가 5봉이내 터치하고 20일선을 돌파하는 식을 알고싶습니다
2022-02-09
1197
글번호 156145
답변완료
지표수식의뢰
1.기준봉 : N봉중 신고가(종가 20%이상)
2.당일 주가가 기준봉의 중심값(30%)을 돌파하는 종목의
- 검색수식
- 신호수식
- 지표수식
부탁드립니다.
수고하세요
2022-02-09
1249
글번호 156137
답변완료
문의드립니다
input : per1(23.6),per2(50.0),per3(76.4);
var : hh(0),ll(0),dd(0),tt(0);
var : tl1(0),tl2(0),tl3(0),v1(0),v2(0),v3(0);
if bdate > bdate[1] then
{
hh = h;
ll = l;
dd = sdate[1];
tt = stime[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
if h > hh and hh > 0 Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
if l < ll and ll > 0 Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
tl1 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
}
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,0);
TL_SetExtRight(TL1,true);
TL_SetColor(TL2,BLACK);
TL_SetSize(TL2,0);
TL_SetExtRight(TL2,true);
TL_SetColor(TL3,BLACK);
TL_SetSize(TL3,0);
TL_SetExtRight(TL3,true);
v1 = hh-(hh-ll)*(per1/100);
v2 = hh-(hh-ll)*(per2/100);
v3 = hh-(hh-ll)*(per3/100);
INPUTS: LENGTH1(5);
INPUTS: 색1(YELLOW),색2(RED), 굵기(1);
VARS : DEMA1(0),TL(0);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
DEMA1 = var1 * 2 - value1;
if C >DEMA1 Then
PLOT1(DEMA1, "DEMA1",GRAY);
Else
PLOT1(DEMA1, "DEMA1",GRAY);
if CrossUp(DEMA1,v1) or CrossUp(DEMA1,v2) or CrossUp(DEMA1,v3) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1,NextBarSdate,NextBarStime,DEMA1);
TL_SetColor(tl,MAGENTA);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
if CrossDown(DEMA1,v1) or CrossDown(DEMA1,v2) or CrossDown(DEMA1,v3) Then
{
TL_Delete(tl);
tl = TL_New(sDate,sTime,DEMA1,NextBarSdate,NextBarStime,DEMA1);
TL_SetColor(tl,lGREEn);
TL_SetSize(tl,3);
TL_SetExtRight(TL,true);
}
위수식으로도 전일고가 전일저가 수평선을 추가하고 십습니다 ~~미리감사드립니다
2022-02-09
1099
글번호 156136
답변완료
수식부탁드립니다.
안녕하세요
최근 20개 봉의 고저차이의 합계를 수식으로 만들고 싶습니다.
예) 최근 5개봉의 고저차이 합
{h(1)-l(1)}+{h(2)-l(2)}+ {h(3)-l(3)}+ {h(4)-l(4)}+ {h(5)-l(5)}
이렇게 하니 20개, 50개 수식을 만들자니 너무 많습니다.
간단한 수식 부탁드립니다.
input : p(0);
var : cnt(0);
for cnt = 1 to P
{??????????};
감사합니다.
2022-02-09
1045
글번호 156135
답변완료
분봉의 특정 구간의 조건 만족
분봉에서 특정 구간에서 조건을 만족하면 신호가 발생하는 식을 만들고자 합니다.
예제로 다음 식 부탁 드립니다.
[시스템1]
다음 조건 동시 만족
장시작 후 10번째 분봉부터 현재 시점의 분봉까지 종가가 시가대비 0.5% 하락한 적이 있다
장시작 후 10번째 분봉부터 현재 시점의 분봉까지 참조종목 Data2의 저가가 시가대비 0.5% 하락한 적이 있다
매수
시가대비 1% 상승하면 매수
[시스템2]
매수
시가대비 1% 상승하면 매수
매도
매수 진입 이전 분봉의 종가가 장시작 후 시가대비 -0.5% 하락한 적이 없으면 3시에 매도
매수 진입 이전 분봉의 종가가 장시작 후 시가대비 -0.5% 하락한 적이 있으면 12시에 매도
항상 감사합니다.
2022-02-09
1146
글번호 156134
답변완료
문의드립니다
안녕하세요?
아래 조건문에 1. 직전20봉내에서 2번째 발생되는것이면
2. 직전20봉내에서 2번째또는 3번째 발생되는것이면 이란
조건을 추가하고싶습니다
if T == 1 and T != T[1] Then
감사합니다
2022-02-09
1300
글번호 156130
답변완료
75845 수식 수정 부탁합니다
<전일 질문>
일봉 5ma ,20ma를 틱 차트에 구현하는 수식
<수정 질문1>
c<mav1 인 경우 mav1 의 당일 최고치를 표시
c<mav2 인 경우 mav2 의 당일 최고치를 표시
c>mav1 인 경우 mav1 의 당일 최저치를 표시
c>mav2 인 경우 mav2 의 당일 최저치를 표시
<수정 질문2>
전일 종가 기준 일봉 5ma ,20ma를 금일 틱 차트에 구현하는 수식
감사합니다
----------------------------------------------------------------------
안녕하세요
예스스탁입니다.
input : P1(5),P2(20);
var : cnt(0);
var : sumV1(0),sumV2(0);
var : mav1(0),mav2(0);
sumV1 = 0;
sumV2 = 0;
for cnt = 0 to P2
{
if cnt < P1 Then
sumV1 = sumV1+DayClose(cnt);
if cnt < P2 Then
sumV2 = sumV2+DayClose(cnt);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
plot1(mav1);
plot2(mav2);
즐거운 하루되세요
> 유튜버 님이 쓴 글입니다.
> 제목 : 지표 질문입니다
> 일봉 5ma ,20ma를 틱 차트에 구현하는 수식
감사합니다
2022-02-09
1164
글번호 156129