커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1326
글번호 230811
답변완료
수식문의 드립니다.
안녕하세요.
환절기 감기 조심하세요.
호가잔량비율 당일 최대값이 전일 최대값보다 작을 경우 차트에 나타내는 검색식 혹은
호가잔량비율 당일 최대값이 전일 최대값을 돌파하는 수식을 문의드립니다.
Input : Period(1);
var : AsksMA(0),BidsMA(0), Ratio(0);
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
Ratio = (AsksMa / BidsMa);
If Ratio > 1 Then
{
Plot1(BidsMA, "매수잔량이평");
Plot2(AsksMA, "매도잔량이평");
Plot3(Ratio, "비율", BLUE);
}
Else
{
Plot1(BidsMA, "매수잔량이평");
Plot2(AsksMA, "매도잔량이평");
Plot3(-1 / Ratio, "비율", RED);
}
감사합니다.
2025-03-27
348
글번호 189604
답변완료
문의드립니다.
다름이 아니라
진입신호가 나온 봉의 종가와 현재봉의 종가가 가로선으로 표현되길 원합니다
그리고 진입신호가 나온 봉의 종가와 현재봉의 종가의 1/2도 가로선으로 나왔으면 합니다.
신호가 청산되기 전까지 표현되길 원합니다.
선의 굵기나 모양도 선택가능하면 좋겠습니다.
미리 노고에 감사드립니다.
2025-03-27
319
글번호 189603
답변완료
문의 드립니다
장중 모니터링으로 종목검색 가능한지 문의 드립니다
장중에 주봉상 스토캐스틱 골든크로스 종목을 검색하고 싶은데
이와 같이 특정 조건이 검색되는 종목이 나타나면 확인 될 수 있도록 하는
기능은 없는지 문의 드립니다
직장인이다 보니 장중 내내 모니터링이 불가능한지라 일정시간 (예를 들어 한시간) 간격으로
검색된 종목을 보여준다든지. 실시간으로 검색된 종목을 알림창으로 나타내 준다든지
가능한지 문의 드립니다
2025-03-27
303
글번호 189602
답변완료
분봉거래대금 색깔
분봉을 억대표기로 수식을 넣어서 바꾸었는데요
분봉 색깔이 1가지 밖에 안나옵니다 .
상승은 빨강 하락은 파랑으로 설정하고 싶은데
지표속성 -> 차트표시에 가보면 1가지 색깔 설정밖에 안나옵니다 .
해결법 알려주세요 .
2025-03-27
417
글번호 189601
답변완료
수식 문의 드립니다.
안녕하세요.
다음 수식은 며칠전 문의 드린 고저가 갱신시 수평선을 설정한것인데
60분봉에서 생성된 고저가 수평선을 10분봉이나 5분봉에 적용되게 변경가능한가요?
input : n(3);
var : HH(0),LL(0),cnt(0),hcnt(0),lcnt(0);
Array : HTL[100](0),HTLV[100](0),LTL[100](0),LTLV[100](0);
if Bdate != Bdate[1] Then
{
HH = H;
LL = L;
hcnt = 0;
HTLV[hcnt] = NextBarOpen;
HTL[hcnt] = TL_New(Sdate,Stime,HTLV[hcnt],NextBarSdate,NextBarStime,HTLV[hcnt]);
TL_SetColor(HTL[hcnt],Red);
lcnt = 0;
LTLV[lcnt] = NextBarOpen;
LTL[lcnt] = TL_New(Sdate,Stime,LTLV[lcnt],NextBarSdate,NextBarStime,LTLV[lcnt]);
TL_SetColor(LTL[hcnt],Blue);
}
Else
{
if H > HH then
{
HH = H;
hcnt = Hcnt+1;
HTLV[hcnt] = NextBarOpen;
HTL[hcnt] = TL_New(Sdate,Stime,HTLV[hcnt],NextBarSdate,NextBarStime,HTLV[hcnt]);
TL_SetColor(HTL[hcnt],Red);
}
if L < LL then
{
LL = L;
lcnt = lcnt+1;
LTLV[lcnt] = NextBarOpen;
LTL[lcnt] = TL_New(Sdate,Stime,LTLV[lcnt],NextBarSdate,NextBarStime,LTLV[lcnt]);
TL_SetColor(LTL[hcnt],Blue);
}
for cnt = 0 to Hcnt
{
TL_SetEnd(HTL[cnt],NextBarSdate,NextBarStime,HTLV[cnt]);
}
for cnt = 0 to Lcnt
{
TL_SetEnd(LTL[cnt],NextBarSdate,NextBarStime,LTLV[cnt]);
}
if Hcnt >= n Then
TL_Delete(HTL[n]);
if Lcnt >= n Then
TL_Delete(LTL[n]);
}
2025-03-27
391
글번호 189600
답변완료
검색식 부탁 드립니다
S=sum(1);
최고거래량=highestsince(1,S==1,V);
valuewhen(1,최고거래량==v,c)
시가가 최고거래량 돌파 검색식 부틱드립니다
2025-03-26
396
글번호 189599
답변완료
지표 수정좀 요청 드림니다.
항상 많은 도움에 고맙습니다.
<그림1> 처럼 봉길이 좀 늘려 주십시요.
그리고 봉에 번호 좀 부탁 드림니다.
즉 20봉중 첫번재 봉에는 고가선 저가선 중간선을 20봉 끝까지 가고
봉이 새로 생길때 마다 고가선 위 에 2,4,6,8,10,....20 짝수봉 표시 가능 한가요?
다음 신호짜지 몇개 더 나와 하는지 세봐야 되는데 몇번째 봉이다 알면 편합니다.
(숫자크기: 10 색상 : blue)
아래수식으로 연습해 봤는데 안되네요..... ㅠ ㅠ
## 아래 수식
input : n(20);
var : hh(0),ll(0),idx(0),tf(0),hh1(0),ll1(0),hh2(0),ll2(0);
var : TL1(0),TL2(0),d1(0),t1(0),TL3(0);
var : HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0);
if Bdate != Bdate[1] Then
idx = 0;
Else
idx = idx+1;
TF = idx%n;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
hh = h;
ll = l;
hh1 = hh[1];
ll1 = ll[1];
hh2 = hh1[1];
ll2 = ll1[1];
d1 = sDate;
t1 = sTime;
#TL_Delete(TL1);
//TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,HH);
// TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,NextBarStime);
TL1 = TL_New(sDate,sTime,HH[0],NextBarSdate,NextBarStime,HH[0]);
//TL1 = TL_New(sDate[0],sTime[0],HH,sDate,sTime,HH);
TL_SetColor(TL1,RgB(255,0,0));
TL_SetSize(TL1,5);
//TL_SetEnd(TL1[0],sDate,sTime,NextBarStime);
//TL1 = TL_new(sDate,sTime,HH+0.25,NextBarSdate,NextBarStime,HH+0.25);
//TL_SetEnd(TL1,sDate,sTime,HH+0.25);
//TL_SetExtRight(TL1[10],true);
#TL_Delete(TL2);
TL2 = TL_new(d1,t1,ll,NextBarSdate,NextBarStime,ll);
TL_SetColor(TL2,RgB(0,0,0));
TL_SetSize(TL2,5);
//TL_SetStyle((TL2,2,1);
#TL_Delete(TL3);
TL3 = TL_new(d1,t1,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
TL_SetColor(TL3,Rgb(0,0,255));
TL_SetSize(TL3,5);
}
if h > hh Then
{
hh = h;
// TL_SetBegin(TL1,d1,t1,hh);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
}
if l < ll Then
{
ll = l;
//TL_SetBegin(TL2,d1,t1,ll);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
}
//TL_SetEnd(TL1,NextBarSdate,NextBarStime,hh);
//TL_SetEnd(TL2,NextBarSdate,NextBarStime,ll);
//TL_SetEnd(TL3,NextBarSdate,NextBarStime,(hh+ll)/2);
//var1 = (hh+ll)/2;
//var2 = (hh1+ll1)/2;
//var3 = (hh2+ll2)/2;
//Var4 = MA(var1,5) ;
// Plot1(Var4-PriceScale*10,"1",RgB(255,0,255),DeF,2) ;
//Plot2(var2,"2",RgB(0,0,255),DeF,3) ;
//Plot3(var3,"3",RgB(0,0,0),DeF,3) ;
##=======================================================================================================
##=======================================================================================================
input : n2(20);
var : hh3(0),ll3(0),idx3(0),tf3(0),hh4(0),ll4(0),hh5(0),ll5(0);
var : TL11(0),TL12(0),d13(0),t13(0),TL13(0);
if Bdate != Bdate[1] Then
idx3 = 0;
Else
idx3 = idx+1;
tf3 = idx3%n2;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and tf3 < tf3[1]) Then
{
hh3 = h;
ll3 = l;
hh4 = hh3[1];
ll4 = ll3[1];
hh5 = hh4[1];
ll5 = ll4[1];
d13 = sDate;
t13 = sTime;
#TL_Delete(TL11);
// TL11 = TL_new(d13,t13,hh3,NextBarSdate,NextBarStime,hh3);
#TL_Delete(TL12);
// TL12 = TL_new(d13,t13,ll3,NextBarSdate,NextBarStime,ll3);
#TL_Delete(TL13);
// TL13 = TL_new(d13,t13,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
}
if h > hh3 Then
{
hh3 = h;
TL_SetBegin(TL11,d13,t13,hh3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
if l < ll3 Then
{
ll3 = l;
TL_SetBegin(TL12,d13,t13,ll3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
//TL_SetEnd(TL11,NextBarSdate,NextBarStime,hh3);
//TL_SetEnd(TL12,NextBarSdate,NextBarStime,ll3);
//TL_SetEnd(TL13,NextBarSdate,NextBarStime,(hh+ll)/2);
var1 = ( hh3 + ll3)/2;
var2 = ( hh4 + ll4)/2;
var3 = ( hh5 + ll5)/2;
Var4 = MA(var1,5) ;
//Plot1(Var4-PriceScale*1,"1",RgB(255,0,255),DeF,0) ;
큰 도움에 고맙습니다. 수고하십시요.
2025-03-26
426
글번호 189598
답변완료
종목검색 부탁드립니다.
안녕하세요?
아래와 같은 수식을 검색식으로 부탁드립니다.
감사합니다...
count=sum(1);
condition=if(C>C(1)*1.20, C*1.3, 0);
AA=C<eavg(c,5) && 98<disparity(10) && 105>disparity(10);
BB=O<C;
count_from_high_limit=valuewhen(1, condition, count);
if((count-count_from_high_limit <=10 && AA && BB), C*1.3, 0)
2025-03-26
382
글번호 189597
답변완료
92088 : TL_New()함수 답변에 대한... 재확인 부탁드립니다.
이미 양수이기때문에 절대값으로 변환해도 차이가 없습니다.
메세지로그에서 값을 찍어봐도 양수로 나옵니다.
혼란을 줄이기 위해 불필요한 구문은 모두 삭제 하였습니다.
심플하게 코딩을 바꿨으니 아래 내용으로 무엇이
잘못되었는지 다시 한번 확인 부탁 드립니다.
------------------------------------------
// 캔들의 전체 갯수를 리턴하는 함수
function getTotalCandles Numeric
// 캔들 갯수를 저장할 변수 선언
var: candleCount(0);
candleCount=Index+1;
getTotalCandles=candleCount;
Endfunction
var: totalCandles(0), getTotalCandles(0);
totalCandles=getTotalCandles();
// 하락 추세선 (단기)
Inputs:
ChartCandles(500),
ShortPeriod(60),
ShortDownColor(Blue), // 단기 하락 추세선 색상: 파란색
ShortLineWidth(2);
var: Candle_Condition(0), ShortDownTrendLineID(0),
StartShortDownTrendBar(0), LastShortDownTrendBar(0),
StartShortDownTrendPrice(0), LastShortDownTrendPrice(0);
Candle_Condition = ChartCandles - ShortPeriod;
If totalCandles >= Candle_Condition Then {
If totalCandles == ChartCandles Then {
StartShortDownTrendBar = NthHighestBar(1, High, ShortPeriod);
LastShortDownTrendBar = NthHighestBar(2, High, ShortPeriod);
StartShortDownTrendPrice = NthHighest(1, High, ShortPeriod);
LastShortDownTrendPrice = NthHighest(2, High, ShortPeriod);
}
If ShortDownTrendLineID > 0 Then {
TL_Delete(ShortDownTrendLineID);
}
//StartShortDownTrendBar = StartShortDownTrendBar;
//LastShortDownTrendBar = LastShortDownTrendBar;
//이미 양수이기때문에 절대값으로 변환해도 차이가 없습니다.
//메세지로그에서 값을 찍어봐도 양수로 나옵니다.
//혼란을 줄이기 위해 불필요한 구문은 모두 삭제 하였습니다.
StartShortDownTrendBar = Abs(StartShortDownTrendBar);
LastShortDownTrendBar = Abs(LastShortDownTrendBar);
MessageLog("**고점일=%.f, **고점가격=%.f", StartShortDownTrendBar, StartShortDownTrendPrice);
MessageLog("다음 고점일=%.f, **다음 고점가격=%.f", LastShortDownTrendBar, LastShortDownTrendPrice);
ShortDownTrendLineID = TL_New_Self(Date[StartShortDownTrendBar], Time[StartShortDownTrendBar], High[StartShortDownTrendBar], Date[LastShortDownTrendBar], Time[LastShortDownTrendBar], High[LastShortDownTrendBar]);
TL_SetColor(ShortDownTrendLineID, ShortDownColor);
TL_SetSize(ShortDownTrendLineID, ShortLineWidth);
TL_SetExtRight(ShortDownTrendLineID, True);
}
2025-03-26
405
글번호 189596