커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1581
글번호 230811
답변완료
문의 드립니다
input : starttime(210000),endtime(63000),n(30);
var : Tcond(false),hh(0),h1(0),ll(0),l1(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
}
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
hh = h;
ll = l;
h1 = hh[1];
l1 = ll[1];
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
input : 익절틱수(0),손절틱수(0);
if NextBarSdate != sDate Then
{
if NextBarOpen != C Then
{
Buy("b",AtStop,NextBarOpen+PriceScale*5);
}
}
ExitLong("bx",AtMarket);
if NextBarOpen != C Then
{
Sell("s",AtStop,NextBarOpen-PriceScale*5);
}
ExitShort("sx",AtMarket);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
-----------------------
해외선물 매매구간인(08:00~익일07:00)에서 150분봉 매매시 endtime은 06:30 입니다.
endtime때 매매만 정지가되고 상품의 수량은 그대로인데 endtime전후로 당일 자동청산이
되도록 수식어를 포함하고자합니다.
2023-02-07
629
글번호 166049
회원 님에 의해서 삭제되었습니다.
2023-02-07
11
글번호 166048
답변완료
부탁 드립니다
항상 노고에 감사 드리며
다름이 아니라 chandelier Exit 에 박스처리를 하려했는데...짜집기 오류가되서
수정 부탁드립니다
input : length(28),mult(5.0),showLabels(true),useClose(true),highlightState(true);
var : ATrv(0),longStop(0),longStopprev(0),shortStop(0),shortStopPrev(0);
var : dir(1),longcolor(Red),shortcolor(Blue),tx(0);
var : Tsl(0),linecolor(0);
var : hv(0),lv(0),dv(0),tv(0),box(0),tx(0);
atrv = mult * atr(length);
longStop = IFf(useClose , highest(close, length) , highest(h,length)) - atrv;
longStopPrev = longStop[1];
longStop = iff(close[1] > longStopPrev , max(longStop, longStopPrev) , longStop);
shortStop = IFf(useClose , lowest(close, length) , lowest(L,length)) + atrv;
shortStopPrev = shortStop[1];
shortStop = iff(close[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);
dir = iff(close > shortStopPrev , 1 ,iff( close < longStopPrev , -1 , dir));
IF dir == 1 Then
{
plot1(longStop,"Long Stop",longColor);
NoPlot(2);
}
Else
{
NoPlot(1);
plot2(shortStop,"Short Stop",shortColor);
}
if dir == 1 and dir[1] == -1 Then
{
tx = Text_New(sDate,sTime,longStop,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,longcolor);
Text_setsize(Tx,25);
}
if dir == -1 and dir[1] == 1 Then
{
tx = Text_New(sDate,sTime,shortStop,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,shortcolor);
Text_setsize(Tx,25);
}
if Long Stop == 1 Then
if Long Stop !=Long Stop [1] Then
{
if hv-lv < 0.5 Then
Text_Delete(tx);
Else
Text_SetSize(tx,15);
hv = Tsl;
lv = Tsl;
dv = sDate;
tv = sTime;
box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv);
tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2));
Text_SetStyle(tx,2,1);
Text_SetSize(tx,20);
}
Else
{
if Tsl > hv Then
hv = Tsl;
if Tsl < lv Then
lv = Tsl;
Box_SetBegin(box,dv,tv,hv);
Box_SetEnd(box,NextBarSdate,NextBarStime,lv);
Box_SetColor(box,Red);
Box_SetFill(box,true);
Text_SetString(tx,NumToStr(hv-lv,2));
Text_SetLocation(tx,NextBarSdate,NextBarStime,hv);
}
}
if Short Stop == -1 Then
{
if Short Stop != Short Stop[1] Then
{
if hv-lv < 0.5 Then
Text_Delete(tx);
Else
Text_SetSize(tx,15);
hv = Tsl;
lv = Tsl;
dv = sDate;
tv = sTime;
box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv);
tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2));
Box_SetColor(box,Blue);
Box_SetFill(box,true);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,20);
}
Else
{
if Tsl > hv Then
hv = Tsl;
if Tsl < lv Then
lv = Tsl;
Box_SetBegin(box,dv,tv,hv);
Box_SetEnd(box,NextBarSdate,NextBarStime,lv);
Text_SetString(tx,NumToStr(hv-lv,2));
Text_SetLocation(tx,NextBarSdate,NextBarStime,hv);
}
}
2023-02-06
600
글번호 166047
누댕 님에 의해서 삭제되었습니다.
2023-02-07
21
글번호 166046
배움이 님에 의해서 삭제되었습니다.
2023-02-07
15
글번호 166045
답변완료
전전일고가
늘 감사합니다.
data2의
전일고가, 전전일고가 중 최고가----1번
전일저가, 전전일저가 중 최저가----2번
수식은 data2용으로 작성해 주세요
1. 최고가
2. (1번+2번)/2
3. 최저가
감사합니다.
2023-02-06
771
글번호 166044
답변완료
시스템 신호 수식 요청
매수신호
1. 프로그램 순매수(차익+비차익) 5이평선이 우상향하고 있고,
2. 스토캐스틱K(20,10,10)가 침체권(20)에서 벗어난 후,
3. 선물 90틱 20이평선이 우상향하고 있을 때,
20이평선 위에서 5이평선이 상방으로 턴하면 매수
매도신호
1. 프로그램 순매수(차익+비차익) 5이평선이 우하향하고 있고,
2. 스토캐스틱K(20,10,10)가 과열권(80)에서 이탈한 후,
3. 선물 90틱 20이평선이 우하향하고 있을 때,
20이평선 아래에서 5이평선이 하방으로 턴하면 매도
부탁해요^^
2023-02-06
889
글번호 166043
답변완료
전일종가 대비 상승, 하락에 반대로 진입(최적화 기능을 사용)
최적화 기능을 사용하여서 전일 종가에서 몇틱까지 갔을때 반대로 진입하는게 좋을지 수식으로 찾고있습니다.
수식 부탁드립니다.
input : a(0), b(0);
if 전일 종가 대비 a틱만큼 상승하면 매도 진입 -> 당일 종가청산
if 전일 종대 대비 b틱만틈 하락하면 매수 진입 -> 당일 종가청산
조건
1) 하루에 1번만 진입 가능(피라미딩 안함)
2) 등락을 퍼센트로 찾는것이 아니라 각 종목마다 틱으로 찾을 예정
2023-02-06
985
글번호 166042
답변완료
부탁드립니다.
1. 옵션 월물 첫날의 시가(흰색), 고가(빨강색), 저가(파란색), 종가(검정색)를 만기시까지 수평선으로 구현해 주세요. 또 월최고가, 월최저가도 함께 구현해 주세요
고맙습니다.
2023-02-06
941
글번호 166041