커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5509
글번호 230811
답변완료
인벨로프 보조지표는 없는건가요?
종목검색에서 envelop 지표를 찾을 수가 없는데 없는 건가요? 아니면 명칭이 다르게 나와있나요?
2021-01-19
1109
글번호 145615
답변완료
수식부탁드립니다
안녕하세요
아래수식을 이용해 다음 조건에 맞춰 수식을 부탁드립니다
Input:Period1(1),length(2),종가사용여부(0);
Var:TLen1(0),TRIma1(0),j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),T(0),sumv(0),sumi(0),mav(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
TLen1 = Ceiling((Period1 + 1) * .5);
TRIma1 =Ema(Ema(C, TLen1), TLen1);
var1 = H-TRIma1;
var2 = TRIma1-L;
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==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]);
}
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]);
TL_SetEnd(TL2,고[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]);
}
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]);
TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
위 수식에서 종가가 전고점(첨부그림에서 421.00)보다 상승할때 매수신호
종가가 전저점(420.60)보다 하락할때 매도신호 부탁드립니다
2021-01-19
1151
글번호 145614
답변완료
수식작성 추가 문의
매수 조건 : 이동평균선 120 이동평균선 골드크로스 상태에서 + Aroon 10 매수 신호 발생시 매수
매도 조건 : 이동평균 120 이동평균선 데드크로스, 또는
Aroon 10 매도 신호발생
둘중 먼저 매도 신호가 발생하면 매도 수식추가 부탁드리겠습니다.
감사드립니다~
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식작성문의
>
안녕하세요
예스스탁입니다.
input : P(120),Period(10);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
var : mav(0);
mav = ma(C,120);
Lowval= Lowest(Low, Period+1);
Highval = Highest(High, Period+1);
For counter= 0 To Period {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
UpAroon = 100*(Period-UpVel)/Period;
DnAroon = 100*(Period-DownVel)/Period;
if c > mav Then
{
if crossup(UpAroon,DnAroon) Then
buy("Aroon_LE");
if CrossDown(UpAroon,DnAroon) Then
sell("Aroon_SE");
}
즐거운 하루되세요
> xspell 님이 쓴 글입니다.
> 제목 : 수식작성문의
> 이동평균선 120일 이동평균선 골드크로스시 상태에서 Aroon 10 매매조건 만족시만 매매 하고 싶습니다.
조건 : 이동평균선 120이동평균선 골드크로스 + Aroon 10 매수 신호 발생시 매수 매도 신호 발생시 매도
수식작성 문의 드립니다.
감사합니다.
2021-01-19
1237
글번호 145613
답변완료
종목검색
이 화살표가 뜨는 종목들을 검색해보고싶습니다.
A=ma(c,기간1,종류);
B=ma(c,기간2,종류);
D=valuewhen(1,B<B(1) and B(1)>B(2),B(1));
CrossUp(A,D)
기간1 5
기간2 20
종류 지수
2021-01-19
1126
글번호 145612
답변완료
평단가 구하기
value3 = value1+(value1-value2)/2;
value4 = value1;
}
var9 = Lowest(l,1);
var10=(var3-abs(value3-value4)*2);
if CrossDown(var9,var10) Then
Buy ("용크로스");
이런 식으로 프로그램 할경우 모든 신호 허용 하면 신호가 마마구 마구 나오는대
마구 마구 매수가 나오면 총 평단가를 구한 다음
10%에서 자동 청산 하고 싶은대 될까요 ?
2021-01-19
992
글번호 145608
숭테크 님에 의해서 삭제되었습니다.
2021-01-19
0
글번호 145607
답변완료
문의드립니다
다음의 기준선을 돌파하거나 이탈하는 종목에 대한 검색식을 부탁드립니다.
1. 매수가능종목
가. 5%이상의 양봉이고 20이평은 우상향이면서 기준선상향돌파(시가<=표시가격<=종가)
나. ((표시가격-시가) * 배수(1.5)) <= (종가-표시가격) 만족
다. 위꼬리와 아래꼬리는 몸통보다 작아야 한다
라. 시가총액이 1조이상이어야 한다(가능하면 넣어주세요)
마. 기준선과 가격
(1) DEMA선:가격(O), 기간(9)
(2) RSI(기간10)가 기준선(과매도값:25)을 상향돌파할때의 표시가격은
시가와종가(몸통)의 25%가격을 시가에서 더한 가격을 표시가격으로 설정
(3) CCI(기간20)가 기준선(과매도값: -150)을 상향돌파할때의 표시가격은
시가와종가(몸통)의 25%가격을 시가에서 더한 가격을 표시가격으로 설정
(4) 일정기간(120일)내에 최고거래량이 발생한 봉의 표시가격은 중심가격임
(5) 볼밴상한선(120일/2) 가격
(6) 5/10/20 이평을 동시돌파하는 경우에는 표시가격은 5이평가격임
<마>의 기준표시가격을 1개이상 돌파하면서 가.나.다.라.조건을 동시만족하는
매수검색식을 만들어 주세요.
2. 매도가능종목
가. 5%이상의 음봉이고 20이평은 우하향이면서 기준선하향돌파(시가>표시가격>종가)
나. (((시가-표시가격) * 배수(1.5)) <= (표시가격-종가) 만족
다. 위꼬리와 아래꼬리는 몸통보다 작아야 한다
라. 시가총액이 1조이상이어야 한다(가능하면 넣어주세요)
마. 기준선과 가격
(1) DEMA선:가격(O), 기간(9)
(2) RSI(기간10)가 기준선(과매수값:75)을 하향이탈할때의 표시가격은
시가와종가(몸통)의 25%가격을 시가에서 뺀 가격을 표시가격으로 설정
(3) CCI(기간20)가 기준선(과매수값; -150)을 하향이탈할때의 표시가격은
시가와종가(몸통)의 25%가격을 시가에서 뺀 가격을표시가격으로 설정
(4) 일정기간(120일)내에 최고거래량이 발생한 봉의 표시가격은 중심가격임
(5) 볼밴상한선(120일/2) 가격
(6) 5/10/20 이평을 동시하향이탈하는 경우에는 표시가격은 5이평가격임
<마>의 기준표시가격을 1개이상 하향이탈하면서 가.나.다.라.조건을 동시만족하는
매도검색식을 만들어 주세요.
항상 감사합니다.
2021-01-19
1350
글번호 145604
답변완료
문의 드립니다.
최근 발생한 상한가를 돌파하면 매수, 매도하는 시스템식인데요, 최근 상한가 이전의 봉을 돌파하면 매수가 되는데 변경 부탁합니다.
#시스템식
var : 상한가(0), UpLimit(0),cnt(0),count(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0),TL(0);
Array : upv[100](0),TX[100](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;
}
}
if H >= 상한가 Then
{
upv[0] = H[0];
count = count+1;
TL = TL_New(sdate[1],stime[1],upv[0],sdate,stime,upv[0]);
//TL_SetExtRight(TL,true);
tx[0] = Text_New(sdate,stime,upv[0],NumToStr(upv[0],0));
for cnt = 1 to 99
{
upv[cnt] = upv[cnt-1][1];
tx[cnt] = tx[cnt-1][1];
}
}
for cnt = 0 to count-1
{
if upv[cnt] > 0 then
{
Text_SetLocation(TX[cnt],sdate,stime,upv[cnt]);
if C > upv[cnt] and C[1] < upv[cnt] Then
buy();
if C < upv[cnt] and C[1] > upv[cnt] Then
sell();
}
}
2021-01-19
1062
글번호 145595
답변완료
수식
안녕하세요.
하기와 같은 조건이 동시에 만족시 청산 수식 부탁드립니다.
# 매수 청산
진입 봉 저가 이탈
진입 전봉 저가 이탈
진입가 대비 -20틱 이상
# 매도 청산
진입 봉 고가 돌파
진입 전봉 고가 돌파
진입가 대비 -20틱 이상
감사합니다.
2021-01-19
1026
글번호 145594