커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3494
글번호 230811
답변완료
부탁드립니다
수고하십니다
아래수식이 어디가 잘못이있나요
var : 피봇포인트(0), 1지지(0), 1저항(0), 2지지(0), 2저항(0),연장선두께(1),연장선두께1(2);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var: tx3(0),tx4(0),tx5(0),tx6(0),tx7(0);
피봇포인트 = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
1지지 = 2*피봇포인트-DayHigh(1);
1저항 = 2*피봇포인트-DayLow(1);
2지지 = 피봇포인트-DayHigh(1)+DayLow(1);
2저항 = 피봇포인트+DayHigh(1)-DayLow(1);
if DataCompress <= 2 and bdate != bdate[1] then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL1 = TL_New(sdate[1],stime[1],1지지,sdate,stime,1지지);
TL2 = TL_New(sdate[1],stime[1],1저항,sdate,stime,1저항);
TL3 = TL_New(sdate[1],stime[1],2지지,sdate,stime,2지지);
TL4 = TL_New(sdate[1],stime[1],2저항,sdate,stime,2저항);
TL5 = TL_New(sdate[1],stime[1],피봇포인트,sdate,stime,피봇포인트);
TL_SetExtRight(TL1,true);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
Text_Delete(tx7);
tx3 = Text_New(sDate,sTime,피봇포인트," (피봇포인트):"+NumToStr(피봇포인트,2));
tx4 = Text_New(sDate,sTime,1지지," 1지지:"+NumToStr(1지지,2));
tx5 = Text_New(sDate,sTime,1저항," 1저항:"+NumToStr(1저항,2));
tx6 = Text_New(sDate,sTime,2지지," 2지지:"+NumToStr(2지지,2));
tx7 = Text_New(sDate,sTime,2저항, 2저항:"+NumToStr(2저항,2));
Text_SetStyle(tx3,0,1);
Text_SetStyle(tx4,0,1);
Text_SetStyle(tx5,0,1);
Text_SetStyle(tx6,0,1);
Text_SetStyle(tx7,0,1);
#연장선 색상
TL_SetColor(TL1,RED);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,BLUE);
TL_SetColor(TL5,YelloW);
#연장선 두께
TL_SetSize(TL1,연장선두께);
TL_SetSize(TL2,연장선두께);
TL_SetSize(TL3,연장선두께);
TL_SetSize(TL4,연장선두께);
TL_SetSize(TL5,연장선두께1);
}
2023-10-19
995
글번호 173234
답변완료
함수요청
안녕하세요?
아래 글번호 84183번 재질문입니다.
웹에서 서치한 BOX 차트의 공식입니다.
스크립트에 반영 부탁드립니다.
ma = n 일 이동평균
upper = (종가 - ma) 가 양인 값들로 이루어진 배열(오른 날을 nPlus)
lower = (종가 - ma) 가 음인 값들의 배열(내린 날을 nMinus)
upperMean = upper의 nPlus 평균
lowerMean = lower의 nMinus 평균
upperstd = upper의 nPlus 표준편차
lowerstd = lower의 nMinus 표준편차
box 챠트의 상위선 = ma + upperMean + (2 * upperstd)
box 챠트의 하위선 = ma + upperbox 챠트의 하위선 = ma + lowerMean - (2 * lowerstd)
2023-10-19
1042
글번호 173233
답변완료
OBV 문의 드립니다.
도움 감사드립니다.
예스스탁하고 키움에서 제공하는 OBV 형식이 달라서 키움것을 구현하려면 어떻게 변경해야 하나요? OBV의 기간값을 조정해서 사용하고 싶어서요.
아래가 키움의 OBV 수식 입니다.
수식1: OBV()
수식2: MA(OBV(), Signal, 이평종류)
키움 OBV 함수
sum(if(C>C(1),v,if(C<C(1),-v,0)))
2023-10-19
1378
글번호 173231
답변완료
자동매도수식 검토 및 MessageList오류여부 검토 부탁드립니다.
수고많으십니다.
Main.MessageList("na2=",Account7);
Main.MessageList("na1=",woo,"계좌=",num);
var num = Account7.Balance.number;
질문입니다.
na2에서 Account7은 계좌번호가 표시가 되는데
na1에서 계좌번호를 변수로 저장한 num으로 넣으면 undefined 에러가 발생합니다.
수식검토 부탁드립니다.
// 전역변수선언
var exit7;
var Position7;
var Snum7;
var Bnum7;
var BuyFill7;
var SellFill7;
var ID7,ID8,Num7,Num8;
var Xcode7,Xpst7,Xvo7,XID7;
var Xcode8,Xpst8,Xvo8,XID8;
//스팟 시작
function Main_OnStart()
{
Main.SetTimer(1, 10000);
exit7 = false;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
if (exit7 == false)
{
Account7.SetBalanceItem(MD7, 0);
var vo7 = Account7.Balance.count; //수량
var po7 = Account7.Balance.position; //포지션방향(매도1, 매수2)
var cu7 = Account7.Balance.current; //현재가
var num = Account7.Balance.number;
var woo = C7.GetIndicatorData("진입1", 1, 0);
Main.MessageList("na2=",Account7);
Main.MessageList("na1=",woo,"계좌=",num);
}
}
if ( po7 == 1 && Cu7 >=woo) //매도포지션이고 현재가격이 지표 "진입" 값과 같으면
{
exit7 = true; //첫번째 SetTimer 시작
//전량 시장가로 매수주문(청산) 및 ID7에 주문아이디 저장
ID7 = Account7.OrderBuy(MD7,vo7, 0, 1);
}
if (po7 == 2 && Cu7 <= woo) //매수포지션이고 현재가격이 지표"진입" 값과 같거나 작으면
{
//전량 시장가로 매도주문(청산) 및 ID7에 주문아이디 저장
ID7 = Account7.OrderSell(MD7,vo7, 0, 1);
}
//2번 타이머
if (nEventID == 2) //두번째 SetTimer 시작
{
Main.KillTimer(2);
//Num7주문번호의 미체결 객체 셋팅
Account7.SetUnfillOrderNumber(Num7);
//미체결 수량이 있으면
if (Account7.Unfill.count > 0)
{
Xcode7 = Account7.Unfill.code; //종목코드 저장
Xpst7 = Account7.Unfill.orderKind; //주문구분 저장
Xvo7 = Account7.Unfill.count; //주문수량 저장
XID7 = Account7.OrderCancel(Num7); //취소주문, 주문아이디 XID7 저장
}
}
//3번 타이머
if (nEventID == 3)
{
Main.KillTimer(3);
//Num8주문번호 미체결 객체 셋팅
Account7.SetUnfillOrderNumber(Num8);
if (Account7.Unfill.count > 0)
{
Xcode8 = Account7.Unfill.code;
Xpst8 = Account7.Unfill.orderKind;
Xvo8 = Account7.Unfill.count;
XID8 = Account7.OrderCancel(Num8);
}
}
//주문응답
function Main_OnOrderResponse(OrderResponse)
{
//주문응답 아이디(orderID)가 ID7(최초주문아이디)과 같으면
if (OrderResponse.orderID == ID7)
{
//주문번호 저장
Num7 = OrderResponse.orderNum;
Main.SetTimer(2, 5000);
}
//주문응답 아이디가 ID8과 같으면
if (OrderResponse.orderID == ID8)
{
Num8 = OrderResponse.orderNum;
Main.SetTimer(3, 5000);
}
//재주문
//주문응답 아이디가 XID7과 같으면
//시장가로 재주문
if (OrderResponse.orderID == XID7)
{
if (Xpst7== 1)
{
Account7.OrderSell(Xcod7, Xvo7, 0, 1);
}
if (Xpst7== 2)
{
Account7.OrderBuy(Xcod7, Xvo7, 0, 1);
}
}
//주문응답 아이디가 XID8과 같으면
//시장가로 재주문
if (OrderResponse.orderID == XID8)
{
if (Xpst8 == 1)
{
Account7.OrderSell(Xcod8, Xvo8, 0, 1);
}
if (Xpst8 == 2)
{
Account7.OrderBuy(Xcod8, Xvo8, 0, 1);
}
}
}
}
감사합니다.
2023-10-19
1183
글번호 173224
답변완료
문의드립니다.
수고많으십니다.
국선,해선 매매에서 금액이나 틱(포인트)등으로 손실을 제한하고 싶습니다.
예를들어 50만원이나 100틱만큼 평가손실이 되면 자동으로 청산되고 해당일은 더이상 거래가 안되게하는 수식을 원합니다.
미리 노고에 감사드립니다~
2023-10-19
1008
글번호 173220
답변완료
선물 시스템 문의 드립니다.
안녕하세요..항상 많은 도움 감사드립니다.
시스템 거래에 대해서 2가지 궁금한 사항이 있어서 문의 드립니다.
1번 : 나스닥 선물 거래 시간을 오전 10시부터 다음날 오전7시까지 즉 오전7시부터 오전10시까지 3시간을 제외한 시간을 거래하고 싶은데요. stime 설정을 어떻게 해야 하나요?
2번 : A,B,C,D 네 가지 이평선이 수렴한 것을 구현하고 싶은데요. 수렴정도를 제가 %(퍼센트)를 조정할 수 있게 구현하려면 어떻게 해야 하나요?
2023-10-19
2178
글번호 173215
답변완료
문의드립니다.
안녕하세요~
변환 부탁드립니다.
매집간격 - 2.0 / D1 - 1 / Period1 - 60 / Percent1 - 100
기간=매집간격*20;
A1=지수평균((highest(종가,(기간-기간/2))+highest(종가,기간))/2,기간);
A2=D1*stdev((저가+고가+종가)/3,기간);
K=if(종가>시가,1-(abs(종가-시가)/abs(highest((종가-시가),기간))),1);
a=A1+K*A2;
(CrossUp(c(5),a)
or CrossUp(c(4),a)
or CrossUp(c(3),a)
or CrossUp(c(2),a))
and
Disparity(Period1) <= Percent1
감기조심하세요~
2023-10-19
1060
글번호 173214
답변완료
함수요청
안녕하세요?
아래 전략에 대해 스크립트 작성 부탁드립니다.
캔들상 2개 연속 고가 < 가격 BOX 하한선 이면 익봉 시가에 매도 진입
캔들상 2개 연속 저가 > 가격 BOX 상한선 이면 익봉 시가에 매수 진입
직전 봉 고가 < 가격 BOX 하한선 and 현재 봉 저가 > 가격 BOX 하한선 이면 익봉 시가에 매수 진입
직전 봉 고가 < 가격 BOX 상한선 and 현재 봉 저가 > 가격 BOX 상한선 이면 익봉 시가에 매도 진입
2023-10-19
742
글번호 173213
답변완료
수식 부탁드립니다.
안녕하세요
도움좀 부탁드립니다.
당일 장시작 기준으로 부터
20선가격이 최고값 까지 빨간색 최고값에서 값이 하락하면 파란색으로
하락중 20선가격이 다시 상승하더라도 전에 20선 최고값을 돌파하지
못하면 계속 파란색 으로 최고값을 돌파 하면 다시 빨간색으로 부탁드립니다.
색이 바뀌는 구간에 TL로 가로선표시까지 부탁드리겠습니다.
감사드립니다
2023-10-19
826
글번호 173212