커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1535
글번호 230811
답변완료
신호변환 부탁 드려요^^
키움에서 쓰던거라 지표는 다만들었는데...답답한게 많네요. 도움 주시면 감사하겠습니다.
1. 후팬볼밴(파랑)
Bu = BBandsUp(20,2);
Crossup(C, Bu(25))
2. 후팬볼밴5(핑크)
Bu = BBandsUp(20,2);
Crossup(C, Bu(25)) && C>C(1) * 1.05
3. 저점W패턴(녹색)
M = ma(C, 20);
T = LRL(20) + LRS(20);
T저점 = T>T(1) && T(1)<T(2);
shift(T저점, -1)
2025-07-30
252
글번호 192878
답변완료
질문 부탁드립니다
그럼 만약에 최초 조건 만족시가 아니라
조건 만족 할때마다 var1에 새로운 값이 들어가게 될때는 if var1 ==0 and 가 들어가야 하나요?
아니면 그냥 if aa[y] >= aa[x] *2 then 이라고 해도 되나요?
코드 진행 순서가 궁금한데요 for문을 반복 수행할때마다 다시 코드 시작점 (var1=0; 부터)으로 돌아가서 반복을 하는게 아니라 for 시작점 (for x = 0 to 5 )에서 다시 시작하는게 맞지 않나요??
감사합니다
var : x(0) , y(0);
var1=0;
for x = 0 to 5
{
for y= 0 to 4+(x*5)
{
if var1 ==0 and aa[y] >= aa[x] *2 then
{
var1= aa[y];
}
}
}
2025-07-30
215
글번호 192875
답변완료
검색식 부탁드립니다~
수고 많으십니다.
아래 조건을 만족할 때 검색식 부탁드립니다.
< 조건1 >
crossup(c,((predayhigh()+
predaylow()+predayclose())/3)
+(predayhigh()-predaylow()))
< 조건 2 >
s=sum(1);
valuewhen(1,624-s==20,(종가+시가)/2);
** 3분봉 상, 검색 조건 **
조건1이 2번 이상 발생 되고 난 후
조건2를 깨고 내려갔다가 다시 돌파 할 때 or 깨지 않고 조건2를 지지할 때
(당일 or 며칠 후)
2025-07-30
237
글번호 192868
답변완료
신호검색 부탁드립니다
Hu = WMa(WMa(c,Period/2)*2 - WMa(c, Period), floor(sqrt(Period)));
T = LRL(C,Period)+LRS(C,Period);
조건Up=CrossUp(Hu,T) && Hu>Hu(1) && T>T(1);
조건Dn=CrossDown(Hu,T) && Hu<Hu(1) && T<T(1);
최종=C>Hu && C>T && O<Hu && O<T && Hu>Hu(1) && T>T(1);
bs=BarsSince(조건up);
cnt=CountSince(조건Up,조건Dn)==1;
bs<봉수 && cnt(1) && 최종
Period=20
봉수=20
2025-07-30
216
글번호 192867
답변완료
예스스팟 스튜디오
처음 실행하다 보니 오류가 뜨네요. 도움 주시면 감사하겠습니다. 에러는 줄번호15, 17에서 SyntaxError이라고 뜹니다.
var timer5 = 2; // 2초
var 매수금 = 100000;
var 손절 = 0.95;
var 익절 = 1.05;
var OrderList = [];
var MKList = [];
var req;
?
// 종목 제한 수 (변수로 설정)
var 종목제한수 = 10;
?
function Main_OnStart() {
// 1번 타이머, 1초
Main.SetTimer(1, timer5 * 1000);
?
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
}
?
function Main_OnTimer(nEventID) {
var d = new Date();
YYYYMMDD = d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds();
?
if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 100000) {
// 종목검색 수행
Main.ReqPowerSearch("변동성 돌파전략");
}
?
if (nEventID == 2) {
Main.ReqMarketData(OrderList[req]);
}
}
?
function Main_OnRcvItemList(aItemList, nCount) {
Main.KillTimer(1);
?
OrderList = [];
?
if (nCount >= 1) {
if (MKList.length == 0) {
OrderList = aItemList.slice(0, 종목제한수); // 한정된 수만 가져오기
} else {
for (var a = 0; a < nCount; a++) {
var Add = true;
for (var b = 0; b < MKList.length; b++) {
if (aItemList[a] == MKList[b].code) {
Add = false;
}
}
?
if (Add == true && !IsStockInAccount(aItemList[a])) {
OrderList.push(aItemList[a]);
// 제한 수를 넘는 경우 break
if (OrderList.length >= 종목제한수) {
break;
}
}
}
}
?
if (OrderList.length == 0) {
Main.SetTimer(1, timer5 * 1000);
} else {
req = 0;
Main.ReqMarketData(OrderList[req]);
}
}
}
?
function Main_OnRcvMarketData(MarketData) {
if (MarketData.code == OrderList[req]) {
MKList.push(MarketData);
?
// 계좌에 같은 종목이 있는지 확인
if (!IsStockInAccount(MarketData.code)) {
// 계좌에 없는 경우에만 매수
Account1.OrderBuy(MarketData.code, 1, 0, 1);
//Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), 0, 1);
//Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), MarketData.Ask(1), 0);
?
// 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다.
Main.MessageList(MarketData.code + " 주식을 매수합니다.");
} else {
Main.MessageList(MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다.");
}
?
req = req + 1;
?
if (req < OrderList.length) {
var aa = Main.ReqMarketData(OrderList[req]);
if (aa == -1) {
Main.SetTimer(2, 15000);
}
} else {
Main.SetTimer(1, timer5 * 1000);
}
}
}
?
function IsStockInAccount(stockCode) {
// 계좌에 해당 종목이 있는지 확인하는 함수
var numberOfBalances = Account1.GetTheNumberOfBalances();
?
for (var i = 0; i < numberOfBalances; i++) {
Account1.SetBalance(i);
if (stockCode == Account1.Balance.code) {
return true; // 계좌에 같은 종목이 있으면 true 반환
}
}
?
return false; // 계좌에 같은 종목이 없으면 false 반환
}
2025-07-30
275
글번호 192865
답변완료
검색식 부탁드립니다. _(_ _)_
항상 도와주심에감사드립니다. _(__)_
이동평균선이 480 240 120 60 20 5에서 배열에 상관없이
한번에 이 모든 이평선을 돌파한 종목 검색식을 부탁드립니다.
2025-07-30
219
글번호 192861
답변완료
수퍼트랜드
수퍼트랜드 지표식부탁합니다
2025-07-29
216
글번호 192860
답변완료
검색식 부탁드립니다.
안녕하세요. 아래수식으로 검색식 부탁드립니다.
EMA1=eavg(C,기간1);
EMA2=eavg(EMA1,기간1);
EMA3=eavg(EMA2,기간1);
B=3*EMA1-3*EMA2+EMA3; // 테마선
E24=eavg(C,기간2);
W24=wavg(C,기간2);
A5=(C+nPreWC(1)+nPreWC(2)+nPreWC(3)+nPreWC(4))/5;
C>=W24 and C>=A5 and crossup(B,E24)
지표변수
기간1:20
기간2:224
주봉함수:nPreWC(n)------- n주전종가
현재가가 W24보다 크거나 같고 현재가가 5주이평(A5)보다 크거나 같을때 테마선(B)이 E24를 돌파
2025-07-29
237
글번호 192859
ujkl 님에 의해서 삭제되었습니다.
2025-07-30
8
글번호 192858