커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1531
글번호 230811
답변완료
Text_GetString
var : str(" ");
Text4 = Text_New(sDate, sTime, H, "시험");
Text_SetStyle(Text4, 2, 0);
Text_SetBold(Text4,1);
Text_SetSize(Text4,24);
Text_SetColor(Text4,Red);
str = Text_GetString(Text4); // 리턴값은 문자형 변수
MessageLog("> TEST : [" + str + "]");
메뉴얼에 있는 예제입니다.
프로그램이 죽는 이유가 뭔가요?
조언 부탁드립니다.
2025-08-12
213
글번호 193201
답변완료
검색식 부탁드려요 항상 감사합니다.
1번조건
볼린저밴드(20,2) 상단선의 5봉전부터 1봉전까지의 변동률이 0.5%이내 (또는 기간내 상단선값의 고가 저가 차이가 0.5%)로 수평 횡보
2번조건
어제까지 수평 횡보중인 볼린저밴드(20,2) 상단선을 볼린저밴드(10,2) 상단선이 0봉(당일)에 돌파(crossup)
3번조건
오늘의 종가가 60봉전의 볼린저밴드(20,2) 상단선 돌파 또는 상단선 위에 위치
4번조건
거래량 전일대비 150%이상
2025-08-12
214
글번호 193200
답변완료
종목검색식 부탁드립니다
1. 당일 상승한 모든종목 검색식 부탁드립니다
2025-08-13
199
글번호 193198
답변완료
문의 드립니다.
안녕하세요 ~
아래의 신호 수식에 대한 종목 검색식 부탁드립니다.
a=c/avg(c,5)*100;
a(1)>=99.5
and a(1)<=100.5
&& V(1) < lowest(V(2), 6)
&& C>O
&& C<predayclose()*1.15
&& CCI(9)<0
&& C<predayHIGH()
감사합니다.
2025-08-12
191
글번호 193197
답변완료
문의
엔벨로프 하한선이 기간내 최고거래량 상단선을 돌파하는 종목을 검색하고 싶어요
2025-08-12
193
글번호 193196
답변완료
종목 검색식 부탁합니다
지표의 형태에 대해서 공부 중입니다
아래와 같은 경우의 종목검색식 부탁드립니다
1)주가가 150일 또는 200일 이동 평균선 위에 있음
2)150일 이평선이 200일 이평선 위에 있음
3) 200일 이평선이 확실한 상승세를 보임
4) 고점과 저점이 연이어 높아짐
5) 주봉 상승 시 거래량 증가, 주봉 하락 시 거래량이 감소함
6) 52주 신저가의 최소 25%~30%에 있는 종목
2025-08-12
217
글번호 193193
답변완료
(2차질문)해외선물 정규장 초기 15분 또는 30분간의 최고저
안녕하세요.
추가 질문이 있습니다.
작성해 주신 코드를 제가 해독하는 능력이 떨어지다보니, 잘 이해가 안됩니다.
CME 선물의 거래시간에 대해서 다시 정의해 드리오니,
앞서 작성해 주신 코드가 이 거래시간 흐름에 적합 할까요?
- [오버나잇세션] 시카고시간 17:00 ~ 다음날 8:30 (한국시간 8:00~23:30, 서머타임시 7:00~22:30) Business Day가 현지시간 17:00에 변경됨
- [정규장+연장] 시카고시간 8:30 ~ 16:00 (한국시간 23:30~다음날7:00, 서머타임시 22:30~다음날 6:00)
- [휴장] 시카고시간 16:00~17:00 (한국시간 7:00~8:00, 서머타임시 6:00~7:00)
위 시간 흐름 중에서 장 초기 15분~30분(N분) 채널을 삼고 싶은 시간은 정규장 시작 시간, 즉, 현지시간 8:30부터 (한국시간 22:30 또는 서머타임 23:30) 부터입니다.
그리고 SetStopEndofday()로 청산을 하는 것은 휴장시간 직전 즉, 현지시간 15:30 (한국시간 6:30 또는 서머타임 7:30)입니다.
감사합니다.
-----------------------------------------------------------------------
// 먼저 작성해 주신 코드
안녕하세요
예스스탁입니다.
당일청산함수는 지정한 시간이후에 밤 0시까지 진입을 막게 됩니다.
08시 청산이면 그날 밤 0시까지 진입이 없게 되므로
적절한 시점에 당일청산 해제를 해주셔야 합니다.
input : N(15),Endtime(80000);
var : ST(0),S1(0),D1(0),T(0),TM(0),TM1(0);
var : HH(0),LL(0);
if sdate != sDate[1] Then
SetStopEndofday(Endtime);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
if sTime < 80000 Then
ST = 223000;
Else
ST = 233000;
T = 0;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if ST > 0 and
((sDate != sDate[1] and sTime >= Endtime) or
(sDate == sDate[1] and sTime >= Endtime and sTime[1] < Endtime)) Then
{
T = 2;
}
if ST > 0 and
((sDate != sDate[1] and sTime >= ST) or
(sDate == sDate[1] and sTime >= ST and sTime[1] < ST)) Then
{
T = 1;
TM1 = TM;
SetStopEndofday(0); #해제
HH = H;
LL = L;
}
if T == 1 Then
{
if TM < TM1+N Then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if TM >= TM1+N Then
{
if crossup(c,HH) Then
Buy("b");
if CrossDown(c,LL) Then
Sell("s");
}
}
}
즐거운 하루되세요
> 알이랑 님이 쓴 글입니다.
> 제목 : 해외선물 정규장 초기 15분 또는 30분간의 최고, 최저 구하고, 다음날 청산 방법
> CME 해외선물의 정규장 초기 구간(10분 또는 30분)을 채널 기준으로 삼고자 합니다.
한국시간으로 대략 22:30 (서머타임시) 또는 23:30 부터 시작입니다.
1분봉, 5분봉, 30분봉 등의 차트에서
22:30 부터 15분간의 최고, 최저 가격을 각각 HH, LL 변수에 할당하는 방법이 궁금합니다.
또한 그 다음날 아침 8:00 에 SetStopEndofday() 하는 방법도 궁금합니다.
아래 시스템식은 수식작성 예제의 "30MBO 전략"을 참조한 것입니다.
[시스템식]
var : HH(0),LL(0);
if stime >= 223000 and stime < 2245000 Then{
HH ??
LL ??
}
if stime >= 224500 and stime < 74500 and crossup(c,HH) then
buy();
if stime >= 224500 and stime < 74500 and CrossDown(c,LL) then
sell();
SetStopEndofday(80000);
감사합니다.
2025-08-12
279
글번호 193192
답변완료
시스템 수식 문의 드립니다.
매수 후에 1 point 또는 1% 이상의 하락이 있으면서 3 포인트 3% 손절에 걸리지 않았을 경우 기존 목표 수익 5 포인트 가 아닌 2.5 포인트에 익절하라.
============================
수식 부탁 드립니다.
감사합니다.
2025-08-12
209
글번호 193190
답변완료
Re : Re : 수식수정요청
안녕하세요 답변 감사합니다 제가 수식을 잘못올려드렸습니다
다시 수정 부탁드립니다
아래 수식에서 기존은 그대로 두고 중심만 상승 노란색 하락 파란색으로 두께을 굵게 수정해주세요
input : af(0.01), maxAF(0.1),추세선두께(1),추세선색1(YELLOW),추세선색2(CYAN),연장선두께(2),연장선색(blue);
input : 텍스트출력(1);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0);
var : TL1(0),TL2(0),cnt(0),count(0);
var : TL3(0),TL4(0),TL5(0),TL6(0),tx1(0),tx2(0),tx11(0),tx22(0);
Var : TL11(0),TL22(0);
var1 = CSar(af,maxAF);
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
HH1 = HH[1];
HD1 = HD[1];
HT1 = HT[1];
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
#TL3 = TL_new(HD[1],HT[1],HH[1],sdate,stime,HH[1]);
#TL4 = TL_new(HD[1],HT[1],(HH[1]+LL)/2,sdate,stime,(HH[1]+LL)/2);
#TL5 = TL_new(HD[1],HT[1],LL,sdate,stime,LL);
#TL6 = TL_new(HD[1],HT[1],HH[1]+(HH[1]-LL[1])/2,sdate,stime,HH[1]+(HH[1]-LL)/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx11 = Text_New(HD1,HT1,HH1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(HH1,2));
Text_SetStyle(tx11,2,1);
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
TL11 = TL_New(HD1,HT1,HH1,HD,HT,HH);
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
LL1 = LL[1];
LD1 = LD[1];
LT1 = LT[1];
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
#TL3 = TL_new(LD[1],LT[1],HH,sdate,stime,HH);
#TL4 = TL_new(LD[1],LT[1],(HH+LL[1])/2,sdate,stime,(HH+LL[1])/2);
#TL5 = TL_new(LD[1],LT[1],LL[1],sdate,stime,LL[1]);
#TL6 = TL_new(LD[1],LT[1],LL[1]-(HH-LL[1])/2,sdate,stime,LL[1]-(HH-LL[1])/2);
//추세선 오른쪽 연장설정
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
TL_SetExtRight(TL6,true);
if 텍스트출력 == 1 then
{
Tx22 = Text_New(LD1,LT1,LL1,NumToStr((HH1-LL1)/PriceScale,0)+NewLine+NumToStr(LL1,2));
Text_SetStyle(tx22,2,0);
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
TL22 = TL_New(LD1,LT1,LL1,LD,LT,LL);
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
TL_SetEnd(TL11,HD,HT,HH);
if 텍스트출력 == 1 then
{
Text_Delete(tx1);
Tx1 = Text_New(HD,HT,HH,NumToStr((HH-LL[1])/PriceScale,0)+NewLine+NumToStr(HH,2));
Text_SetStyle(tx1,2,1);
}
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
TL_SetEnd(TL22,LD,LT,LL);
if 텍스트출력 == 1 then
{
Text_Delete(tx2);
Tx2 = Text_New(LD,LT,LL,NumToStr((HH[1]-LL)/PriceScale,0)+NewLine+NumToStr(LL,2));
Text_SetStyle(tx2,2,0);
}
}
}
#추세선 두께, 색상
TL_SetSize(TL1,추세선두께);
TL_SetSize(TL11,추세선두께);
TL_SetSize(TL2,추세선두께);
TL_SetSize(TL22,추세선두께);
TL_SetColor(TL1,추세선색1);
TL_SetColor(TL11,추세선색1);
TL_SetColor(TL2,추세선색2);
TL_SetColor(TL22,추세선색2);
#연장선 두께, 색상
TL_SetSize(TL3,연장선두께);
TL_SetSize(TL4,연장선두께);
TL_SetSize(TL5,연장선두께);
TL_SetSize(TL6,연장선두께);
TL_SetColor(TL3,연장선색);
TL_SetColor(TL4,연장선색);
TL_SetColor(TL5,연장선색);
TL_SetColor(TL6,연장선색);
2025-08-12
220
글번호 193189