커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1516
글번호 230811
답변완료
수식문의
수고하십니다.
친절한 답변 감사드립니다.
문의) 텍스트 출력값을 추세선처럼 오른쪽으로 확장하여 표현할 수 있는지요
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
if index == 0 Then
{
value1 = sdate;
value2 = stime;
}
TL_Delete(var1);
TL_Delete(var2);
TL_Delete(var3);
TL_Delete(var4);
TL_Delete(var5);
var1 = TL_New(value1,value2,Pivot,sdate,stime,Pivot);
var2 = TL_New(value1,value2,R1,sdate,stime,R1);
var3 = TL_New(value1,value2,R2,sdate,stime,R2);
var4 = TL_New(value1,value2,S1,sdate,stime,S1);
var5 = TL_New(value1,value2,S2,sdate,stime,S2);
TL_SetExtRight(var1,true);
TL_SetExtRight(var2,true);
TL_SetExtRight(var3,true);
TL_SetExtRight(var4,true);
TL_SetExtRight(var5,true);
#색상
TL_SetColor(var1,Black);
TL_SetColor(var2,Black);
TL_SetColor(var3,Black);
TL_SetColor(var4,Black);
TL_SetColor(var5,Black);
#굵기
TL_SetSize(var1,1);
TL_SetSize(var2,1);
TL_SetSize(var3,1);
TL_SetSize(var4,1);
TL_SetSize(var5,1);
#텍스트 출력
Text_Delete(var11);
Text_Delete(var12);
Text_Delete(var13);
Text_Delete(var14);
Text_Delete(var15);
var11 = Text_New(NextBarSdate,NextBarStime,Pivot,NumToStr(Pivot,2));
var12 = Text_New(NextBarSdate,NextBarStime,R1,NumToStr(R1,2));
var13 = Text_New(NextBarSdate,NextBarStime,R2,NumToStr(R2,2));
var14 = Text_New(NextBarSdate,NextBarStime,S1,NumToStr(S1,2));
var15 = Text_New(NextBarSdate,NextBarStime,S2,NumToStr(S2,2));
Text_SetStyle(var11,0,1);
Text_SetStyle(var12,0,1);
Text_SetStyle(var13,0,1);
Text_SetStyle(var14,0,1);
Text_SetStyle(var15,0,1);
#색상
Text_SetColor(var11,Black);
Text_SetColor(var12,Black);
Text_SetColor(var13,Black);
Text_SetColor(var14,Black);
Text_SetColor(var15,Black);
2023-07-24
1158
글번호 170872
답변완료
에러수정 좀 부탁드립니다.
안녕하세요? 어디가 문제인지를 모르겠어요. 수정 좀 부탁드립니다.
//====================================//
var : x1(0,Data1),x2(0,Data1),x3(0,Data1),x4(0,Data1),x5(0,Data1),x6(0,Data1),TL1(0),선두깨(0),
v1(0,Data1),v2(0,Data1),v3(0,Data1),v4(0,Data1),v5(0,Data1),v6(0,Data1),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
x1 = Data1(ema(c,9));
X2 = Data1(ma(c,120)); //120이평선(1시간)
X3 = Data1(ma(c,240)); //240이평선(2시간)
X4 = Data1(ma(c,480)); //480이평선(4시간)
if crossup(c,X2) Then {
{
V1 = Data1(C);
tx1 = Text_New_Self(Data1(sDate),Data1(sTime),v1,NumToStr(v1,2));
Text_SetStyle(tx1,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩120이평선돌파.wav");
}
if crossup(c,X3) Then {
{
V2 = Data1(C);
tx2 = Text_New_Self(Data1(sDate),Data1(sTime),v2,NumToStr(v2,2));
Text_SetStyle(tx2,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩240이평선돌파.wav");
}
if crossup(c,X4) Then {
{
V3 = Data1(C);
tx3 = Text_New_Self(Data1(sDate),Data1(sTime),v3,NumToStr(v3,2));
Text_SetStyle(tx3,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩480이평선돌파.wav");
}
if crossdown(c,X2) Then {
{
V4 = Data1(C);
tx4 = Text_New_Self(Data1(sDate),Data1(sTime),v4,NumToStr(v4,2));
Text_SetStyle(tx4,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩120이평선이탈.wav");
}
if crossdown(c,X3) Then {
{
V5 = Data1(C);
tx5 = Text_New_Self(Data1(sDate),Data1(sTime),v5,NumToStr(v5,2));
Text_SetStyle(tx5,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩240이평선이탈.wav");
}
if crossdown(c,X4) Then {
{
V6 = Data1(C);
tx6 = Text_New_Self(Data1(sDate),Data1(sTime),v6,NumToStr(v6,2));
Text_SetStyle(tx6,0,0);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩480이평선이탈.wav");
}
if v1 > 0 Then
Plot1(v1,"240이평선돌파",Magenta);
if v2 > 0 Then
Plot2(v2,"60이평선위로돌파",Red);
if v3 > 0 Then
Plot3(v3,"60이평선아래로돌파",RgB(128,0,0));
if v4 > 0 Then
Plot1(v4,"240이평선돌파",RgB(0,204,255));
if v5 > 0 Then
Plot2(v5,"60이평선위로돌파",LBlue);
if v6 > 0 Then
Plot3(v6,"60이평선아래로돌파",Black);
Text_SetLocation(tx1,Data1(NextBarSdate),Data1(NextBarStime),v1);
Text_SetLocation(tx2,Data1(NextBarSdate),Data1(NextBarStime),v2);
Text_SetLocation(tx3,Data1(NextBarSdate),Data1(NextBarStime),v3);
Text_SetLocation(tx4,Data1(NextBarSdate),Data1(NextBarStime),v4);
Text_SetLocation(tx5,Data1(NextBarSdate),Data1(NextBarStime),v5);
Text_SetLocation(tx6,Data1(NextBarSdate),Data1(NextBarStime),v6);
2023-07-24
1279
글번호 170871
답변완료
문의드립니다.
var : 분주기(15),P(5),분주기1(5);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),cnt1(0),sum(0),mav(0),tf1(0);
Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0);
Array : C1[100](0),T1[100](0);
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) Then{
S1 = TimeToMinutes(070000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF < TF[1]) Then{
OO[0] = o;
HH[0] = H;
LL[0] = L;
TT[0] = stime;
for cnt = 1 to 100{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TT[cnt] = TT[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF1 < TF1[1]) Then{
T1[cnt1] = stime;
for cnt1 = 1 to 100{
C1[cnt1] = C1[cnt1-1][1];
T1[cnt1] = T1[cnt1-1][1];
}
}
C1[0] = c;
////////////////////////////////////
틱봉에 적용하는 분주기 식인데요~
분주기에서 2분부터는 적용이 되는데
1분이 적용이 안되네요. 수정 부탁드립니다.~
2023-07-24
1095
글번호 170870
답변완료
or 를 쓸 때 질문입니다.
안녕하세요 수고가 많으십니다.
제가 수식을 작성 중에 결과값이 다르게 나오는게 있어서 질문을 드립니다.
1. If var1 == (2 or 3) and var2 >var3 then plot....
2. If (var1 ==2 or var1 ==3) and var2 >var3 then plot ...
제가 알고 있기로 위의 1, 2번은 같을 줄 알았는데 결과가 다르게 나와서
질문을 드립니다.
위의 두 가지가 다른 것인지 아니면 제가 착각을 하는 것인지 가르침을 부탁드립니다.
그리고 위의 1번 괄호의 var1 ==(2 or 3)이 실제적으로 어떤 의미인지도 부탁드립니다(결과적으로 var1이 2나 3인 결과가 나오는 것이 아니라 1인 결과도 나왔거든요. 1, 2, 3이 다 나오는...)
항상 감사드립니다.
2023-07-24
1268
글번호 170869
답변완료
카운트 리셋 문의 드립니다.
안녕하세요..항상 도움 감사드립니다.
(1)번 질문
Var: A_Cnt(0),B_Cnt(0);
if Bdate! = Bdate[1] Then {A_Cnt=0;B_Cnt=0;}
날짜가 변경되면 A,B 변수가 0으로 재카운팅 되게 하고 싶은데 검증을 하면 오류가 납니다.
어떻게 수정해야 할까요?
2023-07-24
1413
글번호 170868
답변완료
수식부탁합니다
그림처럼 꼬리를 제외한 30분봉의 몸통을
1분봉 차트에 그려넣고 싶습니다
색깔도 부탁합니다
감사합니다,,
2023-07-24
1473
글번호 170867
답변완료
부탁드립니다.
당일(d일) 해선차트에서 이틀전 특정시간(예: d-2일 20시)부터 24시간(d-1일 20시)사이의 최대값과 최소값을 구하는 지표식 부탁드립니다.
2023-07-24
1627
글번호 170866
답변완료
문의드립니다.
안녕하세요.
특정 상단값과 하단값을 임의로 입력해두고 그 값을 1틱이라도 돌파(이탈)하면 그때부터 익절 20틱, 손절 20틱으로 매매하는 선물매매식을 만들고자 합니다.
예를 들어 350과 400 2개 가격을 입력한 뒤 400을 돌파하면 매수, 350를 이탈하면 매도를 하고자 합니다.
1. 입력값을 변경하기전까지는 계속 반복해서 매매 가능하게 되길 원합니다.
2. 돌파(이탈)후 진입이 익절 또는 손절 되기전까지는 동일 또는 반대신호가 나오면 안됩니다.
2023-07-24
1228
글번호 170865
답변완료
문의드립니다
1,
200봉동안 5일선과20일선이 골든크로스가났을때 의 가격중에서 가장낮은 현재가가 오늘 발생한종목
2,
200봉동안 5일선과20일선이 골든크로스가났을때 의 가격중에서 가장높은 현재가가 오늘 발생한종목
2023-07-23
1460
글번호 170864