커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4428
글번호 230811
답변완료
주봉 월봉 삼각가중이평
일봉에 표시할 삼각가중이동평균선을 부탁드립니다.
1. 주봉 삼각가중이평 5, 20, 60, 120
2. 월봉 삼각가중이평 5, 20, 60, 120
참조데이터를 사용하지 않는 방법으로 부탁드립니다.
2018-08-25
227
글번호 121598
답변완료
에러 원인
수식 잘 보았습니다. 그런데 수정되어야 할 부분이 있습니다. 우선 아래 코드에서 var3가 사용되어야 할 자리에 var2가 사용되었네요. 사소한 실수지만... 이렇다면 검색이 잘 되지 않았을 것이네요...
그리고 한 가지 로직을 변경합니다. 아래 수식에서 종가를 사용하고 있는데, 그것을 고가로 바꾸겠습니다. 그래서 다음과 같이 수식을 변경합니다.
var : T(0);
var1 = ma(v,20);
if V >= var1*2.5 Then
{
T = 1;
var2 = index;
var3 = H;
var4 = V;
}
if T == 1 and index > var2 and
H <= var3*1.02 and
H >= var3*0.98 and
V <= var4*0.5 Then
T = 2;
if T == 2 and index == var2+20 Then
find(1);
그런데 이 수식으로도 제가 원하는 답을 얻지 못했습니다. 그 이유는 이 로직으로 8/13일을 기준으로 비트컴퓨터라는 종목이 반드시 검색되어야 하는데 그렇지 않습니다.
7/20 금요일: 고가 7240, 거래량 5133K, 거래20이평 466K
8/13 월요일: 고가 7180, 거래량 835K
기준일 대비 16일전(20일 이내)인 7/20에 거래량이 거래20이평의 2.5배 기준을 만족했고, 16일 뒤 8/13일 고가는 2%이내이며, 거래량은 반 이하라는 조건을 만족하는 종목입니다. 그러나 위 식으로 검색이 되지 않습니다. 왜 그런지 원인을 좀 찾아 주시면 감사하겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 거래급증후급감
> 안녕하세요
예스스탁입니다.
var : T(0);
var1 = ma(v,20);
if V >= var1*2.5 Then
{
T = 1;
var2 = index;
var3 = C;
var4 = V;
}
if T == 1 and index > var2 and
C <= var2*1.02 and =======> 여기서 var2는 var3
C >= var2*0.98 and =======> var2는 var3
V <= var4*0.5 Then
T = 2;
if T == 2 and index == var2+20 Then
find(1);
즐거운 하루되세요
> 솔잎22 님이 쓴 글입니다.
> 제목 : 거래급증후급감
> 안녕하세요, 수고가 많으십니다.
다음과 같은 로직을 만족하는 종목을 검색하고 싶습니다.
20일 전에 거래가 터진 종목을 우선 고름니다. 거래가 터졌다는 것은 그 날을 기준으로 거래량20단순이평보다 그 날 거래가 2.5배 이상 터진 종목으로 정의합니다.
그 날 이후로 오늘까지 중에서, 가격이 상기 거래 터진 날의 가격에 2% 이내로 근접하고, 거래량이 거래 터진 날 거래량의 반으로 줄어든 종목을 골라 냅니다.
잘 부탁드립니다.
2018-08-25
236
글번호 121597
답변완료
부탁 드립니다.
아래수식을 그림과 같이 나타 내고 싶습니다.
미리 감사 드립니다.
Input:기간(5),종가사용여부(0);
Var:TL1(0),신규구분(0),이평선(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(기간, 종가사용여부, 고, 저, 신규구분);
If Value1 == 1 Then { // 고점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
} Else If Value1 == -1 Then { // 저점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
TL_SetSize(TL1,2);
이평선=ma(c,20);
plot1(이평선,"20이평",YELLOW,def,1);
함수식)
//함수명:HiLoLineZigZag
Input:Length(NumericSimple),useCLprice(NumericSimple),
oHiZZ[MaxSize1,MaxSize2](NumericArrayRef), // 열번호 1:가격,2:Index,3:sDate,4:sTime
oLoZZ[MaxSize3,MaxSize4](NumericArrayRef),
oTL_NewBit(NumericRef); // 1:NewLine 2:SetEndLine
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분("");
#==========================================#
HH = IFF(useCLprice==1,C,H);
LL = IFF(useCLprice==1,C,L);
If Index == 0 Then {
oHiZZ[1,1] = HH;
oLoZZ[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생
If oHiZZ[1,1] < HH and oLoZZ[1,1] > LL Then { // 기존의 파동을 벗어난 경우
If HH - oHiZZ[1,1] > oLoZZ[1,1] - LL Then // 많이 벗어난 쪽으로 처리
처리구분 = "고점처리";
Else If HH - oHiZZ[1,1] < oLoZZ[1,1] - LL Then
처리구분 = "저점처리";
Else If 최종꼭지점 == "저점" Then // 벗어난 정도가 동일하면 지그재그 순서대로
처리구분 = "고점처리";
Else
처리구분 = "저점처리";
} Else If oLoZZ[1,1] > LL Then 처리구분 = "저점처리";
Else If oHiZZ[1,1] < HH Then 처리구분 = "고점처리";
Else If 최종꼭지점 == "저점" Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
} Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
oTL_NewBit = 0;
#==========================================#
If 처리구분 == "고점처리" Then {
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then {
For j = 10 DownTo 2 {
For jj = 1 To 4 {
oHiZZ[j,jj] = oHiZZ[j-1,jj];
}
}
oHiZZ[1,1] = HH;
oHiZZ[1,2] = Index;
oHiZZ[1,3] = sDate;
oHiZZ[1,4] = sTime;
oTL_NewBit = 1;
} Else If oHiZZ[1,1] < HH Then { // 1번 고점보다 높은 고가 출현
oHiZZ[1,1] = HH;
oHiZZ[1,2] = Index;
oHiZZ[1,3] = sDate;
oHiZZ[1,4] = sTime;
oTL_NewBit = 2;
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then {
최종저가 = LL;
If 최종꼭지점 == "고점" then {
For j = 10 DownTo 2 {
For jj = 1 To 4 {
oLoZZ[j,jj] = oLoZZ[j-1,jj];
}
}
oLoZZ[1,1] = LL;
oLoZZ[1,2] = Index;
oLoZZ[1,3] = sDate;
oLoZZ[1,4] = sTime;
oTL_NewBit = 1;
} Else If oLoZZ[1,1] > LL then {
oLoZZ[1,1] = LL;
oLoZZ[1,2] = Index;
oLoZZ[1,3] = sDate;
oLoZZ[1,4] = sTime;
oTL_NewBit = 2;
}
최종꼭지점 = "저점";
}
If 최종꼭지점 == "고점" Then HiLoLineZigZag = 1;
Else If 최종꼭지점 == "저점" Then HiLoLineZigZag = -1;
Else HiLoLineZigZag = 0;
2018-08-25
378
글번호 121595
답변완료
시스탬
1]
Plot1 위로가면 매수 아래로가면 매도plot2 위로가면 매수 아래로가면 매도
Plot1(H[1],"전봉고가",RED);
plot2(L[1],"전봉저가",BLUE);
2018-08-25
194
글번호 121594
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
2분봉차트의 적합이동평균 90선을 틱차트에 나타내고 싶습니다.
분봉차트의 시간값과 적합이동평균의 기간값은 수정가능하게 부탁드립니다.
항상 감사드립니다. 수고하세요!!!
2018-08-25
221
글번호 121593
답변완료
문의드립니다
더운 날씨에 수고가 많으십니다.
시스템식 문의 드립니다.
장 시작후 현재가 매도 5호가로 내려가면 매도
반대로 매수 5호가로 올라가면 매수.
10틱 손절나면 반대로 매매
10틱 수익나면 1분후 다시 현재가 기준으로 5호가 내려가면 매도
반대로 매수 5호가로 올라가면 매수
부탁드립니다 꾸벅
2018-08-25
186
글번호 121592
답변완료
중앙선 수식
안녕하세요
10시에서 현재봉까지의 최고점 + 최저점 / 2
를 표시하는 수식 부탁합니다
2018-08-25
230
글번호 121591
답변완료
RSI (14) 50이하 매도 청산 시그널이 안뜨는데 좀 알려주세요~~
아래 수식으로 시스템을 했는데 첨부화일에 보면 유진차트(그림2)는 매도청산 시그널이 안뜨네요..
참고로 키움W(그림1)에서는 같은 수식으로 했을때는 매도청산 시그널이 뜨는데
무슨 이유가 있나요???
조건: crude 10월만기 챠트,, 30분봉.. 8월 23일
input : P(14);
var1 = RSI(P);
if MaxContracts < 100 then
{
if var1 > 85 and var1 < 90 and C > C[1] and C > C[2] and C > C[3] Then
Sell("매도1배",OnClose,def,min(1,100-MaxContracts));
if var1 > 90 and C > C[1] and C > C[2] and C > C[3] Then
sell("매도2배",OnClose,def,min(2,100-MaxContracts));
}
if MarketPosition == 1 then
{
if var1 < 50 Then
ExitShort();
}
2018-08-25
231
글번호 121590
답변완료
수식 부탁드립니다.
피봇분봉과 디마크의 기준이 전일일봉으로 알고있습니다. 그런데 기준봉을 240분봉으로
변경해서 수식을 짤수도 있나요? 가능하다면 꼭좀 만들어주세요^^
2018-08-25
213
글번호 121589