커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4379
글번호 230811
답변완료
문의드립니다.
예스랭귀지로 짠 전략을 실전전략차트에 걸었을때
수식에서의 entryprice(1) 이나 entryprice(2) 이 아직 발생하지 않았다면
entryprice(1) 이나 entryprice(2) 는 어떤값을 반환하나요?
가령 예를 들자면 직전진입가보다 높을때만 매수 들어가는 식인데
만봉의 전략차트에서는 직전진입가가 없는 경우 말입니다.
답변 부탁드립니다.
감사합니다.
2018-04-27
216
글번호 118535
답변완료
주말 잘보내시고 잘부탁드려요
수식1
if(MACD(short,long)>eavg(MACD(short,long),signal),
if(sar(af,maxaf)<c,2,1),
if(sar(af,maxaf)>c,-2,1))
지표조건설정
short 8
long 180
signal 25
af 0.009
maxaf 0.03
2018-04-27
218
글번호 118534
답변완료
잘 부탁드립니다
키움지표입니다 오실레이터 지표로 부탁드려요
수식1
A=(SMI = eavg(eavg(c-(highest(H,g) + lowest(L,g))*0.5,r),s) * 100/
(0.5 * eavg(eavg(highest(H,g)-lowest(L,g),r),s)));
if(A>=A(1),A,0)//상승
수식2
A=(SMI = eavg(eavg(c-(highest(H,g) + lowest(L,g))*0.5,r),s) * 100/
(0.5 * eavg(eavg(highest(h,g)-lowest(L,g),r),s)));
if(A<=A(1),A,0)//하락
수식3
0
지표조건설정
g 100
r 5
s 100
2018-04-27
326
글번호 118533
답변완료
함수요청
안녕하세요?
함수 수정 요청드립니다.
아래 전략을 항셍 5분봉으로 사용하고 있습니다.
최근 5개의 고저점을 파악하야 추세추종한다는 전략인데
청산된 봉 이후부터 재진입을 탐색하며
매일 아침마다 생성되는 NN개의 봉을 제거하고 NN+1개봉 부터 진입이든 청산이든 신호를 탐색하며 청산된 봉에 재진입을 하지 않고 청산된 그 이후부터 재진입을 탐색하고자 합니다.
함수수정 요청드립니다.
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
if MarketPosition == 1 then
{
ExitLong("bl",AtStop,EntryPrice*0.99);
ExitLong("bp",Atlimit,EntryPrice*1.03);
}
if MarketPosition == -1 then
{
ExitShort("sl",AtStop,EntryPrice*1.01);
ExitShort("sp",Atlimit,EntryPrice*0.97);
}
SetStopInactivity(3,23,percentStop);
2018-04-27
226
글번호 118530
답변완료
60이평 가로 수평선
아래 수식은 키움 수식인데 예스 수식으로 작성해주시면 감사하겠습니다
수식1 valuewhen(1,avg(c,period)>avg(c,period,1),avg(c,period))
수식2 valuewhen(1,avg(c,period)<avg(c,period,1),avg(c,period))
수식3 avg(c,period)
지표 조건 설정 period 60
2018-04-27
328
글번호 118529
답변완료
수식부탁드립니다.
안녕하세요.
늘 도움 감사합니다.
아래의 수식가운데...tema 25 선 위에는 붉은색강조로...
tema 25 선 아래는 파란색강조로 변경 부탁드립니다.
INPUTS: P1(4),P2(6),P3(8),P4(10),P5(12),P6(25);
VARS: TEMA3(0),TEMA4(0),TEMA5(0),TEMA6(0),TEMA7(0),TEMA8(0),TEMA9(0),TEMA10(0);
vars : line20(0),line60(0),line100(0);
TEMA3 = tema(p1);
TEMA4 = tema(p2);
TEMA5 = tema(p3);
TEMA6 = tema(p4);
TEMA7 = tema(p5);
TEMA8 = tema(p6);
PLOT1(TEMA3,"TEMA3");
PLOT2(TEMA4,"TEMA4");
PLOT3(TEMA5,"TEMA5");
PLOT4(TEMA6,"TEMA6");
PLOT5(TEMA7,"TEMA7");
PLOT6(TEMA8,"TEMA8");
2018-04-27
231
글번호 118527
답변완료
수식수정부탁드립니다
###,아래수식에서 질문입니다
1,수식적용시 피봇 등분선 가격표시로 출력된 r[1]값에서 r[5]값까지를 호가값은 삭제하고
아래와같이 비율 표시로만 수정하여 표시하고 싶습니다,
ㅡ,상승파통시 파동저점에서부터(23.6/38.2/50/61.8/76.4)순서로 수치만표시(소수점1자리만)
ㅡ,하락파동시 파동고점에서부터(23.6/38.2/50/61.8/76.4)순서로 수치만 표시되게 부탁
드립니다 .
2,피봇 등분선 비율표시중 r[3]선만 굵기를 현재보다 한단계 굵게 하고싶습니다.
Input:ShortPeriod(5),LongPeriod(20),선두께(2),상승색(CYAN), 하락색(YELLOW);
Var:j(0),ma1(0),ma2(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0),ZZ[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0);
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
ma1 = ma(C,ShortPeriod);
ma2 = ma(C,LongPeriod);
If ma1 < ma2 Then
{
If ma1[1] >= ma2[1] Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
ZZ[j+1] = ZZ[j];
}
LoVal[0] = L;
LoBar[0] = 0;
ZZ[0] = L;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+"틱수:"+NumToStr(abs(value11-value11[1])/PriceScale,0));
Text_SetStyle(tx,2,1);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
TL2[j] = TL_New(date21,time21,fr[j],date22,time22,fr[j]);
TL_SetColor(TL2[j],MAGENTA);
tx1 = Text_New(date22,time22,fr[j], NumToStr(fr[j],2));
Text_SetStyle(tx1,0,0);
}
}
Else If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
ZZ[0] = L;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
TL_SetEnd(TL2[j],date22,time22,fr[j]);
}
}
}
Else If ma1 > ma2 Then
{
If ma1[1] <= ma2[1] Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
ZZ[j+1] = ZZ[j];
}
HiVal[0] = H;
HiBar[0] = 0;
ZZ[0] = H;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+"틱수:"+NumToStr(abs(value11-value11[1])/PriceScale,0));
Text_SetStyle(tx,2,0);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
TL3[j] = TL_New(date31,time31,fr[j],date32,time32,fr[j]);
TL_SetColor(TL3[j],blue);
tx1 = Text_New(date22,time22,fr[j],NumToStr(fr[j],2));
Text_SetStyle(tx1,0,0);
}
}
Else If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
ZZ[0] = H;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
for j = 0 to 6
{
TL_SetEnd(TL3[j],date32,time32,fr[j]);
}
}
}
TL_SetSize(TL1,선두께);
###$,언제나 늘 고맙습니다.
2018-04-27
229
글번호 118522
답변완료
지표 함수 기능 버그인지 문의 드립니다.
Upvol
DownVol
지표중에 이 2개 함수문의 드립니다..
전 2개 함수가 체결량이 매수였으면 upvol 매도였으면 downvol 인줄 알고 사용하고 있었는데요.
이 함수가 차트에서 오류인 모습을 보고 문의 드립니다.
한진칼 차트에서 빨간박스에서 9시8분24초에 확인한 시간이고요.
주황박스에서 채결량이 2876 매수였음을 확인했습니다.
그런데 함수를 이용하여 확인한 체결량이 매도 채결로 확인이 되네요.
체결창을 확인하면 9시7분 9초부터 24700원 가격에 채결되는 모습이
매수도 있고 매도 있는 모습입니다...
함수 기능이 체결창의 채결량을 표시해주는 기능인것인지..
아니면 단순하게 체결가가 상승/하락시 채결량을 표시하는것인지...
채결가가 상승하면서 나온 거래량이 upvol
하락하면서 나온 거래량이 downvol
같은 가격으로 채결가가 더 나오면 이전에 상승했으면 매수채결량 하락했었으면 매도 채결량을
표시한것인지 알고 싶습니다....
보여드린 한진칼 차트는
같은가격에 매수도 있었고 매도도 있었고 하는 모습이거든요...
그런데 이전에 하락했던 채결가 거래량을 따라가는 모습이여서 문의 드립니다.
그렇다면 분봉에서 upvol - downvol 이 순매수채결량이 아니라는거지요?
2018-04-27
285
글번호 118518
답변완료
수식 부탁드립니다
수식 작성에 많은 도움주셔서
매번 감사드립니다
전략은 이렇습니다.
매수조건.ㅡ 1시간봉 챠트에서
하루의 마지막봉이 양봉이면 종가매수
매도조건. ㅡ 익일 시초가매도.
2018-04-27
219
글번호 118517