커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1725
글번호 230811
답변완료
교차가 N회 이상인 종목
감사합니다
일봉 이평5가 이평20을 상승교차 했을 때의
종가를 교차수평선이라고 한다면,
그 교차수평선을 기준으로,
일봉 종가가 그 교차수평선을 N회 이상 업다운
(상승교차 하락교차 모두 포함)했는지를
검색하고 싶습니다
2021-03-12
777
글번호 147031
답변완료
거래량 관련 지표 작성 문의
업무에 수고가 많으십니다.
도움주심에 항상 감사합니다.
아래는 당일 첫봉제외 최대거래량을 나타내는 지표입니다만,
첫봉을 제외하고 "1st 최대거래량" 과 함께 "2nd 최대거래량"을 plot으로
나타내고 싶습니다.
도움주시면 감사하겠습니다.
var: HV(0),HVO(0),HVH(0), HVL(0),HVC(0);
var: HV1(0),HVO1(0),HVH1(0), HVL1(0),HVC1(0);
if Bdate != Bdate[1] Then
{
HV = H;
HVO = O;
HVH = H;
HVL = L;
HVC = C;
HV1 = 0;
}
Else
{
if V > HV and HV > 0 Then
{
HV = V;
HVO = O;
HVH = H;
HVL = L;
HVC = C;
}
if HV1 == 0 or (HV1 > 0 and V > HV1) Then
{
HV1 = V;
HVO1 = O;
HVH1 = H;
HVL1 = L;
HVC1 = C;
}
}
plot1(HVO,"시가");
plot2(HVH,"고가");
plot3(HVL,"저가");
plot4(HVC,"종가");
plot5(HVH1,"고가(첫봉제외)");
plot6(HVL1,"저가(첫봉제외)");
2021-03-12
704
글번호 147028
답변완료
재문의2
알려주신 대로 해 보았는데 거래가 발생하지 않습니다.
한번만 다시 봐주실 수 있을까요? 수식상의 오류인지 아니면 시스템 설정상에 오류인지 파악이 안 되고 있습니다 도움 부탁드립니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 오류 수정 부탁드립니다!
> 안녕하세요
예스스탁입니다.
1
Entry변수가 시작시간에 0으로 초기화가 됩니다.
초기화가 되는 부분을 삭제하시면 됩니다.
input : 시작시간(90000), 끝시간(100000), 시작시간2(100000), 끝시간2(131900), K(0.5);
var : Tcond(false), Entry(0);
if sTime == 시작시간 or (sTime >= 시작시간 and sTime[1] < 시작시간)then
{
var1 = H;
var2 = L;
}
if sTime >= 시작시간 and sTime < 끝시간 Then
{
if H > var1 Then
var1 = H;
if L < Var2 Then
Var2 = L;
}
if (sdate != sdate[1] and stime >= 시작시간2) or
(sdate == sdate[1] and stime >= 시작시간2 and stime[1] < 시작시간2) Then
{
Tcond = true;
}
Entry = DayOpen + (Var1-Var2)*K;
if (sdate != sdate[1] and stime >= 끝시간2) or
(sdate == sdate[1] and stime >= 끝시간2 and stime[1] < 끝시간2) Then
Tcond = False;
if MarketPosition == 0 and Tcond == true Then
Buy("B",AtStop,Entry);
if MarketPosition == 1 and NextBarSdate != sdate Then
exitlong("bx",AtMarket);
2
시가가 당일시가입니다.
만약 시작시간2의 시가이면 아래식 적용하시면 됩니다.
input : 시작시간(90000), 끝시간(100000), 시작시간2(100000), 끝시간2(131900), K(0.5);
var : Tcond(false), Entry(0),OO(0);
if sTime == 시작시간 or (sTime >= 시작시간 and sTime[1] < 시작시간)then
{
var1 = H;
var2 = L;
}
if sTime >= 시작시간 and sTime < 끝시간 Then
{
if H > var1 Then
var1 = H;
if L < Var2 Then
Var2 = L;
}
if (sdate != sdate[1] and stime >= 시작시간2) or
(sdate == sdate[1] and stime >= 시작시간2 and stime[1] < 시작시간2) Then
{
Tcond = true;
OO = O;
}
Entry = OO + (Var1-Var2)*K;
if (sdate != sdate[1] and stime >= 끝시간2) or
(sdate == sdate[1] and stime >= 끝시간2 and stime[1] < 끝시간2) Then
Tcond = False;
if MarketPosition == 0 and Tcond == true Then
Buy("B",AtStop,Entry);
if MarketPosition == 1 and NextBarSdate != sdate Then
exitlong("bx",AtMarket);
2021-03-12
624
글번호 147018
답변완료
재문의 드립니다
주식시장에서 분봉으로 특정시간에 매수청산하는 식이 어떻게 되는지요?
예) 오전 9시 15분에 포지션을 갖고 있을 경우 매수청산한다
2021-03-12
682
글번호 147017
답변완료
문의
상승각도가 70도 이상이면서
a조건이면 매도인
시스템식 부탁합니다.
2021-03-11
649
글번호 147015
답변완료
문의
이동평균 수렴 부탁합니다.
이평값은 5,10,20,60,120,240 조건이며,
밀집범위는 2 입니다.
2021-03-11
796
글번호 147014
답변완료
문의
5ma 대비 종가 등락률이 20%이상 500%이하
120ma 대비 저가 등락률이 -100%이상 -20%이하인 종목 종목검색식 부탁합니다.
120ma는 종가가 아닌 저가 등락률입니다.
2021-03-11
797
글번호 147013
답변완료
같은 질문을 여러번 드려서 죄송합니다
if MarketPosition == 1 Then
{
if C < lowest(L,15)[BarsSinceEntry] Then
ExitLong("bx1");
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱1 Then
ExitLong("bx2",AtStop,EntryPrice+수익틱1*PriceScale);
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱2 Then
ExitLong("bx3",AtStop,EntryPrice+수익틱2*PriceScale);
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱3 Then
ExitLong("bx4",AtStop,EntryPrice+수익틱3*PriceScale);
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱4 Then
ExitLong("bx5",AtStop,EntryPrice+수익틱4*PriceScale);
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱5 Then
ExitLong("bx6",AtStop,EntryPrice+수익틱5*PriceScale);
ExitLong("bx7",AtLimit,EntryPrice+최종완청틱 *PriceScale);
}
if MarketPosition == -1 Then
{
if C > Highest(H,15)[BarsSinceEntry] Then
ExitShort("sx1");
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱1 Then
ExitShort("sx2",AtStop,EntryPrice+수익틱1*PriceScale);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱2 Then
ExitShort("sx3",AtStop,EntryPrice+수익틱2*PriceScale);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱3 Then
ExitShort("sx4",AtStop,EntryPrice+수익틱3*PriceScale);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱4 Then
ExitShort("sx5",AtStop,EntryPrice+수익틱4*PriceScale);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱5 Then
ExitShort("sx6",AtStop,EntryPrice+수익틱5*PriceScale);
ExitShort("sx7",AtLimit,EntryPrice+최종완청틱 *PriceScale);
}
매수 매도 손절 문제
매도 수익문제
매수는 정상
최송완정문제
이렇게 확인좀 부탁합니다 중간 중간에 기호로 변경해도 정답이 없네요
손절 --- 진입봉 기준 이전 15봉중에서 매도는 최고가 매수는 최저가 이탈시 손절입니다
청산 --- 50틱 수익나고 내려오면 10틱 챙기자 이런 식입니다
꼼꼼이좀 봐주세요
참 손절보다 다음 신호가 나오면 신호가 우선입니다
손절도 외부 변수로 가능하면 부탁합니다
2021-03-11
872
글번호 147012
답변완료
Re : 지표 문의드립니다
아래와 같이 수고스런 답변주셔서 대단히 감사드립니다.
한번만 더 요청을 드립니다.
일봉의 2일이평과 5일이평도 추가하고 싶습니다.
번거롭지만 꼭 부탁드립니다.
감사합니다 꾸벅
안녕하세요
예스스탁입니다.
input : ntime1(2),P1(60),P2(120);
input : ntime2(30);
var : S1(0),D1(0),TM(0),TF1(0),cnt(0),TF2(0);
var : sum1(0),mav1(0),sum2(0),mav2(0);
Array : CC[200](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%ntime1;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or
(Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then
{
for cnt = 1 to 199
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P1-1
{
sum1 = sum1+CC[cnt];
}
mav1 = sum1/P1;
#plot1(mav1,"이평1");
}
if CC[P2-1] > 0 then
{
sum2 = 0;
for cnt = 0 to P2-1
{
sum2 = sum2+CC[cnt];
}
mav2 = sum2/P2;
#plot2(mav2,"이평2");
}
TF2 = TM%ntime2;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or
(Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then
{
if mav1 > 0 Then
var1 = mav1;
if mav2 > 0 Then
var2 = mav2;
}
if var1 > 0 Then
Plot3(var1);
if var2 > 0 Then
Plot4(var2);
}
즐거운 하루되세요
> 포보스 님이 쓴 글입니다.
> 제목 : 지표 문의드립니다
> 틱챠트에서
2분봉챠트의 60이평과 120이평값을 30분단위로 가로선으로 표기하고 싶습니다.
마치 당일 중심선 그려나가듯이 말이죠.
어려운 부탁인줄 아오나 꼭 부탁드립니다.
감사합니다.
2021-03-11
873
글번호 147011