커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4413
글번호 230811
답변완료
수식작성 부탁드립니다
안녕하세요?
아래의 수식작성 부탁드립니다
ma(C, Period)가
1.중간값 (dayhigh(0)+daylow(0)/2) 보다 크면 매수
2.중간값 (dayhigh(0)+daylow(0)/2) 보다 작으면 매도
감사합니다.
2018-07-12
149
글번호 120514
답변완료
3일뒤 시가 매도 수식 부탁트립니다
단순하게 3일뒤 시가에 매도하고자 합니다.
수식 부탁드립니다
2018-07-12
141
글번호 120512
답변완료
시스템 질문드립니다 상한가 관련
시가대비 종가가 15프로이상
거래대금 700억 이상의 상한가 종목을 저가에서 고가까지 연결한 피보나치 조정대(위쪽부터 0.236)를 긋고
다음날 상한가대비 플러스 2프로 이하로 시작한다면
어제그은 피보나치 0.382에서 매수 3.3프로이상이면 익절 마이너스 3프로면 손절
단 매수가능시간대는 오전10시이전
한번 매수매도가 이루어졌으면 더이상 매매하지않기 설정
상한가 다음날 날짜와 시가고가저가종가를 메세지로그로 출력
이거 가능할까요? 부탁드립니다
2018-07-12
176
글번호 120510
답변완료
수식문의드립니다.
1틱차트입니다.
if c < c[1] * 0.99 then
buy();
위 시스템을 적용시켰을때
제가 생각한 개념은 현재가격이 직전가격보다 1%이상으로 하락하면
매수한다는 것인데요.
실제로 구동해보면
예를들어 직전가격 1000 현재가격이 980 이면
옅은 화살표만 뜨고 (예비신호)
실제로 다시 990이나 1000을 찍어야 신호가 나옵니다.
1틱차트이니 봉완성시나 이런 개념이 필요없을텐데
왜 980 일때 신호가 안뜨는 건가요?
혹시 틀린이유나 수식이 틀렸다면 알려주세요
감사합니다.
2018-07-12
148
글번호 120509
답변완료
문의드립니다
볼린저 밴드 2개 를 하나로 만드는 수식좀 부탁드립니다
60 . 2 60. 3 이렇게 두개를 한 지표로 만드는 수식 부탁드립니다
2018-07-12
147
글번호 120508
답변완료
부탁 드립니다.
도움주심에 감사 드립니다.
data2를 이용한 타주기용 수식 부탁 드립니다.
input :p100(100),적청3병갯수(3), n(4),사각형그리기1삭제0(0);
var : T(0),cnt1(0),d1(0),t1(0),h1(0),l1(0);
var : cnt2(0),d2(0),t2(0),h2(0),l2(0);
var : tl11(0),tl12(0),tl13(0),tl14(0);
var : tl21(0),tl22(0),tl23(0),tl24(0);
var : v1(0),v2(0),v3(0),v4(0);
v1 = iff(C>O,abs(C-O),0);
v2 = AccumN(v1,p100);
v3 = countif(C>O,p100);
v4 = v2/v3;
if C > O Then
T = 1;
if C < O Then
T = -1;
if T == 1 and T[1] != 1 Then
{
cnt1 = 0;
d1 = sdate;
t1 = stime;
h1 = H;
l1 = L;
}
if T == 1 Then
{
cnt1 = cnt1+1;
if h > h1 Then
h1 = h;
if l < l1 Then
l1 = l;
}
if T == -1 and T[1] != -1 Then
{
cnt2 = 0;
d2 = sdate;
t2 = stime;
h2 = H;
l2 = L;
}
if T == -1 Then
{
cnt2 = cnt2+1;
if h > h2 Then
h2 = h;
if l < l2 Then
l2 = l;
}
if T != 1 and T[1] == 1 and cnt1[1] >= 적청3병갯수 and C[1] > O[1] Then
{
var1 = h1;
var2 = L1;
if Condition1[1] == true then
TL_SetEnd(tl11[1],sdate[cnt1+1],stime[cnt1+1],var1[1]);
tl11 = TL_New(d1,t1,h1,sdate[1],stime[1],h1);
if 사각형그리기1삭제0==1 then
{
tl12 = TL_New(d1,t1,l1,sdate[1],stime[1],l1);
tl13 = TL_New(d1,t1,h1,d1,t1,l1);
tl14 = TL_New(sdate[1],stime[1],h1,sdate[1],stime[1],l1);}
TL_SetColor(Tl11,RED);
TL_SetColor(Tl12,RED);
TL_SetColor(Tl13,RED);
TL_SetColor(Tl14,RED);
Condition1 = false;
if h1-l1 >= v4*n Then
Condition1 = true;
if Condition1 == false Then
TL_Delete(TL11);
}
Else
{
if Condition1 == true then
{
TL_SetExtRight(TL11,true);
TL_Setsize(TL11,2);
}
}
if T != -1 and T[1] == -1 and cnt2[1] >= 적청3병갯수 and C[1] < O[1] then
{
var3 = H2;
var4 = L2;
if Condition2[1] == true then
TL_SetEnd(tl22[1],sdate[cnt2+1],stime[cnt2+1],var4[1]);
tl22 = TL_New(d2,t2,l2,sdate[1],stime[1],l2);
if 사각형그리기1삭제0==1 then
{
tl21 = TL_New(d2,t2,h2,sdate[1],stime[1],h2);
tl23 = TL_New(d2,t2,h2,d2,t2,l2);
tl24 = TL_New(sdate[1],stime[1],h2,sdate[1],stime[1],l2);}
TL_SetColor(Tl21,BLUE);
TL_SetColor(Tl22,BLUE);
TL_SetColor(Tl23,BLUE);
TL_SetColor(Tl24,BLUE);
Condition2 = false;
if h2-l2 >= v4*N Then
Condition2 = true;
if Condition2 == false Then
TL_Delete(TL22);
}
Else
{
if Condition2 == true then
{
TL_SetExtRight(TL22,true);
TL_Setsize(TL22,2);
}
}
2018-07-12
155
글번호 120504
답변완료
수정요청 드립니다.
안녕하세요? 아래와 같이 몸통길이변수가 변수를 입력해도 바뀌지가 않아서 그구분에 대하여 수정요청 드려서 교정 받았습니다.
근데, 수정받고나니까 몸통길이변수가 먹통이 되어버렸습니다.
다시한번 잘 살펴주셔서 수정부탁 드립니다.
감사합니다.
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
안녕하세요? 아래는 주고받은 내역입니다.
현재 몸통틱수(변수)가 변수를 다른것을 적용하여도 바뀌지가 않는것 같습니다.
다시한번 확인 부탁드립니다.
감사합니다.
--------------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
input : 몸통길이틱수(10),익절틱수(10),손절틱수(10);
var : T(0);
var1 = abs(C-O);
if MarketPosition == 0 and countif(C<O,2) == 2 and var1 == var1[1] then
{
sell("s");
}
if MarketPosition == 0 and countif(C>O,2) == 2 and var1 == var1[1] then
{
Buy("b");
}
SetStopProfittarget(익절틱수*PriceScale,PointStop);
SetStopLoss(손절틱수*PriceScale,PointStop);
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 간단한 수식작성 부탁드립니다.
> 간단한 수식작성 부탁드립니다.
감사합니다.
**진입조건
1.몸통 길이가 같은 연속 음봉 2개 매도
2.몸통 길이가 같은 연속 양봉 2개 매수
#몸통길이 : 외부변수
**청산조건
1.손/익절 : 외부변수
#진입후 청산 이후 재진입 반복. (익절이든 손절이든 하기전에 신규진입 금지)
2018-07-12
155
글번호 120501
답변완료
확장차트에서 예스랭귀지 적용 질문입니다
제가 예스스팟과 예스랭을 배운지 얼마 안돼서 모르는 부분이 많습니다.
종목 검색을 통해서 검색된 종목에 확장차트를 생성하는 부분까지 만들었습니다.
매수는 예스스팟을 통해 종목 검색을 해서 매수를 하고 매도는 예스랭귀지를 CCI에서
+100선을 하향 돌파할때 매도구현을 하고 싶습니다. 예스랭귀지로 매도로직을 만들었는데 확장차트에 적용을
어떻게 해야 하는지 몰라서요. 차트객체는 예스스팟에서 차트아이디를 통해
연결을 했는데 종목검색을 통해 검색된 종목에 각각 확장차트객체를 만들었는데
예스랭귀지로 작성한 식을 어떻게 다수에 검색되어 생성된 확장차트에 적용해야 할지를 검색해도 모르겠습니다ㅠ 그래고 CCI를 차트에서 보이게 할 방법도 있다면 부탁드립니다. 가능한 구현인지 답변 부탁드립니다~
2018-07-12
177
글번호 120500
답변완료
부탁드립니다
안녕하세요?
아래 수식은 일전에 도움받아서 감사히 잘 사용하고있는 수식입니다
(* 추세선과 1P가 진행시 그자리가 표시되는 수식입니다)
헌데 여기서 추세선은 빼고 1P 자리만 표시되게 수식을 수정하고싶습니다
부탁드립니다
===========================================================================
Input:전환포인트(1),선굵기(6);
Var : j(0),upTr(100),dnTr(-100),trnd(0),TL1(0),TL2(0),TL3(0);
var : date11(0),date12(0),time11(0),time12(0);
Array:hiVal[10](0),loVal[10](0),hiBar[10](0),loBar[10](0);
for j = 1 to 9 {
loBar[j] = loBar[j] + 1;
hiBar[j] = hiBar[j] + 1;
}
if hiVal[0] <= H or hiVal[0] == 0 then
{
hiVal[0] = H;
hiBar[0] = 0;
}
else
{
hiBar[0] = hiBar[0] + 1;
}
if loVal[0] >= L or loVal[0] == 0 then
{
loVal[0] = L;
loBar[0] = 0;
}
else
{
loBar[0] = loBar[0] + 1;
}
if trnd != dnTr && hiVal[0] > H && hiVal[0]-전환포인트 > L then
trnd = dnTr;
else if trnd != upTr && loVal[0] < L && loVal[0]+전환포인트 < H then
trnd = upTr;
if trnd[1] == upTr and trnd == dnTr then
{
//SELL();
TL2 = TL_New(sdate,stime,999999999,sdate,stime,0);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,선굵기);
for j = 8 downto 1
{
hiVal[j+1] = hiVal[j];
hiBar[j+1] = hiBar[j];
}
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜
time11 = stime[loBar[1]]; //추세선 시작시간
Value11 = loVal[1]; //추세선 시작가격
date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜
time12 = stime[hiBar[1]]; //추세선 종료시간
Value12 = hiVal[1]; //추세선 종료가격
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,red);
TL_SetSize(TL1,선굵기);
}
if trnd[1] == dnTr and trnd == dnTr and
hiVal[1] < hiVal[0] and
hiVal[0]-전환포인트 > L then {
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
date12 = date[hiBar[1]]; //추세선 종료일
time12 = stime[hiBar[1]];
Value12 = hiVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
}
if trnd[1] == dnTr and trnd == upTr then
{
//BUY();
TL2 = TL_New(sdate,stime,999999999,sdate,stime,0);
TL_SetColor(TL2,red);
TL_SetSize(TL2,선굵기);
for j = 8 downto 1
{
loVal[j+1] = loVal[j];
loBar[j+1] = loBar[j];
}
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
date11 = date[hiBar[1]];
time11 = stime[hiBar[1]];
Value11 = hiVal[1];
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,blue);
TL_SetSize(TL1,선굵기);
}
if trnd[1] == upTr and trnd == upTr and
loVal[1] > loVal[0] and
loVal[0]+전환포인트 < H then
{
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
}
2018-07-12
155
글번호 120499