커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1459
글번호 230811
답변완료
종목검색수식으로 부탁드립니다
hv=highestsince(1,date!=date(1),v);
hv1=valuewhen(1,date!=date(1),hv(1));
조건=
v>nprev(1)*0.1 &&
c>o*1.02 &&
h>o*1.03 &&
v>hv1;
cnt=countsince(date!=date(1),조건);
cnt==1 && cnt(1)==0
2024-02-13
911
글번호 176571
답변완료
수식 변환좀 부탁드림니다
안녕하세요 수고많음심니다
키움 수식임니다
A=tema((C+H+L)/3,Period) - D1*stdev((C+H+L)/3,Period);
N2=ma(c,기간2);
crossdown(A,N2)
(tema)는 킴움용수식임니다
종목검색할수잇게부탁드림니다
2024-02-13
600
글번호 176570
답변완료
수식 부탁드립니다. 미리 감사해요.
안녕하세요?
혼자 낑낑대다가 수식을 부탁드립니다.
아래의 4가지 매수-매수청산 조건이 한 시스템에 모두 구현되도록 수식을 부탁드립니다.
모든 신호에 진입하면 되는거죠?
1.10이평선이 60이평 위에 있을 때에만,
10이평선이 20이평선을 골든크로스하면 매수,
10이평선이 20이평선을 데드크로스하면 매수청산
2.10이평선이 60이평 위에 있을 때에만,
macd 와 시그널이 골든크로스하면 매수(macd는 12,26,9)
macd와 시그널이 데드크로스하면 매수청산
3. 60이평선과 120이평선이 정배열일 경우에는 10이평선이 60이평을 상향돌파할 경우 매수하고 60이평선을 하향 돌파할 경우 매수청산한다.
4. 60이평과 120이평이 역배열일 경우에 주가가 60이평을 상향 돌파하면 매수하고 120이평선을 터치하거나 60일을 하향이탈하면 매수 청산한다.
미리 감사를 드립니다.
2024-02-13
597
글번호 176569
답변완료
도와주심에..항상 감사드리고 있습니다. 4가지 조건 동시만족하는 검색기 부탁드립니다.
var : AA(0),대금(0),A(0),B(0),DD(0),양대금(0),A1(0),B1(0),D1(0),음대금(0);
대금 = (H+O+L+C)/4*V/100000000;
A=IfF(C>O,대금,0);
B=Accum(A);
A1=IfF(C<O,대금,0);
B1=Accum(A1);
if sDate != sDate[1] Then
{
DD = B[1];
D1 = B1[1];
}
양대금=B-DD;
음대금=B1-D1;
if CROSSUP(양대금,음대금) Then
Find(1);
input : Period(26),Period1(52);
var : a(0),b(0),B1(0),B2(0),AA(0),BB(0);
a = PVI+NVI;
b = ma(PVI,Period)+ma(NVI,Period);
b1 = ma(PVI,Period1)+ma(NVI,Period1);
AA=MAX(B,B1);
BB=MIN(B,B1);
if BB*1.01>=AA && crossup(A,AA) Then
Find(1);
input : Period(240);
var : a(0),b(0);
a = PVI+NVI;
b = ma(PVI,Period)+ma(NVI,Period);
if crossup(A,B) Then
Find(1);
input : 배분1(0.236),배분2(1.02);
var : 중최고가(0),중최저가(0);
var : 경계(0),경계1(False),경계2(False);
var : 기준봉(0),기준봉1(False),기준봉2(False);
var : 결과기준(0),결과기준1(False),결과기준2(False);
var : 평균(0),평균라인(0);
var : a(0), m5(0),m10(0),m20(0),m60(0),m120(0),m240(0),m480(0);
var : bh(0),bc(0),b(0),aa(0);
중최고가=highest(h,20);
중최저가=lowest(l,20);
경계=(중최고가+중최저가)/2-(중최고가-중최저가)*배분1;
경계1=crossup(c, 경계)&& c>o*배분2;
경계2=crossdown(c, 경계);
if 경계1 or 경계2 Then
기준봉 = O;
기준봉1=crossup(c, 기준봉);
기준봉2=crossdown(c, 기준봉);
if 기준봉1 or 기준봉2 Then
결과기준=o;
결과기준1=crossup(c, 결과기준);
결과기준2=crossdown(c, 결과기준);
if 결과기준1 or 결과기준2 Then
A=o;
M5=ema(C,5);
M10=ema(C,10);
M20=ema(C,20);
M60=ema(C,60);
M120=ema(C,120);
M240=ema(C,240);
M480=ema(C,480);
BH=BollBandUp(20,2);
BC=ma(c,20);
평균=((M5*2)+(M10*2)+(M20*3)+(M60*2)+(M120*3)+(M240*2)+(M480*2)+(BH*1)+(BC*1)) / 18;
평균라인=Ema(Ema(Ema(평균, 5), 5), 5);
B=평균라인 + 20*std(평균라인,5);
AA=sar(0.02,0.2);
if C>=A && CROSSUP(C,B) && AA<=C Then
Find(1);
2024-02-12
691
글번호 176568
답변완료
문의 드립니다,
키움 stdev 함수는 예스랭귀지에서는 어떻게 표현하는지 궁금합니다.
2024-02-12
640
글번호 176567
답변완료
코드가 원하는대로 되지 않습니다.
var : 구매일자(0),구매시간(0),구매가격(0),구매포지션(False);
var : 수익율(0),일번돌파(False),이번돌파(False),저점(False),고점(False),올랐다(0);
var : 가두리상선1(0),가두리하선1(0),가두리상선2(0),가두리하선2(0),가두리폭(5),증감(2),가두리기간(30);
var : 가두리대상(False),가두리상태(False),하이값(0),로우값(0),가두리상선(0),가두리하선(0),매물대최고(False),매물대박스(0);
가두리상선 = 첫번째매물대하이 * (1 + (증감/100));
가두리하선 = 첫번째매물대로우 * (1 - (증감/100));
가두리대상 = ((첫번째매물대하이 - 첫번째매물대로우)/첫번째매물대로우) *100 < 가두리폭;
매물대최고 = 첫번째매물대하이 > 두번째매물대하이;
if 가두리대상 && CountIF(Highest(h, 가두리기간) < 가두리상선,가두리기간) < 1 && CountIF(Lowest(l, 가두리기간) > 가두리하선,가두리기간) < 1 then
{
가두리상태 = True;
}
if 가두리상태[1] && CrossUp (c, 가두리상선) && 매물대최고 Then
{
Buy("가두리",ATSTOP,가두리상선);
가두리상태 = False;
가두리대상 = False;
구매일자 = sdate;
구매시간 = stime;
구매가격 = Close;
Box_SetSize(매물대박스, 6);
Box_Setfill(매물대박스,true,100,true);
매물대박스 = Box_New(구매일자[20], 구매시간, 가두리상선, 구매일자[1], 구매시간, 가두리하선);
}
IF MarketPosition == 1 then
{
수익율 = ((C - 구매가격) / 구매가격) * 100;
if 수익율 >= 5 && !곡선상승중 Then
{
ExitLong("5% 익절");
구매일자 = 0; // 구매 일자 리셋
구매시간 = 0; // 구매 시간 리셋
구매가격 = 0; // 구매 가격 리셋
수익율 = 0;
가두리상태 = False;
가두리대상 = False;
}
if 수익율 <= -7 Then
{
ExitLong("7% 손절");
구매일자 = 0; // 구매 일자 리셋
구매시간 = 0; // 구매 시간 리셋
구매가격 = 0; // 구매 가격 리셋
수익율 = 0;
가두리상태 = False;
가두리대상 = False;
}
}
많은 도움 주셔서 감사 합니다. 실력이 좀 늘었다고 생각했는데 아직 이런 기초적인것도 안되네요.
기간동안 가두리 범위 안에 캔들이 있다가 상선을 돌파 할때 구매를 하는건데
제대로 되는것도 있지만 캔들이 범위 밖에 나간것도 구매가 됩니다.
뭐가 잘못된건지 모르겠네요.
두번재 스샷은 캔들에 검은색 칠해진건 15% 이상의 캔들 입니다. 딱 봐도 가두리랑 상관없이 검색된겁니다.
위의 코드에서 수정을 부탁 드리고, 더 간결하고 좋은 코드가 있으면 그것도 올려 주시면 공부 열심히 하겠습니다.
질문을 올리고 처음으로 박스함수를 써봤는데.. 아무런 출력이 되지 않네요..
수정부탁드립니다 ^^;
2024-02-12
825
글번호 176566
답변완료
문의
늘 감사드립니다.
3분봉이든 5분봉 또는 10분봉이든 타분봉에서 일봉 이평선(5,10,20,60,120,300)에 터치할 때 라인이 생기도록 가능할까요?
부탁드립니다.
2024-02-12
667
글번호 176565
답변완료
옵션월물종목에 연결선물 주간 macd를 표현할수있나요?
월물옵션종목창을 일봉으로 호출하고
data2에 연결선물일봉 2000봉을 호출한후
아래 지표식을 적용해보면
옵션데이타만큼만 지표가 나오면서
데이타부족으로 주봉macd표현이 되지 않습니다.
혹시 일봉옵션데이타에 연결선물주간macd를 표현하는 방법이 따로 있나질문드립니다.
감사합니다.
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = data2(C) * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = data2(C) * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
2024-02-12
499
글번호 176564
답변완료
첫봉 거래량
감사합니다
1
첨부 그림과 같이
5분봉에서
현재일의 첫봉 거래량이
1일전부터 5일동안의 5분봉 첫봉거래량의 평균보다 2배이상 크면
매수신호를 발생시키고자 합니다.
2
5분봉에서
현재일의 현재시간 거래량이
1일전부터 5일동안의 5분봉 동일시간 거래량의 평균보다
2배 이상이면 매수신호를 발생시키고자 합니다
2024-02-14
577
글번호 176563