커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8126
글번호 230811
답변완료
지표식 부탁드립니다.
- 해선 차트에서 오늘이 월요일이라면 전주 월요일부터 금요일까지의 최고가,
오늘이 화요일이라면 전주 화요일부터 금주 월요일까지의 최고가,
오늘이 수요일이라면 전주 수요일부터 금주 화요일까지의 최고가...
이런식으로 일주일 최고가를 구하는 식을 부탁드립니다.
2017-03-15
197
글번호 107816
답변완료
부탁합니다
아래의 지표식을 시스템식으로 변경하여 주시면 감사하겠습니다.
Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,RED);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLUE);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
2017-03-15
187
글번호 107815
답변완료
수식부탁드립니다
11일 이평선이 최근 30봉이내에 22일선을 3번이상 돌파한경우 (하방 상방 상관없이)를
condition 으로 넣고 싶습니다.
감사합니다
2017-03-15
170
글번호 107814
답변완료
오류메세지 수정 부탁드립니다.
감사합니다.
//==========================================
// Indicator Name : FibonacciRetracement
// Written by : yahoosir
// Blog : http://yahoosir.blog.me
//==========================================
Input:length(10),ClsPxUseBit(0),inRange(10),waveLineSize(2),displPRC(1);
Var:j(0),jj(0),jjj(0),HH(0),LL(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""),
TL1(0),TL2(0);
Array:PK[50,4](0),VL[50,4](0), // 1:Price, 2:BarNumber, 3:Date, 4:Time
basePK[5](0),baseVL[5](0); // 0:N/A, 1:Price, 2:BarNumber, 3:Date, 4:Time
//==========================================
HH = IFF(ClsPxUseBit == 1,C,H);
LL = IFF(ClsPxUseBit == 1,C,L);
If CurrentBar == 1 Then Begin
PK[1,1] = HH;
VL[1,1] = LL;
End ;
Condition1 = Highest(HH,length) = HH and lastHi <> HH;
Condition2 = Lowest (LL,length) = LL and lastLo <> LL;
procBit = "";
If Condition1 and Condition2 Then Begin
If lastVertex == "Valley" Then procBit = "Peak" ;
Else procBit = "Valley";
End
Else If Condition1 Then procBit = "Peak" ;
Else If Condition2 Then procBit = "Valley";
//==========================================
If procBit == "Peak" Then Begin
lastHi = HH;
If lastVertex == "Valley" Then Begin
For j = 50 DownTo 2 Begin
For jj = 1 To 4 Begin
PK[j,jj] = PK[j-1,jj];
End ;
End ;
PK[1,1] = HH;
PK[1,2] = BarNumber;
PK[1,3] = Date;
PK[1,4] = Time;
TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]);
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,RED);
basePK[1] = 0;
For j = 1 To inRange Begin
If basePK[1] < PK[j,1] Then Begin
For jjj = 1 To 4 Begin
basePK[jjj] = PK[j,jjj];
End ;
End ;
End ;
End
Else If PK[1,1] < HH Then Begin
PK[1,1] = HH;
PK[1,2] = BarNumber;
PK[1,3] = Date;
PK[1,4] = Time;
TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]);
End ;
lastVertex = "Peak";
End ;
//==========================================
If procBit == "Valley" Then Begin
lastLo = LL;
If lastVertex == "Peak" then Begin
For j = 50 DownTo 2 Begin
For jj = 1 To 4 Begin
VL[j,jj] = VL[j-1,jj];
End ;
End ;
VL[1,1] = LL;
VL[1,2] = BarNumber;
VL[1,3] = Date;
VL[1,4] = Time;
TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]);
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,BLUE);
baseVL[1] = 0;
For j = 1 To inRange Begin
If baseVL[1] > VL[j,1] or baseVL[1] = 0 Then Begin
For jjj = 1 To 4 Begin
baseVL[jjj] = VL[j,jjj];
End ;
End ;
End ;
End
Else If VL[1,1] > LL then Begin
VL[1,1] = LL;
VL[1,2] = BarNumber;
VL[1,3] = Date;
VL[1,4] = Time;
TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]);
End ;
lastVertex = "Valley";
End ;
//==========================================
Array: fr[7,4](0); // 1:Rate, 2:Price, 3:Trendline ID, 4:Text ID
If CurrentBar == 1 Then Begin
fr[1,1] = 0;
fr[2,1] = 0.236;
fr[3,1] = 0.382;
fr[4,1] = 0.50;
fr[5,1] = 0.618;
fr[6,1] = 0.764;
fr[7,1] = 1;
End ;
If basePK[1] > 0 and baseVL[1] > 0 Then Begin
If baseVL[2][1] <> baseVL[2] or basePK[2][1] <> basePK[2] Then Begin
If TL2 > 0 Then TL_Delete(TL2);
TL2 = TL_New(baseVL[3],baseVL[4],baseVL[1],basePK[3],basePK[4],basePK[1]);
TL_SetSize(TL2,4);
TL_SetColor(TL2,Magenta);
If baseVL[2] < basePK[2] Then Begin
for j = 1 to 7 Begin
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = basePK[1] - ((basePK[1] - baseVL[1]) * fr[j,1]);
fr[j,3] = TL_New(baseVL[3],baseVL[4],fr[j,2],Date,Time,fr[j,2]);
If displPRC == 1 Then Begin
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(baseVL[3],baseVL[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 1, 2);
Text_SetColor(fr[j,4],black);
End ;
End ;
End
Else If basePK[2] < baseVL[2] Then Begin
for j = 1 to 7 Begin
If fr[j,3] > 0 Then TL_Delete(fr[j,3]);
fr[j,2] = baseVL[1] + ((basePK[1] - baseVL[1]) * fr[j,1]);
fr[j,3] = TL_New(basePK[3],basePK[4],fr[j,2],Date,Time,fr[j,2]);
If displPRC == 1 Then Begin
If fr[j,4] > 0 Then Text_Delete(fr[j,4]);
fr[j,4] = Text_New(basePK[3],basePK[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2));
Text_SetStyle(fr[j,4], 1, 2);
Text_SetColor(fr[j,4],black);
End ;
End ;
End ;
End
Else Begin
for j = 1 to 7 Begin
TL_SetEnd(fr[j,3],Date,Time,fr[j,2]);
End ;
End ;
End ;
2017-03-15
294
글번호 107813
답변완료
지표 만들고 검색할때
사용자 지표를 만들고 저장해놓으면
검색식 만들때 그 지표를 불러와서 사용가능한가요?
예를 들어
Q(0) 라는 지표를 만들어서 지표식에서 작동하는 것을 확인했고
검색식을 만들때 Q(0)라는 지표를 불러서 사용하면 되는 지 궁금합니다.
2017-03-15
186
글번호 107811
답변완료
수정 부탁드려요
52376 댓글에 보완 사항을 적었습니다
확인해보시고 수정 부탁드립니다
2017-03-15
198
글번호 107805
답변완료
문의드립니다.
좋은 하루 입니다.
1.환경:
당일 고가저가의 중심인 중심선상
2.표시
20일선이 30일선 아래 있으면 중심선 색상이 파랑색
20일선이 30일선 위에 있으면 중심선 색상이 빨강색
으로 표시되도록 하려는데 잘 안되네요.
수고하세요 ^^
2017-03-15
182
글번호 107804
답변완료
Line에 text 표시
안녕하세요
Line에 text를 표시하는 방법 부탁드립니다.
-----------------------------
선물 분봉 사용하여 (시간주기 상관없이)
당일시가기준으로 1pt 상승시 또는 하락시 마다
Line이 그려졌다고 했을 때
1) 빨간색 상승Line 위에 해당지수,경과봉수를 text로 표시
2) 파란색 하락Line 아래에 해당지수,경과봉수를 text로 표시
(text는 되도록 Line 중앙에 위치)
그림으로 표시하면 다음과 같습니다.
괄호안은 해당line의 봉경과 갯수입니다.
278.50 (10) 빨간색
상승선 ---------------- 빨간색
277.50 (24) 빨간색
상승선 --------------- 빨간색 하락선 ----------- 파란색
277.50 (7) 파란색
하락선 ---------------- 파란색
276.50 (14) 파란색
꼭 위의 예가 아닌 스윙하이 스윙로우 Line 등
수평추세선이 나오는 어떤 예도 상관없습니다.
이상입니다.
감사합니다 !!
2017-03-15
209
글번호 107799
답변완료
수식부탁드립니다
안녕하세요^^
혼자 수식을 만드는데 어려워서 도움을 청합니다.
단순 5 이동평균선을 사용하여 골드일때 매수식 데드일때 매도식을 만들고 싶습니다.
감사합니다.
2017-03-15
175
글번호 107797