커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4474
글번호 230811
답변완료
문의 드립니다
input:length(2),a틱(30),b틱(30),c틱(2);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0);
Array:HH[10,2](0),LL[10,2](0);
input : StartTime(100000),EndTime(53000);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
process = 0;
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{
If LL[1,1] > L Then process = -1;
If HH[1,1] < H Then process = 1;
}
Else If Highest(H,length) == H and lastHiVal <> H Then process = 1;
Else If Lowest(L,length) == L and lastLoVal <> L Then process = -1;
If process == 1 Then
{
T = 1;
lastHiVal = H;
If HH[1,2] < LL[1,2] Then
{
For j = 10 DownTo 2
{
HH[j,1] = HH[j-1,1];
HH[j,2] = HH[j-1,2];
}
}
If HH[1,2] < LL[1,2] or HH[1,1] < H Then
{
HH[1,1] = H;
HH[1,2] = Index;
sBar = Index - LL[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
if LL[1,1] > 0 Then
{
TL1 = TL_New(sDate[sBar],sTime[sBar],LL[1,1],sDate[eBar],sTime[eBar],HH[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 1);
}
Else
{
Text_Delete(text1);
Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,2));
Text_SetStyle(Text1, 2, 1);
}
Text_SetStyle(Text1, 2, 1);
}
if MarketPosition <= 0 and
HH[2,1] >= LL[2,1]+PriceScale*a틱 and
LL[1,1] <= HH[2,1]-PriceScale*b틱 and
Tcond == true Then
Buy("b",AtStop,HH[2,1]+PriceScale*c틱);
}
If process == -1 Then
{
T = -1;
lastLoVal = L;
If LL[1,2] < HH[1,2] Then
{
For j = 10 DownTo 2
{
LL[j,1] = LL[j-1,1];
LL[j,2] = LL[j-1,2];
}
}
If LL[1,2] < HH[1,2] or LL[1,1] > L Then
{
LL[1,1] = L;
LL[1,2] = Index;
sBar = Index - HH[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
if HH[1,1] > 0 Then
{
TL1 = TL_New(sDate[sBar],sTime[sBar],HH[1,1],sDate[eBar],sTime[eBar],LL[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],"-"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 0);
}
Else
{
Text_Delete(text1);
Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],"-"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 0);
}
}
if MarketPosition >= 0 and
LL[2,1] <= HH[2,1]-PriceScale*a틱 and
HH[1,1] >= LL[2,1]+PriceScale*b틱 and
Tcond == true Then
Sell("s",AtStop,LL[2,1]-PriceScale*c틱);
}
if MarketPosition == 1 and IsEntryName("b") == true Then
Sell("bs",AtStop,EntryPrice-PriceScale*50);
if MarketPosition == -1 and IsEntryName("s") == true Then
Buy("sb",AtStop,EntryPrice+PriceScale*50);
위 수식어에 당일 매매중 70틱 수익에 매매정지를 포함해 주시면 감사하겠습니다.
2025-01-13
712
글번호 187117
답변완료
수식변환 부탁드립니다
늘 도움 주심에 감사드립니다. 아래와 같이 키움의 한 개의 지표를 예스랭귀지로 변환 부탁드립니다. 감사합니다.
수식1:
중심선=BBandsC(Period,D1);
상단선=BBandsUp(Period,D1);
하단선=BBandsDown(Period,D1);
aa=(상단선-하단선)/중심선*k;
if(c>중심선,aa,0)
수식2:
if(c<중심선,-aa,0)
수식3:
if(c<=중심선,aa,0)
수식4:
if(c>중심선,-aa,0)
수식5:
중심선=BBandsC(Period,D1);
상단선=BBandsUp(Period,D1);
하단선=BBandsDown(Period,D1);
aa=(상단선-하단선)/중심선*k;
2025-01-13
581
글번호 187115
답변완료
종목 검색식 부탁드립니다.
diff = diff + (upvol-downvol);
아래와 같은 당일체결조건을 만족하는 종목검색을 하고 싶습니다
1. 당일 첫봉 ~ 10개봉 평균값 < diff(현재값)
2. 당일 diff값 최저값이 마이너스가 아닌경우
2025-01-13
509
글번호 187114
cntbs 님에 의해서 삭제되었습니다.
2025-01-12
25
글번호 187113
답변완료
종목 검색 부탁드립니다.
양봉=C>O;
음봉=C<O;
조건1=CountSince(date!=date(1),음봉);
조건2=(조건1==1&&조건1(1)==0)or
(date!=date(1)&&음봉);
최종=valuewhen(1,조건2,H);
Crossup(C,최종)
종목 검색식 부탁드립니다
2025-01-12
589
글번호 187112
답변완료
문의드립니다
수고하십니다^^
x= upticks - downticks ;
1. 분봉에서 x를 지표로 나타낸 상태에서
오늘 하루의 x값(누적)을 구하는 방법이 궁금합니다.
전일x값과 비교해보려고합니다.
2. 이 30분봉 챠트를 일봉 으로 바꾸면 자동으로 일봉에서의 x값은
하나만 나올텐데 이것이 분봉에서의 x의 총합인가요?
예) x가 30분봉은 14개봉 의 합 == 일봉의 x는 1개봉의 값 ?
그런데 맞지않는것 같아 문의드립니다.
2025-01-12
577
글번호 187111
답변완료
지표 질문입니다
노고에 감사드립니다.
아래 두 라인을 지표에 넣고 싶습니다.
감사합니다.
라인1
AA=(H+L+C)/3;
BB=AA*V;
X1=SUM(BB,2);
X2=SUM(V,2);
A=X1/X2;
라인2
AA=(H+L+C)/3;
BB=AA*V;
X1=SUM(BB,20);
X2=SUM(V,20);
A=X1/X2;
2025-01-12
582
글번호 187110
답변완료
종목검색식 부탁트립니다.
노고에 감사드립니다.
아래와 같이 지난번 만들어주신 수식에 추가하고 싶은 부분이 있습니다.
추가하고 싶은 부분은 다음과 같습니다.
------ 다 음 -----
(볼벤 선행1.또는 2를 주가가 돌파 OR
후행이 주가를 돌파 ) AND
(주가가 구름아래 접근 OR 후행이 주가아래 접근)
늘 감사드립니다.
var : AA(0),BB(0),X1(0),X2(0),A(0);
AA=(H+L+C)/3;
BB=AA*V;
X1=AccumN(BB,2);
X2=AccumN(V,2);
A=X1/X2;
if ma(Money,5)[1] >= 500000000 and
ma(Volume,5)[1] >= 50000 and
ma(C,112) < ma(C,224) and ma(C,224) < ma(C,448) and
V >= ma(V,120)[1]*(700/100) and
A[3] > A[2] &&
A[2] > A[1] &&
A[1] < A[0] Then
Find(1);
2025-01-12
598
글번호 187109
답변완료
양봉상승률
안녕하세요.
궁금한 것이 있어서 질문 드립니다.
1) n봉전부터 전일까지 양봉이 연속으로 발생하여(1개 이상) 첫 양봉의 시가
에서 마지막 양봉의 종가상승률이 20%이상인 종목을 검색하고 싶습니다.
2) n봉전부터 전일까지 양봉이 연속으로 발생하여(1개 이상) 첫 양봉의 1봉전 종가에서
에서 마지막 양봉의 종가상승률이 20%이상인 종목을 검색하고 싶습니다.
다른 조건들과 조합해서 사용하기 위해 위의 조건을
Condition1= ~~~~ ; 라고 정의해서 부탁 드려요.
늘 감사합니다.
행복한 하루 보내세요~
2025-08-21
571
글번호 187108