커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1344
글번호 230811
답변완료
문의
MACD1(12.25),MACD2(12.50),MACD3(12.100),MACD4(25.50),MACD5(25.100),MACD6(50.100)
에서
1..모든MACD가 밀집상태에서 0선 돌파할때
2..0선위에서 밀집상태에서 모든MACD가 상승전환되는
종목을 검색하고 싶습니다.
2025-01-10
573
글번호 187093
답변완료
종목검색 부탁드립니다.
아래의 2가지의 키움수식을 종목검색 수식으로 부탁드립니다.
항상 도움 주셔서 감사합니다. 수고하세요!
--- 1)번 수식 ---
이 = ma(C, 5, 단순);
동 = ma(C, 20, 단순);
골든 = crossup(이, 동);
최고 = HighestSince(1, 골든, H);
최고가 = ValueWhen(1, 최고 == 최고(1) && 최고 > H, 최고);
최저 = if(동 > L, 1, 0);
최저가 = sum(최저);
결론 = 최저가 - valuewhen(1, 골든, 최저가(1));
조건 = crossup(C, 최고가) && 결론 > 0;
카운트 = CountSince(골든, 조건) == 1;
카운트 && !카운트(1)
--- 2)번 수식 ---
S = sum(1);
이동1 = ma(c, 5, 지수);
이동2 = ma(c, 20, 단순);
급등전 = 이동1 > 이동1(1) && 이동1(1) < 이동1(2);
다운 = valuewhen(1, crossdown(이동1, 이동2), S);
급등1 = valuewhen(1, 급등전, S);
급등2 = valuewhen(2, 급등전, S);
급등3 = valuewhen(3, 급등전, S);
업 = valuewhen(1, crossup(이동1, 이동2), S);
조건 = 급등3 < 다운 && 다운 < 급등2 && 급등2 < 급등1 && 급등1 < 업;
조건 && !조건(1)
2025-01-10
729
글번호 187090
답변완료
(문의)키움 수식(일목균형표)을 예스트레이더로 만들어 사용
아래 키움수식으로 일목균형표를 만들어 사용하였는데, 예스트레이드에서 아래 수식으로 일목균형표를 사용하고자 합니다. 만들다가 에러만 발생하여 이렇게 문의합니다.
아라 키움수식을 예스트레이더로 만드는 방법을 알려주시면 감사합니다
기간1 20, 기간2 30, 기간3 40, Period 40, APeriod 45, 가격 이평, 이평종류 지수 D1 1, D2 2 ;
2*(BBandsUp(Period,D1)
+BBandsUp(APeriod,D2)
+BBandsDown(Period,D1)
+BBandsDown(APeriod,D2))/4-
(MA(가격, 기간2, 이평종류)+MA(가격, 기간3, 이평종류))/2
2025-01-10
792
글번호 187089
답변완료
진입수량 청산관련
저는 나스닥 해외선물을 거래하면서 시작시간과 청산시간을 정하여 당일 청산을 하고 있습니다
어제는 해외선물이 조기 종료가 되어 프로그램을 돌리지 않았습니다.
오늘 프로그램을 돌리려고 열어니 진입수량이 있는 것으로 나타나고 조기종료됨에 따라 청산시간이 되지 않은 상태로 남아 있습니다. 물론 실제 거래는 없지만 이게 그대로 있으면 다음 신호에 영향을 미치게 되어 있습니다. 이를 해결하는 방법은 어떠한 것이 있는지요?
2025-01-10
791
글번호 187084
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목 검색식으로 부탁드림니다.
비중=(highest(high, 기간)-lowest(low, 기간));
A=highest(high, 기간)-(비중*0.618);
Crossup(C, A)
지표변수 기간 120
2025-01-10
660
글번호 187079
답변완료
DayClose 함수 오류 문의
DayClose 함수가 차트 봉 개수에 따라 다른 값을 반환합니다.
DayClose 함수는 차트와 무관하게 일봉 데이터에서 직접 값을 가져온다고 되어있는데 값이 다릅니다.
참고로 테스트는 KQ150선물, 3분봉, DayClose(60), 봉 개수 2000개, 2500개로 테스트 했습니다.
봉 개수 2000개일 때 다른 값이 나오네요.
K200선물도 동일한 오류가 나옵니다.
분봉 시간 바꿔보고, DayClose 숫자 바꿔봐도 특정 봉 개수 이내에서는 다른 값이 나오네요.
2025-01-10
600
글번호 187078
답변완료
질문 요청 드립니다.
^ 좋은 주말 되십시요.
* 전일 수정 수식 입니다.
* 타주기 5분봉 좀 부탁 드림니다.
즉 1분봉 차트에서 5분봉 지그 같이 보려고 합니다.
## 이하
## 강사님 수정 본
Input : af(0.005), maxAF(0.2);
var : t(0),tl(0),tl1(0),tl2(0),tx1(0),tx2(0),color(0);
var : hh(0),hd(0),ht(0),hh1(0),tl11(0);
var : ll(0),ld(0),lt(0),ll1(0),tl22(0);
var : ar(0),ad(0),aa(0),cnt(0),br(0),bd(0),bb(0);
Array : aTL[10](0),bTL[10](0);
var1 = SAR(af,maxAF);
if CrossUp(C,var1) Then
{
T = 1;
hh = var1;
hh1 = hh[1];
hd = sDate;
ht = sTime;
if ll > 0 Then
{
tl = TL_New(ld,lt,ll,hd,ht,hh);
tl1 = TL_New(hd,ht,hh,NextBarSdate,NextBarStime,hh);
tx1 = Text_New(sDate,sTime,hh,NumToStr(hh,2)+NewLine+"+"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetStyle(tx1,2,0);
if hh1 == 0 or (hh1 > 0 and hh < hh1) Then
color = Blue;
aD = 0;
if abs(hh-ll) > PriceScale*50 Then
{
aR = Floor(abs(hh-LL)/(PriceScale*50));
aa = hh;
For cnt = 1 to ar
{
if hh+(PriceScale*50)*cnt < LL Then
{
aD = aD+1;
aTL[aD] = TL_New(LD,LT,aa+(PriceScale*50)*cnt,HD,HT,aa+(PriceScale*50)*cnt);
}
}
}
}
}
else if CrossDown(C,var1) Then
{
T = -1;
ll = var1;
ll1 = ll[1];
ld = sDate;
lt = sTime;
if hh > 0 Then
{
tl = TL_New(hd,ht,hh,ld,lt,ll);
tl2 = TL_New(ld,lt,ll,NextBarSdate,NextBarStime,ll);
tx2 = Text_New(sDate,sTime,ll,NumToStr(ll,2)+NewLine+"-"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetStyle(tx2,2,0);
if ll1 == 0 or (ll1 > 0 and ll > ll1) Then
color = Red;
bD = 0;
if abs(hh-ll) > PriceScale*50 Then
{
bR = Floor(abs(hh-LL)/(PriceScale*50));
bb = ll;
For cnt = 1 to br
{
if ll-(PriceScale*50)*cnt > HH Then
{
bD = bD+1;
bTL[bD] = TL_New(HD,HT,bb-(PriceScale*50)*cnt,LD,LT,bb-(PriceScale*50)*cnt);
}
}
}
}
}
Else
{
if t == 1 then
{
TL_SetEnd(tl,hd,ht,hh);
TL_SetBegin(tl1,hd,ht,hh);
TL_SetEnd(tl11,Sdate[1],Stime[1],hh1);
Text_SetString(tx1,NumToStr(hh,2)+NewLine+"+"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetLocation(tx1,sDate,sTime,hh);
if (hh1 > 0 and hh > hh1) Then
color = Red;
}
if t == -1 then
{
TL_SetEnd(tl,ld,lt,ll);
TL_SetBegin(tl2,ld,lt,ll);
TL_SetEnd(tl22,Sdate[1],Stime[1],ll1);
Text_SetString(tx2,NumToStr(ll,2)+NewLine+"-"+NumToStr(abs(hh-ll)/PriceScale,0));
Text_SetLocation(tx2,sDate,sTime,ll);
if (ll1 > 0 and ll < ll1) Then
color = Blue;
}
}
TL_SetEnd(tl1,NextBarSdate,NextBarStime,hh);
TL_SetEnd(tl2,NextBarSdate,NextBarStime,ll);
TL_SetColor(tl,color);
if abs(HH-LL) >= PriceScale*50 Then
TL_SetSize(tl,5);
Else
TL_SetSize(tl,2);
* 좋은 주말되십시요.
2025-01-10
671
글번호 187077
답변완료
특정선을 돌파할 때 소리가 나게 하고 싶습니다
항상 감사드립니다.
교과서 어딘가에서 본 거 같은데 아무리 찾아도 없어서 염체없지만
질문 하나 드리려고 합니다.
주문과 관계없이 가격이 특정 선을 넘으면 큰 소리로 부저가 울리는
기능을 어떻게 구현할 수 있을까요? 구체적으로
가격이 365를 위로 돌파하면 소리가 난다.
이런 것입니다.
죄송하고 감사드립니다.
2025-01-10
508
글번호 187070
답변완료
수식문의 드립니다.
코인 시스템 문의 드립니다.
1.3분봉수식에 일봉조건을 추가하고 싶습니다.
1-1. 3분봉에 일봉 cci(50)>0 보다 클때
1-2. 3분봉 수식에 일봉 볼린져밴드 상단 돌파할때
1-3. 3분봉 수식에 일봉 파라볼릭이 상승추세일때
1-4. 3분봉 수식에 일봉 ma(c,120)위에 있들때
를 분봉에 추가 하는 수식 부탁드립니다.
--아래---
Input : Period1(50),Period2(9);
var : af(0.02),ADXv(0),count(0), maxAF(0.2),CCIv(0),CCIsig(0),a(0),a1(0),a2(0),a11(0),a22(0),a33(0), 전환선(0),기준선(0),선행1(0),선행2(0),선행스팬1(0),선행스팬2(0),구선행스팬1(0),구선행스팬2(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
ADXv = ADX(11);
a=ma(c,5);
a1=ma(c,20);
a2=ma(c,5);
a11=ma(v,5);
a22=ma(v,10);
a33=ma(v,20);
var1 = SAR(af,maxAF);
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행1 = (전환선+기준선)/2;
선행2 = (highest(H,52)+lowest(L,52))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
구선행스팬1 = (전환선[51]+기준선[51])/2;
구선행스팬2 = (highest(H,52)[51]+lowest(L,52)[51])/2;
value1 = max(선행스팬1,선행스팬2);
value2 = min(선행스팬1,선행스팬2);
if((CrossUp(a2,선행스팬2) and 선행스팬1<선행스팬2)or (CrossUp(a2,선행스팬1) and 선행스팬1>선행스팬2)) and adxv>adxv[1] and a11>a22 and 선행1>선행2 and var1<c and c>선행1 Then
count=0;
if CrossUp(cciv,100) Then
{
count = count+1;
var1=cciv;
Var2=var1[1];
if count == 0 and dayopen()<c Then
Buy("b");
if count == 1 and dayopen()<c Then
Buy("b1");
if count == 2 and dayopen()<c Then
Buy("b2");
if count == 3 and dayopen()<c Then
Buy("b3");
}
if cciv>100 and (CrossDown(cciv,ccisig)) Then
ExitLong();
2025-01-10
618
글번호 187069