커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1544
글번호 230811
답변완료
수식 변경 부탁드립니다
안녕하세요
키움 수식입니다
예스 수식으로 변경 부탁 드립니다
감사합니다
■ RSI Signal선과 기준선 50라인 색상 입히기
-수식1 RSI %Period%
RSI(Period)
-수식2 Signal %Signal%
eavg(RSI(Period), Signal);
-지표조건
Period 14
Signal 9
-라인설정
RSI
선 빨강
과열 진핑크, 기준값 50
침체 연청색, 기준값 50
Signal
선 청색
2023-03-26
1222
글번호 167537
2wnwn 님에 의해서 삭제되었습니다.
2023-03-27
16
글번호 167536
답변완료
예비신호
81364 의 예비신호 다시 질문드립니다.
답변에 ONCLOSE 일때만 신호가 발생한다고 했는데.. 제프로그램은 전부 AtMarket 입니다.
어는것은 시스템 모니터에 예비신호가 나오고 어떤것은 나오지 않습니다.
?????
안녕하세요?
예비신호에 나오는 프로그램이 잇고 없는 프로그램이 있습니다.
어떻게 해야 예비 신호가 전부 나오나요?
Sell("S",Atmarket,def,1);
감사합니다.
2023-03-27
1088
글번호 167535
답변완료
수식부탁드립니다
주가등락률 :[일] 1봉전(중) 종가대비 0봉전 시가등락률 5.0% 이하
거래량비율 (n봉) : [일] 1봉전 거래량 대비 0봉전 거래량 비율 200.0% 이상
기간내 주가변동폭 : [일]0봉전까지 10봉간 최고최저폭 150.0% 이하
주가비교 : [일]0봉전 시가 < 0봉전 종가
기간내 거래대금 : [일]0봉전 20봉이내 거래대금(일/주:백만,분:;천원) 50000이상 1회이상
가격-이동변균 비교 :[일]0봉전 (종가 20) 이평 < 종가
이평이격도 : [일]0봉전 (종가 1, 종가5 ) 10%이내 근접 1회이상
주가이평배열 (3) : [일] 0봉전 5이평 > 20이평 > 60이평
주가이평추세 [일] 0봉전 (종가 120) 이평 상승추세유지 2회 이상
2023-03-26
1080
글번호 167534
답변완료
수정부탁드립니다
변곡점마다 수치,수직선표시 및 변곡점변경시 사각box색상 부탁드립니다
1)
Input:변동률(2),레벨0(1),레벨1(1),레벨2(1),레벨3(1),레벨4(1);
Var:고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),TL[15](0);
//=========================================================//
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 레벨0 == 1 Then {
If 최종상태[0] == 고점 Then {
If 처리구분[0] == 신규 Then TL[0] = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 처리구분[0] == 연장 Then TL_SetEnd(TL[0],고[1,3],고[1,4],고[1,1]);
}
If 최종상태[0] == 저점 Then {
If 처리구분[0] == 신규 Then TL[0] = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 처리구분[0] == 연장 Then TL_SetEnd(TL[0],저[1,3],저[1,4],저[1,1]);
}
TL_SetColor(TL[0],BLACK); TL_SetSize(TL[0],1);
}
If 레벨1 == 1 Then {
If 최종상태[1] == 고점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(저[2,13],저[2,14],저[2,11],고[2,13],고[2,14],고[2,11]);
TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
}
If 최종상태[1] == 저점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(고[2,13],고[2,14],고[2,11],저[2,13],저[2,14],저[2,11]);
TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
}
TL_SetColor(TL[1],BLUE); TL_SetSize(TL[1],2);
TL_SetColor(TL[2],BLUE); TL_SetSize(TL[2],2);
TL_SetColor(TL[3],BLUE); TL_SetSize(TL[3],2);
}
If 레벨2 == 1 Then {
If 최종상태[2] == 고점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(저[2,23],저[2,24],저[2,21],고[2,23],고[2,24],고[2,21]);
TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
}
If 최종상태[2] == 저점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(고[2,23],고[2,24],고[2,21],저[2,23],저[2,24],저[2,21]);
TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
}
TL_SetColor(TL[4],MAGENTA); TL_SetSize(TL[4],3);
TL_SetColor(TL[5],MAGENTA); TL_SetSize(TL[5],3);
TL_SetColor(TL[6],MAGENTA); TL_SetSize(TL[6],3);
}
If 레벨3 == 1 Then {
If 최종상태[3] == 고점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(저[2,33],저[2,34],저[2,31],고[2,33],고[2,34],고[2,31]);
TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
}
If 최종상태[3] == 저점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(고[2,33],고[2,34],고[2,31],저[2,33],저[2,34],저[2,31]);
TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
}
TL_SetColor(TL[7],RED); TL_SetSize(TL[7],4);
TL_SetColor(TL[8],RED); TL_SetSize(TL[8],4);
TL_SetColor(TL[9],RED); TL_SetSize(TL[9],4);
}
If 레벨4 == 1 Then {
If 최종상태[4] == 고점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(저[2,43],저[2,44],저[2,41],고[2,43],고[2,44],고[2,41]);
TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
}
If 최종상태[4] == 저점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(고[2,43],고[2,44],고[2,41],저[2,43],저[2,44],저[2,41]);
TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
}
TL_SetColor(TL[10],BWHITE); TL_SetSize(TL[10],5);
TL_SetColor(TL[11],BWHITE); TL_SetSize(TL[11],5);
TL_SetColor(TL[12],BWHITE); TL_SetSize(TL[12],5);
}
2)지그재그표시가 불안정합니다.
수정부탁드립니다.
Input:hRate(1),하락색(LimE),상승색(Red),색상뚜게(40),선굵기(1);
Var:J(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),Trnd(0),Trnd1(0),
dateF11(0),dateF12(0),timeF11(0),timeF12(0),TL1(0),수정TL(0),box(0),
dateF21(0),dateF22(0),timeF21(0),timeF22(0);
Array:hiVal[10](0),loVal[10](0),hiBar[10](0),loBar[10](0);
upRate = 1 + (hRate/100);
dnRate = 1 - (hRate/100);
for J = 1 to 9 {
loBar[J] = loBar[J] + 1;
hiBar[J] = hiBar[J] + 1;
}
if hiVal[0] <= H or hiVal[0] == 0 then {
hiVal[0] = H;
hiBar[0] = 0;
}
else {
hiBar[0] = hiBar[0] + 1;
}
if loVal[0] >= L or loVal[0] == 0 then {
loVal[0] = L;
loBar[0] = 0;
}
else {
loBar[0] = loBar[0] + 1;
}
if Trnd != dnTr && hiVal[0] > H && hiVal[0] * dnRate > L then Trnd = dnTr;
else if Trnd != upTr && loVal[0] < L && loVal[0] * upRate < H then Trnd = upTr;
if Trnd[1] == upTr and Trnd == dnTr then {
for J = 8 downto 1 {
hiVal[J+1] = hiVal[J];
hiBar[J+1] = hiBar[J];
}
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
dateF11 = date[loBar[1]];
timeF11 = stime[loBar[1]];
Value81 = loVal[1];
dateF12 = date[hiBar[1]];
timeF12 = stime[hiBar[1]];
Value92 = hiVal[1];
Text_New(sdate,stime,Value92,"하락"+NumToStr(Value92,2));
TL1 = TL_New(dateF11,timeF11,Value81,dateF12,timeF12,Value92);
}
if Trnd[1] == dnTr and Trnd == dnTr and
hiVal[1] < hiVal[0] and
hiVal[0] * dnRate > L then {
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
dateF12 = date[hiBar[1]];
timeF12 = stime[hiBar[1]];
Value92 = hiVal[1];
TL_SetEnd(TL1, dateF12,timeF12,Value92);
}
if Trnd[1] == dnTr and Trnd == upTr then {
for J = 8 downto 1 {
loVal[J+1] = loVal[J];
loBar[J+1] = loBar[J];
}
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
dateF11 = date[hiBar[1]];
timeF11 = stime[hiBar[1]];
Value91 = hiVal[1];
dateF12 = date[loBar[1]];
timeF12 = stime[loBar[1]];
Value82 = loVal[1];
Text_New(sdate,stime,Value82,"상승"+NumToStr(Value82,2));
TL1 = TL_New(dateF11,timeF11,Value91,dateF12,timeF12,Value82);
}
if Trnd[1] == upTr and Trnd == upTr and
loVal[1] > loVal[0] and
loVal[0] * upRate < H then {
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
dateF12 = date[loBar[1]];
timeF12 = stime[loBar[1]];
Value82 = loVal[1];
TL_SetEnd(TL1, dateF12,timeF12,Value82);
}
TL_SetSize(TL1,2);
2023-03-26
1330
글번호 167533
답변완료
식 수정부탁드립니다.
안녕하세요, 아래식 수정 부탁드립니다.
1. 매수
a. 지정한 날짜(20230302) 23년3월2일 이후로만 매수작동
매수되면 더이상 매수하지않고 매도만 작동
매수발생 안되면 다음날 매수진행
b. 지정한가격보다 낮은가격에서 돌파시 매수
c.시초가(900원)가 지정한 매수가격(1000원)보다 낮을때 매수가격에서 매수작동
d.시초가(1000원)가 지정한 매수가격(1000원)보다 같을때 매수가격에서 매수작동
e.시초가(1100원)가 지정한 매수가격(1000원)보다 높으면 해당일 매수 작동 안함
2. 매도,손절
a.매도,손절 지정가격이 되었거나 그 이상으로 갭상승이나 갭하락시 시장가 청산작동
b.매도,손절 작동되면 그이후로 작동하지않음
(분봉적용)확인부탁드립니다.
--------------------------------------------
안녕하세요
예스스탁입니다.
input : 날짜(20230302),매수가격(1000),익절가격(1200),손절가격(800);
if NextBarSdate >= 20230302 Then
{
if NextBarSdate != sDate Then
{
if NextBarOpen <= 매수가격 Then
Buy("b1",AtStop,매수가격);
}
Else
{
if DayHigh < 매수가격 Then
Buy("b",AtStop,매수가격);
}
if MarketPosition == 1 Then
{
ExitLong("bp",AtLimit,익절가격);
ExitLong("bl",AtStop,손절가격);
}
}
즐거운 하루되세요
2023-04-02
1251
글번호 167532
답변완료
수식
안녕하세요.
당일 첫봉부터 시작하는 Stochastic 부탁드립니다.
감사합니다.
2023-03-26
1304
글번호 167531
답변완료
문의드립니다
코스피 , 코스닥 지수를 볼려면 어떻게 해야 하나요?
지수차트에 만든 지표들과 같이 보고싶습니다
2023-03-26
871
글번호 167530
매버릭 님에 의해서 삭제되었습니다.
2023-03-25
0
글번호 167529