커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6312
글번호 230811
답변완료
매매신호가 안떠요
안녕하세요!!
종목코드 : 004060
2023년 1월 2일에 매수신호가 떠야되는데 거래내역을 살펴보니 아무것도 안나옵니다.
왜 그런지 알려주시면 감사하겠습니다!
var : band_width(0), bb_top(0), bb_bot(0);
bb_top = BollBandUp(50, 2);
bb_bot = BollBandDown(50, 2);
band_width = (bb_top - bb_bot) / ma(c,50);
Condition1 = MarketPosition == 0 AND band_width <= 0.1 and c > bb_bot;
if Condition1 Then Buy("매수",AtLimiT,bb_bot);
if MarketPosition == 1 Then {
ExitLong("목표가",AtLimit,EntryPrice * 1.01);
ExitLong("손절가",AtStop, EntryPrice * 0.99);
if BarsSinceEntry >= 4 Then ExitLong("만기청산",atmarket);
};
2023-01-06
1283
글번호 165193
답변완료
신고저가 검색
안녕하새요?
종목검색식을 알려주시기 바랍니다.
1. 신고가검색 과거 n봉 신고가와 과거 nday기준 신고가를 구하는 수식.
2. 신저가검색 위와 마찬가지로 과거 봉수기준과 날짜기준 신저가를 구하는 수식.
상기 4가지 수식을 부탁합니다. 감사합니다.
2023-01-06
1497
글번호 165188
답변완료
80244 수식 재문의(내용무)
.
2023-01-06
1390
글번호 165186
답변완료
문의드립니다.
중복신호 포함해서 적용했구요.
캔들과 5일선을 기준으로
캔들이 5일선위에 있을때 매수진입신호는 1번만 나오도록
매도일때도 동일하게요.
간단한거 같은데 어렵네요;
2023-01-06
1321
글번호 165174
답변완료
추세선 박스 크기 표기 위치
input : Period(200);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
var : box(0),box1(0);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
box = box_New_self(date11,time11,Value11,date12,time12,Value12);
Box_SetColor(box,Lime);
Box_SetFill(box,true,30);
Text_SetSize(tx,25);
if abs(value12[1]-value11[1]) < 0.9 Then
Text_Delete(tx);
tx = text_New_self(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Blue);
Text_SetStyle(tx,1,0);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date22 = date[0];
time22 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
Text_SetString(tx,NumToStr(value12-value11,2));
Text_SetLocation(tx,sDate,sTime,value12);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
box = Box_New_self(date11,time11,Value11,date12,time12,Value12);
Box_SetColor(box,Magenta);
Box_SetFill(box,true,30);
Text_SetSize(tx,25);
if abs(value12[1]-value11[1]) < 0.9 Then
Text_Delete(tx);
tx = text_New_self(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
Text_SetString(tx,NumToStr(value12-value11,2));
Text_SetLocation(tx,sDate,sTime,value12);
}
}
Plot1(c);
상승시 박스 크기 표기를 박스 상단 우측을 따라가며 표기하는데, 이것을 박스 하단 우측을 따라가며 표기로 수정. 하락시는 반대로 상단 우측을 따라가며 표기로 수정. 감사합니다.
2023-01-06
1369
글번호 165173
답변완료
문의 드립니다.
안녕하세요
현재 수식을 오전 9시 부터 익일 05시30분 까지 시스템 트레이딩 하는 것으로 작성했는데
처음 시작하는 진입은 수동으로 제가 직접 진입을 하고 그 이후 부터는 자동 매매로 전환되고
오후 10시 20분터 12시 30분까지는 자동 매매를 멈추고 수동 매매를 하고 0시 30분 이후 부터
05시30분까지 자동매매로 전환하는 수식 작성 부탁 드립니다.
항상 감사합니다
2023-01-06
1249
글번호 165172
답변완료
수식변환 문의
항상 도움 주심에 감사드립니다^^
아래 키움 수식을 변환 부탁드립니다
z=c>o and c>highest(c(1),10) and
avg(c,5)>avg(c,5,1) and c>avg(c,5)and
Crossup(C,avg(C, Period))
2023-01-06
1588
글번호 165171
답변완료
지표/종목검색식 부탁드립니다
수고 많으십니다^^
1.A= 종가가 전일종가보다 10% 이상 상승한경우
2.B = 50일만에 처음 오늘 A가 발생한경우
3.C = B의 경우가 오늘포함 지난 60일간 1번이상 발생한 종목
4. C 종목중에서 오늘 종가가 10%상승이 발생한 날의 고가를 뚫고 상승한종목
작성을 하다보니 3번에서 4번으로 넘어가는것이 잘 안돼서 문의 드립니다.
예) IF COUNTIF(C>C[1]*0.1 , 50)==1 AND COUNTIF(C>C[1]*0.1 , 1)==1 THEN
이것은 A가 60일중 오늘 발생한것인데 이걸 B라고 하면
IF COUNTIF(B , 60)==1 AND COUNTIF(B , 1)==1 이렇게 되는데 궁금한것이
이중에서 A발생 기준일 고가를 오늘 종가가 돌파하는걸 표시하는게 궁금합니다.
지표와 종목검색식 부탁드립니다.
감사합니다.
2023-01-06
1559
글번호 165170
답변완료
수식 재문의
친절한 답변 감사드립니다.
아래에 도움 주신 수식 중 누적값을 약간 수정하여
ㄱ. 시작 날짜와 시간을 지정하고
ㄴ. ㄱ 으로 부터 현재까지의 값을 누적하도록
변경하고 싶습니다.
감사합니다.
------ 아래 ---------
Input : Period(20);
Var : P1(0), P2(0), P3(0);
P1 = OI * C;
P2 = (AccumN(M,Period) / AccumN(V,Period)) * OI;
P3 = P1 / P2;
//Plot1(P1);
//Plot2(P2);
Plot3(P3*100);
.
2023-01-06
1214
글번호 165169