커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1691
글번호 230811
베어샘 님에 의해서 삭제되었습니다.
2021-10-26
66
글번호 153175
답변완료
문의 드립니다.~
수고하십니다~
아래와 같이 시간설정을 하였는데
질문1 다른 시간데는 정상적으로 돌아가는데
input : StartTime3(003000),EndTime3(010000);
에서는 0시 30분 부터가 아니고 00시 부터 시작됩니다.
왜 그런지요?
질문2 1분봉 차트에서는 전체시간이 돌아가는데
틱봉에서는
input : StartTime1(183000),EndTime1(193000); 부분만 돌아가고
다른 시간대는 실행되지 않는데 틱봉에서도 설정된 전체시간이
실행되게 하려면 어떻게 해야 하나요?
input : StartTime1(183000),EndTime1(193000);
input : StartTime2(220000),EndTime2(223000);
input : StartTime3(003000),EndTime3(010000);
input : StartTime4(010000),EndTime4(013000);
input : ntime(100000),n(10);
var : Tcond(false);
var : OO(0),HH(0),LL(0);
if (sdate != sdate[1] and stime >= EndTime1) or
(sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime1) or
(sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then
{
Tcond = true;
SetStopEndofday(EndTime1);
}
if (sdate != sdate[1] and stime >= EndTime2) or
(sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime2) or
(sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then
{
Tcond = true;
SetStopEndofday(EndTime2);
}
if (sdate != sdate[1] and stime >= EndTime3) or
(sdate == sdate[1] and stime >= EndTime3 and stime[1] < EndTime3) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime3) or
(sdate == sdate[1] and stime >= StartTime3 and stime[1] < StartTime3) Then
{
Tcond = true;
SetStopEndofday(EndTime3);
}
if (sdate != sdate[1] and stime >= EndTime4) or
(sdate == sdate[1] and stime >= EndTime4 and stime[1] < EndTime4) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime4) or
(sdate == sdate[1] and stime >= StartTime4 and stime[1] < StartTime4) Then
{
Tcond = true;
SetStopEndofday(EndTime4);
}
Tcond = true;
OO = O;
HH = H;
LL = L;
if Tcond == true Then
{
if TotalTrades > TotalTrades[1] Then
{
OO = O;
HH = H;
LL = L;
}
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
if MarketPosition == 0 and OO > 0 and LL > OO-PriceScale*n Then
Sell("s",AtLimit,LL+PriceScale*n);
if MarketPosition == 0 and OO > 0 and HH < OO+PriceScale*n Then
Buy("b",AtLimit,HH-PriceScale*n);
2021-10-26
867
글번호 153163
신대륙발견 님에 의해서 삭제되었습니다.
2021-10-26
17
글번호 153162
답변완료
수치 범위에 관해서 질문드립니다
안녕하세요
분봉상에서 일봉 이동평균선을 표현하는데
키움에서는 범위지정 방법이 없어서 일일이 수치를 입력해줘야 하는데
예스에서는 간단하게 표현할 수 있는 방법이 있을까요?
예로 20일 이평을 구하려는데 모든 수치를 작성해야되서요
sv1=(npredayclose(4)+npredayclose(3)+npredayclose(2)+
npredayclose(1)+dayclose())/5;
sv2=(npredayclose(19)+npredayclose(18)+npredayclose(17)+
npredayclose(16)+npredayclose(15)+npredayclose(14)+
npredayclose(13)+npredayclose(12)+npredayclose(11)+npredayclose(10)
+npredayclose(9)+npredayclose(8)+npredayclose(7)+
npredayclose(6)+npredayclose(5)+npredayclose(4)+
npredayclose(3)+npredayclose(2)+
npredayclose(1)+dayclose())/20;
2021-10-26
923
글번호 153161
답변완료
시스템 이상 검토의뢰
안녕하세요
예스스탁입니다.
Input : Period1(1), Period2(15), Period3(30), Period4(60), Period5(120),period6(240),Period7(480), Period8(960), Period9(1920), Period10(3840),period11(7680);
var : T(0);
var3 = ma(C,Period3);
var4 = ma(C,Period4);
var8 = ma(C,Period8);
var10 = ma(C,Period10);
if CrossUp(var8,Var10) Then
T = 1;
if CrossDown(var8,Var10) Then
T = -1;
if T == -1 and CrossUp(Var3,Var4) Then
Buy();
if T == 1 and CrossDown(Var3,Var4) Then
Sell();
즐거운 하루되세요
> tnsflwls 님이 쓴 글입니다.
> 제목 : 시스템 작성 의뢰
>
수고 하십니다 !
Input : Period1(1), Period2(15), Period3(30), Period4(60), Period5(120),period6(240),Period7(480), Period8(960), Period9(1920), Period10(3840),period11(7680);
이동평균선 8선 이 이동평균선 10선 을 크로스다운 하고 난 다음에 이동평균선 3선이
이동평균선 4선 을 크로스업 할때는 매수 를 ,
이동평균선 8선 이 이동평균선 10선 을 크로스업 하고 난 다음에 이동평균선 3선이
이동평균선 4선 을 크로스다운 할때는 매도 를 할수있는 수식을 부탁 드립니다.
##### 수식을 적용하였으나 매매 체결이 안되는데요 , 우선 먼저 이평8 선과 10선이
크로즈를 하고 난 다음 , 한참 진행이 된 후에 이평3 선과 4선이 크로즈될때 매매 체결이
되는수식으로 작성을 다시 한번 부탁 드립니다.
*** 수고 하세요 ***
2021-10-26
895
글번호 153157
답변완료
문의 드립니다.
안녕하세요.
시스템 구현에 있어서 어려움을 겪고 있어서 문의 드립니다.
[1]은 지표 구현에 관련된 질문입니다.
[2]은 [1]을 활용한 시스템 설정입니다.
만약 구현이 가능하지 않는다면 몇번 항목이 안되는지, 그리고 대체 방안을 알려 주시면 감사하겠습니다.
[1] 새로운 하루가 시작되었을 시
변수를 모두 초기화를 시키고 해당 조건을 만족한 시점부터
지표를 생성한다.
예) 장 시작 후 양봉이 연속해서 6개 발생 할 경우
6개 봉의 최고점 값과 최저점 값을 표시하는 지표(화면 표시)를 생성.
이후, 새로운 6연속 양봉 생성시 지표 값을 갱신.
다음날 장 시작 시, 어제의 지표 값은 초기화. 양봉 6개 연속해서 발생 시 다시 지표 생성
[2]
A : 최초로 발생한 6연속 양봉의 (최고점)
B : 최초로 발생한 6연속 양봉의 최저점
C : 두번째로 발생한 6연속 양봉의 (최고점)
D : 두번째로 발생한 6연속 양봉의 최저점
거래시간: [진입시간: 금일 오전 11시부터 익일 오전 1:00,
청산시간: 금일 오전 11시부터, 익일 오전 5:30분 (장종료 30분전까지)]
1. 지표 값이 생성(최초로 발생한 6연속 양봉) 된 이후
-> A 돌파 시 한번의 매수 기회 / B 돌파 시 한번의 매도 기회가 주어진다.
예) A돌파 후 B에서 손절 -> B 스위칭 -> A도달시 손절 후 스위칭을 하지 않는다.
예) A돌파 후 목표가 청산 - > B돌파 이후 목표가 청산
- > A 또는 B 다시 돌파시 거래하지 않는다.
목표가: 1) 매수 진입 시: A+ (A-B) / 매도 진입시: B - (A-B)
2) 매수 진입(A 돌파) 시 손절 또는 수익 발생 후 다시 A를 돌파 하여도 거래하지 않는다.
매도 진입(B 돌파) 시 손절 또는 수익 발생 후 다시 B를 돌파 하여도 거래하지 않는다.
손절가: 1) A 돌파 시, B 값에 손절 후 스위칭(최초 B값 진입 시 스위칭 진행) /
B 돌파 시, A 값에 손절 후 스위칭(최초 A값 진입 시 스위칭 진행)
*목표가 및 손절가에 도달하지 못하고 지표 값이 갱신 될 경우 2번으로 넘어간다.
2. 지표 값이 갱신(새로운 6연속 양봉 발생) 된 이후
A) 보유하고 있는 포지션이 없을 경우
-> C 돌파 시 한번의 매수 기회 / D 돌파 시 한번의 매도 기회가 주어진다.
예) C돌파 후 B에서 손절 -> D 스위칭 -> C도달시 손절 후 스위칭을 하지 않는다.
예) C돌파 후 목표가 청산 - > D돌파 이후 목표가 청산
- > C 또는 D 다시 돌파시 거래하지 않는다.
목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D)
2) 매수 진입(C 돌파) 시 손절 또는 수익 발생 후 다시 C를 돌파 하여도 거래하지 않는다.
매도 진입(D 돌파) 시 손절 또는 수익 발생 후 다시 D를 돌파 하여도 거래하지 않는다.
손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) /
D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행)
B) 포지션을 보유하고 있을 경우 (A 또는 B에서 진입한 경우)
-> 매수 또는 매도를 이미 진입한 경우 C, D를 이용하여 목표 값 및 손절 값을 새롭게 갱신한다.
목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D)
2) 매수 포지션을 손절 또는 수익 발생 후 C를 돌파하는 경우 단 한번 거래를 진행한다.
매도 포지션을 손절 또는 수익 발생 후 D를 돌파하는 경우 단 한번 거래를 진행한다.
손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) /
D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행)
3. 지표 값이 지속적으로 갱신 될 경우 (E,F / G,H / I,J ....)
-> 2번을 반복한다.
4. 목표 값 및 손절 값을 도달 못할 시 익일 오전 5:30분 (장 종료 30분전)에 보유 중인 모든 포지션을
자동 청산한다.
감사합니다.
2021-10-26
756
글번호 153156
답변완료
도움을 부탁드리겠습니다.
안녕하세요...항상 감사합니다.
일봉에서 검색식 세가지 요청드립니다.
5ma 20ma 두이평 선이 ..
1>
1일차 골드크로스, 2일차 <음봉>, 3일차 오늘 검색
골드크로스 발생한날 거래량,시가,종가
2일차 음봉의 거래량, 시가,종가
3일차인 오늘 검색식을 써서,
2일차 음봉거래량이 1일차 골드크로스날보다 작고,
2일차 음봉종가가, 1일차 시가+종가의 중간이상인 종목 검색
2>
1일차 골드크로스, 2일차 양봉, 3일차 <음봉>, 4일차가 오늘
1일차 골드크로스 발생한날 거래량,시가,종가
2일차 양봉일것
3일차 음봉의 거래량 시가, 종가 를 변수에 담고
4일차인 오늘 검색식을 써서
3일차 음봉거래량이 1일차 골드크로스날보다 작았고,
3일차 음봉종가가, 1일차 시가+종가의 중간이상인 종목 검색
3> 혹시 위의 두식을 일반화 해서
골드크로스 이후 2일차 첫음봉발생, 또는 3일차 첫음봉발생,
또는 n일차에 "첫 음봉발생"하고,
음봉거래량이 골드크로스 날보다작고, 음봉종가는 골드크로스날의 중간이상...을
n일차 변수로 해서 작성할수 있을까요..
2021-10-26
1031
글번호 153155
답변완료
종목 검색이 잘 되지 않아 다시 질문드립니다.
https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=1&num=153763&ref=153745&Sort=&KeyField=NickName&KeyWord=mhim30
위 링크는 저번에 질문드렸었던 링크입니다.
답변 잘 받았습니다.
다름이 아니라 답변해주시는대로 해보았으나, 검색되어야 될 종목이 검색이 되질 않아
다시 질문드려봅니다.
첨부 이미지를 보시면 초록색 선이 있는데 그 선은 일봉상 상한가 전날의 종가에 선을 그어
놨고, 그 선에 +5%~-10% 범위 안에 들어오는 종목을 검색하고자 합니다.
위 조건이라면 재영솔루텍 종목이 검색되어야되는데, 검색이 되질 않습니다.
다시 한번 봐주시면 감사하겠습니다.
감사합니다.
2021-10-25
1485
글번호 153154
답변완료
문의드립니다
1.
5일과20일크로스업 인 당일종목검색을 하고 전일종목검색을하고 전전일 검색을 하고싶은데
Input : Period(0) 를 이용하여 할수있는 방법이 있을까요? 아니면 다른 방식이 있으면 알려주세요
2.
당일 10분봉에서 평균거래량보다 2배이상거래봉 2번이상 나온종목을 찾고싶습니다
2021-10-26
930
글번호 153153