커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7218
글번호 230811
답변완료
수정 의뢰드립니다!
안녕하세요!
아래의 자료들은 일전에 만들어 주신 자료 들입니다!
다름이 아니라 선에 주가가 닿으면 음성이 나오는 수식을 만들어 보고 싶습니다!
음원파일은 제가 wav파일을 직접 선별하겠습니다
그러므로 주가가 선에 닿으면 소리가 나게끔 링크설정 좀 부탁드립니다!
거듭 감사드립니다!
--------------------------------------------------------------------------
input : n(2.5);
var : VV(0),dd(0);
if bdate != bdate[1] then
{
vv = O;
dd = n;
var1 = vv;
var11 = vv+(dd*0.236);
var12 = vv+(dd*0.382);
var13 = vv+(dd*0.500);
var14 = vv+(dd*0.618);
var15 = vv+(dd*0.764);
var16 = vv+(dd*1.000);
var17 = vv+(dd*1.236);
var18 = vv+(dd*1.382);
var19 = vv+(dd*1.500);
var20 = vv+(dd*1.618);
var21 = vv+(dd*1.764);
var22 = vv+(dd*2.000);
var23 = vv+(dd*2.236);
var24 = vv+(dd*2.382);
var25 = vv+(dd*2.500);
var26 = vv+(dd*2.618);
var27 = vv+(dd*2.764);
var28 = vv+(dd*3.000);
var31 = vv-(dd*0.236);
var32 = vv-(dd*0.382);
var33 = vv-(dd*0.500);
var34 = vv-(dd*0.618);
var35 = vv-(dd*0.764);
var36 = vv-(dd*1.000);
var37 = vv-(dd*1.236);
var38 = vv-(dd*1.382);
var39 = vv-(dd*1.500);
var40 = vv-(dd*1.618);
var41 = vv-(dd*1.764);
var42 = vv-(dd*2.000);
var43 = vv-(dd*2.236);
var44 = vv-(dd*2.382);
var45 = vv-(dd*2.500);
var46 = vv-(dd*2.618);
var47 = vv-(dd*2.764);
var48 = vv-(dd*3.000);
Text_Delete(value1);
Text_Delete(value11);
Text_Delete(value12);
Text_Delete(value13);
Text_Delete(value14);
Text_Delete(value15);
Text_Delete(value16);
Text_Delete(value17);
Text_Delete(value18);
Text_Delete(value19);
Text_Delete(value20);
Text_Delete(value21);
Text_Delete(value22);
Text_Delete(value23);
Text_Delete(value24);
Text_Delete(value25);
Text_Delete(value26);
Text_Delete(value27);
Text_Delete(value28);
value1 = Text_New(sdate,stime,var1,"0.00% : "+NumToStr(var1,2));
value11 = Text_New(sdate,stime,var11,"+23.6% : "+NumToStr(var11,2));
value12 = Text_New(sdate,stime,var12,"+38.2% : "+NumToStr(var12,2));
value13 = Text_New(sdate,stime,var13,"+50.0% : "+NumToStr(var13,2));
value14 = Text_New(sdate,stime,var14,"+61.8% : "+NumToStr(var14,2));
value15 = Text_New(sdate,stime,var15,"+76.4% : "+NumToStr(var15,2));
value16 = Text_New(sdate,stime,var16,"+100.0% : "+NumToStr(var16,2));
value17 = Text_New(sdate,stime,var17,"+123.6% : "+NumToStr(var17,2));
value18 = Text_New(sdate,stime,var18,"+138.2% : "+NumToStr(var18,2));
value19 = Text_New(sdate,stime,var19,"+150.0% : "+NumToStr(var19,2));
value20 = Text_New(sdate,stime,var20,"+161.8% : "+NumToStr(var20,2));
value21 = Text_New(sdate,stime,var21,"+176.4% : "+NumToStr(var21,2));
value22 = Text_New(sdate,stime,var22,"+200.0% : "+NumToStr(var22,2));
value23 = Text_New(sdate,stime,var23,"+223.6% : "+NumToStr(var23,2));
value24 = Text_New(sdate,stime,var24,"+238.2% : "+NumToStr(var24,2));
value25 = Text_New(sdate,stime,var25,"+250.0% : "+NumToStr(var25,2));
value26 = Text_New(sdate,stime,var26,"+261.8% : "+NumToStr(var26,2));
value27 = Text_New(sdate,stime,var27,"+276.4% : "+NumToStr(var27,2));
value28 = Text_New(sdate,stime,var28,"+300.0% : "+NumToStr(var28,2));
Text_Delete(value31);
Text_Delete(value32);
Text_Delete(value33);
Text_Delete(value34);
Text_Delete(value35);
Text_Delete(value36);
Text_Delete(value37);
Text_Delete(value38);
Text_Delete(value39);
Text_Delete(value40);
Text_Delete(value41);
Text_Delete(value42);
Text_Delete(value43);
Text_Delete(value44);
Text_Delete(value45);
Text_Delete(value46);
Text_Delete(value47);
Text_Delete(value48);
value31 = Text_New(sdate,stime,var31,"-23.6% : "+NumToStr(var31,2));
value32 = Text_New(sdate,stime,var32,"-38.2% : "+NumToStr(var32,2));
value33 = Text_New(sdate,stime,var33,"-50.0% : "+NumToStr(var33,2));
value34 = Text_New(sdate,stime,var34,"-61.8% : "+NumToStr(var34,2));
value35 = Text_New(sdate,stime,var35,"-76.4% : "+NumToStr(var35,2));
value36 = Text_New(sdate,stime,var36,"-100.0% : "+NumToStr(var36,2));
value37 = Text_New(sdate,stime,var37,"-123.6% : "+NumToStr(var37,2));
value38 = Text_New(sdate,stime,var38,"-138.2% : "+NumToStr(var38,2));
value39 = Text_New(sdate,stime,var39,"-150.0% : "+NumToStr(var39,2));
value40 = Text_New(sdate,stime,var40,"-161.8% : "+NumToStr(var40,2));
value41 = Text_New(sdate,stime,var41,"-176.4% : "+NumToStr(var41,2));
value42 = Text_New(sdate,stime,var42,"-200.0% : "+NumToStr(var42,2));
value43 = Text_New(sdate,stime,var43,"-223.6% : "+NumToStr(var43,2));
value44 = Text_New(sdate,stime,var44,"-238.2% : "+NumToStr(var44,2));
value45 = Text_New(sdate,stime,var45,"-250.0% : "+NumToStr(var45,2));
value46 = Text_New(sdate,stime,var46,"-261.8% : "+NumToStr(var46,2));
value47 = Text_New(sdate,stime,var47,"-276.4% : "+NumToStr(var47,2));
value48 = Text_New(sdate,stime,var48,"-300.0% : "+NumToStr(var48,2));
}
Else
{
Text_SetLocation(value1,sdate,stime,var1);
Text_SetLocation(value11,sdate,stime,var11);
Text_SetLocation(value12,sdate,stime,var12);
Text_SetLocation(value13,sdate,stime,var13);
Text_SetLocation(value14,sdate,stime,var14);
Text_SetLocation(value15,sdate,stime,var15);
Text_SetLocation(value16,sdate,stime,var16);
Text_SetLocation(value17,sdate,stime,var17);
Text_SetLocation(value18,sdate,stime,var18);
Text_SetLocation(value19,sdate,stime,var19);
Text_SetLocation(value20,sdate,stime,var20);
Text_SetLocation(value21,sdate,stime,var21);
Text_SetLocation(value22,sdate,stime,var22);
Text_SetLocation(value23,sdate,stime,var23);
Text_SetLocation(value24,sdate,stime,var24);
Text_SetLocation(value25,sdate,stime,var25);
Text_SetLocation(value26,sdate,stime,var26);
Text_SetLocation(value27,sdate,stime,var27);
Text_SetLocation(value28,sdate,stime,var28);
Text_SetLocation(value31,sdate,stime,var31);
Text_SetLocation(value32,sdate,stime,var32);
Text_SetLocation(value33,sdate,stime,var33);
Text_SetLocation(value34,sdate,stime,var34);
Text_SetLocation(value35,sdate,stime,var35);
Text_SetLocation(value36,sdate,stime,var36);
Text_SetLocation(value37,sdate,stime,var37);
Text_SetLocation(value38,sdate,stime,var38);
Text_SetLocation(value39,sdate,stime,var39);
Text_SetLocation(value40,sdate,stime,var40);
Text_SetLocation(value41,sdate,stime,var41);
Text_SetLocation(value42,sdate,stime,var42);
Text_SetLocation(value43,sdate,stime,var43);
Text_SetLocation(value44,sdate,stime,var44);
Text_SetLocation(value45,sdate,stime,var45);
Text_SetLocation(value46,sdate,stime,var46);
Text_SetLocation(value47,sdate,stime,var47);
Text_SetLocation(value48,sdate,stime,var48);
}
plot1(var1);
plot11(var11);
plot12(var12);
plot13(var13);
plot14(var14);
plot15(var15);
plot16(var16);
plot17(var17);
plot18(var18);
plot19(var19);
plot20(var20);
plot21(var21);
plot22(var22);
plot23(var23);
plot24(var24);
plot25(var25);
plot26(var26);
plot27(var27);
plot28(var28);
plot31(var31);
plot32(var32);
plot33(var33);
plot34(var34);
plot35(var35);
plot36(var36);
plot37(var37);
plot38(var38);
plot39(var39);
plot40(var40);
plot41(var41);
plot42(var42);
plot43(var43);
plot44(var44);
plot45(var45);
plot46(var46);
plot47(var47);
plot48(var48);
----------------------------------------------------------------------------------
var : nday(0),week(0),Exdate(false);
var : HH(0),LL(0);
nday = date - int(date/100)*100;
week = DayOfWeek(date);
if nday >= 8 and nday <= 14 and
week == 4 then
Exdate = true;
Else
Exdate = false;
if bdate != bdate[1] and Exdate == false and Exdate[1] == true Then
{
var1 = sdate;
HH = H;
LL = L;
}
if sdate == var1 Then
{
value1 = daylow;
value2 = DayHigh;
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
plot1(DayHigh(1),"전일고가");
plot2(daylow(1),"전일저가");
plot3(DayOpen(0),"전일시가");
if HH > 0 and LL > 0 then
{
plot4(HH,"월고");
plot5(LL,"월저");
}
plot6(value1,"월물첫날저가");
plot7(value2,"월물첫날고가");
----------------------------------------------------------------------------
input : N(0);
Plot1(dayOpen(N), "시가");
Plot2(dayHigh(N), "고가");
Plot3(dayLow(N), "저가");
-------------------------------------------------------------------------------
plot1(1.20);
plot2(1.72);
plot3(2.50);
plot4(3.50);
plot5(4.85);
plot6(5.10);
plot7(6.85);
plot8(7.10);
plot8(8.10);
-------------------------------------------------------------------------------
Var : nday1(0,data1),week1(0,data1),cond1(false,data1),daycnt1(-1,data1),val1(0,data1);
var : h1(0,data1),l1(0,data1);
Var : nday2(0,data2),week2(0,data2),cond2(false,data2),daycnt2(-1,data2),val2(0,data2);
var : h2(0,data2),l2(0,data2);
nday1 = data1(Date - Int(Date/100)*100);
week1 = data1(DayOfWeek(Date));
If nday1 >= 8 And nday1 <= 14 And week1 == 4 Then
Cond1 = true;
Else
Cond1 = false;
if data1(date != date[1] and cond1 == false and cond1[1] == true) Then
daycnt1 = 0;
if data1(date != date[1]) Then
{
daycnt1 = daycnt1+1;
if daycnt1 == 1 Then
{
H1 = data1(h);
L1 = data2(L);
}
}
if daycnt1 == 1 Then
val1 = data1(lowd(0));
if daycnt1 >= 1 then
{
if data1(H) > h1 Then
h1 = data1(h);
if data1(L) < L1 Then
L1 = data1(L);
}
nday2 = data2(Date - Int(Date/100)*100);
week2 = data2(DayOfWeek(Date));
If nday2 >= 8 And nday2 <= 14 And week2 == 4 Then
Cond2 = true;
Else
Cond2 = false;
if data2(date != date[1] and cond2 == false and cond2[1] == true) Then
daycnt2 = 0;
if data2(date != date[1]) Then
{
daycnt2 = daycnt2+1;
if daycnt2 == 1 Then
{
h2 = data2(h);
l2 = data2(l);
}
}
if daycnt2 == 1 Then
val2 = data2(lowd(0));
if daycnt2 >= 1 then
{
if data2(H) > h2 Then
h2 = data2(h);
if data2(L) < L2 Then
L2 = data2(L);
}
plot1(data1(highD(1)),"d1전일고가");
plot2(data1(LowD(1)),"d1전일저가");
plot3(val1,"d1첫날저가");
plot4(h1,"d1월고");
plot5(l1,"d1월저");
plot6(data2(highD(1)),"d2전일고가");
plot7(data2(LowD(1)),"d2전일저가");
plot8(val2,"d2첫날저가");
plot9(h2,"d2월고");
plot10(l2,"d2월저");
2018-12-20
396
글번호 124645
답변완료
60563 이어서 문의드려요
수고 많으십니다.
주신 수식을 복사 후
한국투자증권의 글로벌 예스트레이더의 언어 편집기에
복사 후 붙여넣기 / 그리고 검증을 누르니 오류가 많이 뜹니다.
제가 뭘 또 잘못했을까요?
2018-12-20
361
글번호 124644
답변완료
문의드립니다.
현재 스토캐스틱 80구간 상향 돌파시 매수, 20구간 하향돌파시 매도하라는 식을 쓰고있습니다.
Input : Period(12), Period1(5), Period2(5);
Var : value(0);
value = StochasticsK(Period,Period1);
value1 = StochasticsK(Period,Period1);
value2 = StochasticsD(Period,Period1,Period2);
# 매수/매도청산
If CrossUP(value, 80) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 20) Then
{
Sell();
}
=====================================================
덧붙여서 손절공식을 추가로 넣고싶은데,
80구간상향돌파시 매수했는데, k선이 d선을 하향 이탈할때 손절청산
20구간하향돌파시 매도했는데, k선이 d선을 상향 이탈할때 손절청산
의 식을 만들고싶습니다.
k선d선돌파는 청산기능만 작동되도록 부탁드립니다.
2018-12-20
313
글번호 124639
답변완료
60536 번 문의
작성해주신 수식을 넣었는데
아래 그림처럼 오류가 나옵니다.
증권사는 한국투자증권에서
전략작성 - 언어편집기 - 새전략 (비주얼 베이직, 신호로 선택)
으로 해서 붙여넣기 후 사용 중입니다.
2018-12-20
360
글번호 124632
답변완료
수식 문의 드립니다.
이평을 상하향 돌파할때 관리자님이 올려주신 수식입니다.
input : P(20);
var1 = ma(C,P);
if crossup(c,var1) Then
buy();
if CrossDown(c,var1) Then
sell();
이것을 일분봉 기준으로 오분 또는 십분 봉에서 동시에 조건이 만족할때 신호가 나오도록 하는 수식이 궁금합니다.
아 그리고 봉완성전 조건만족시 예스시스템상 봉완성시에만 진입이 되는데 조건을 만족할때 전봉과 현재가를 비교해서 가능한한 바로 진입이 되도록 하는것도 부탁좀 드립니다.
2018-12-20
294
글번호 124627
관리자에 의해 자유게시판으로 이동되었습니다
2018-12-20
18
글번호 124621
답변완료
수식부탁드립니다
#,보내주신 수식 잘 사용하고 있습니다 진심으로 감사드립니다.
ㅡ,추가질문입니다,*60543 답변수식에서 동일호가 추세선 연결시점을 텍스트호가 출력시점
으로 하고 싶습니다 수식에는 저점동일호가(쌍바닥) 연결추세선이 고점파동이 완성될때
추세선이 그려지는것 같습니다,이렇게 되면 장중에 저점 쌍바닥패턴이나 고점 쌍봉패턴에
진입하려는 타이밍을 놓치는 경향이 있어서 그럽니다,
파동의 완성과 상관없이 호가 텍스트출력과 동시에 동일호가를 추세선으로 연결하고 싶은데
자꾸 에러가 뜨네요~ㅠ
도움 부탁 드립니다.
2018-12-20
353
글번호 124620
답변완료
질문입니다.
예스렝귀지로 코스피선물에서 시스템을 작성하고,
예스스팟으로 예스렝귀지 시스템을 어디까지 컨트롤 할 수 있는지 질문입니다.
예를들어,
예스렝귀지에서 매수시그널을 매도시그널로 전환하고,
매도시그널을 매수시그널로 바꾸어서 진입하도록 하는 것도 가능한가요?
그외에 시그널 발생 가격보다 시기를 일정기간 늦추어 진입하거나,
발생가격보다 일정가격 위나 아래에 도달했을때 진입하게 하는것이 가능한지 궁금합니다.
또, atstop을 atlimit 등 다른 타입으로 바꿀수도 있는지 궁금하네요.
답변 언제나 감사합니다.
2018-12-20
305
글번호 124619
답변완료
문의 드립니다.
항상 고맙습니다.
예를 들어
수식1)
60분전(변수로 입력)에서 부터 현재까지의 최고가 최저가의 차이값(진폭)을 지표로
수식2)
1일전 2일전 3일전 n일전(변수)의
60분전(변수)에서 부터 현재까지의 최고가 최저가의 차이값의 평균값(평균진폭)을
당일에 지표로 나타 나도록 부탁 드립니다.
2018-12-20
305
글번호 124618