커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3594
글번호 230811
234fsdae 님에 의해서 삭제되었습니다.
2020-11-18
26
글번호 144001
답변완료
예수금 기준 매수수량설정
예스스탁 덕에 제가 나날이 발전하는 기분이라, 감사드립니다.
표제 건 관련하여, YL을 작성했는데, 의도되로 표현이 어렵습니다.
<<의도 하는 매수 수량 설정조건:>>
1. (초기 실자금 + 실제 수익금 )/현재주가 = 매수수량
ex) 초기 실자금= 1000만원, 수익금 100만원,현재주가= 10만원, 매수수량 110주
or
2. 매수가능 예수금/ 현재주가 = 매수수량
ex) 현재시점 예수금 1000만원, 현재주가= 10만원, 매수수량 100주
Q.1
1번은 시뮬레이션상의 금액을 설정하기때문에, 실제 계좌와는 무관한 금액을 기준으로 수량산정이 되고 ex) netprofit은 실수익이 아닌 과거 시뮬레이션상의 금액이라, 저의 실계좌와 상이합니다.
동일(시뮬레이션수익=실계좌수익)하게 표현 할 방법이 있을까요.
#현재작성된 YL
INPUT: 손절선(5.5);
Input : 초기자산(1000000), 계좌리스크비율(2.0) ;
Var : 누적자산(0), 계산수량(0);
누적자산 = 초기자산 + netprofit;
//NETPROFIT 가상의 숫자라 시뮬레이션전용, 실전적용시 다른 숫자가 나옴.
계산수량 = int(( 누적자산 * 계좌리스크비율 / 100 )/(C*손절선 /100));
//
if //매수조건 생략
then
Buy("Buy", onclose,def, 계산수량 ); //계산수량= 매수수량
Q.2
2번 매수수량 산정방법을 적용하니, 과거에 실제 예수금이 적용이 안되어,
매수,매도 Signal이 사라져버립니다. 현재시점의 예수금을 기준으로 매수수량을 YL로 표현할
방법을 문의 드립니다.
INPUT: 손절선(5.5);
Input : 계좌리스크비율(2.0) , 예수금의투자비중 (0.25) ;
Var : 계산수량(0);
var : 예수금(0);
예수금 = GetUnclearedDeposits("xxxx*-xxxx-xxxx"); #계좌번호 지정
계산수량 = int( 예수금의투자비중 * ( 예수금 * 계좌리스크비율 / 100 )/(C*손절선 /100));
Buy("Buy", onclose,def, 계산수량 );
2020-11-18
527
글번호 143999
답변완료
문의드립니다!
안녕하세요!
아래수식에서 1) Data별로, 2) 각 Data에서 다시 고점 저점별로 각각
선의 굵기와 선의 형태를 지정할수있도록 수정 부탁드립니다
도와주심에 항상 감사드립니다!!
-------------------------------------------------------------------------------------
#Data1
var : D1(0,Data1),T1(0,Data1),H1(0,data1),L1(0,data1),HTL1(0,Data1),LTL1(0,Data1);
if data1(Bdate != Bdate[1]) Then
{
D1 = data1(sDate);
T1 = data1(sTime);
H1 = data1(H);
L1 = data1(L);
HTL1 = TL_New(D1,T1,h1,NextBarSdate,NextBarStime,h1);
LTL1 = TL_New(D1,T1,l1,NextBarSdate,NextBarStime,l1);
TL_SetColor(HTL1,RED);
TL_SetColor(LTL1,RED);
}
Else
{
if Data1(H) > H1 Then
{
H1 = Data1(H);
TL_SetBegin(HTL1,D1,T1,H1);
}
if Data1(L) < L1 Then
{
L1 = Data1(L);
TL_SetBegin(LTL1,D1,T1,L1);
}
TL_SetEnd(HTL1,sDate,sTime,H1);
TL_SetEnd(LTL1,sDate,sTime,L1);
}
#Data2
var : D2(0,Data2),T2(0,Data2),H2(0,data2),L2(0,data2),HTL2(0,Data2),LTL2(0,Data2);
if data2(Bdate != Bdate[1]) Then
{
D2 = data2(sDate);
T2 = data2(sTime);
H2 = data2(H);
L2 = data2(L);
HTL2 = TL_New(D2,T2,h2,NextBarSdate,NextBarStime,h2);
LTL2 = TL_New(D2,T2,l2,NextBarSdate,NextBarStime,l2);
TL_SetColor(HTL2,cyan);
TL_SetColor(LTL2,cyan);
}
Else
{
if Data2(H) > H2 Then
{
H2 = Data2(H);
TL_SetBegin(HTL2,D2,T2,H2);
}
if Data2(L) < L2 Then
{
L2 = Data2(L);
TL_SetBegin(LTL2,D2,T2,L2);
}
TL_SetEnd(HTL2,sDate,sTime,H2);
TL_SetEnd(LTL2,sDate,sTime,L2);
}
#Data3
var : D3(0,Data3),T3(0,Data3),H3(0,data3),L3(0,data3),HTL3(0,Data3),LTL3(0,Data3);
if data3(Bdate != Bdate[1]) Then
{
D3 = data3(sDate);
T3 = data3(sTime);
H3 = data3(H);
L3 = data3(L);
HTL3 = TL_New(D3,T3,h3,NextBarSdate,NextBarStime,h3);
LTL3 = TL_New(D3,T3,l3,NextBarSdate,NextBarStime,l3);
TL_SetColor(HTL3,white);
TL_SetColor(LTL3,white);
}
Else
{
if Data3(H) > H3 Then
{
H3 = Data3(H);
TL_SetBegin(HTL3,D3,T3,H3);
}
if Data3(L) < L3 Then
{
L3 = Data3(L);
TL_SetBegin(LTL3,D3,T3,L3);
}
TL_SetEnd(HTL3,sDate,sTime,H3);
TL_SetEnd(LTL3,sDate,sTime,L3);
}
#Data4
var : D4(0,Data4),T4(0,Data4),H4(0,data3),L4(0,data4),HTL4(0,Data4),LTL4(0,Data4);
if data4(Bdate != Bdate[1]) Then
{
D4 = data4(sDate);
T4 = data4(sTime);
H4 = data4(H);
L4 = data4(L);
HTL4 = TL_New(D4,T4,h4,NextBarSdate,NextBarStime,h4);
LTL4 = TL_New(D4,T3,l4,NextBarSdate,NextBarStime,l4);
TL_SetColor(HTL4,yellow);
TL_SetColor(LTL4,YELLOW);
}
Else
{
if Data4(H) > H4 Then
{
H4 = Data4(H);
TL_SetBegin(HTL4,D4,T4,H4);
}
if Data4(L) < L4 Then
{
L4 = Data4(L);
TL_SetBegin(LTL4,D4,T4,L4);
}
TL_SetEnd(HTL4,sDate,sTime,H4);
TL_SetEnd(LTL4,sDate,sTime,L4);
}
2020-11-18
573
글번호 143998
유로파54 님에 의해서 삭제되었습니다.
2020-11-18
0
글번호 143997
답변완료
문의 드립니다
안녕하세요
오늘 여쭤볼 말씀은 틱 챠트에 30분봉의 5일선을 구현할 수 있는지 입니다.
1. 현재 90틱 챠트에 30분봉의 5일선을 구현해보고 싶습니다.
그리고 틱 수치를 바꿔서도 입력이 가능한지요?
2. 90틱 챠트에 구현된 30분봉의 5일선을 15분봉등으로 변경해서 적용할 수 있는지도
궁금합니다
늘 애써주셔서 감사합니다
2020-11-18
646
글번호 143996
답변완료
수식 의뢰 부탁드립니다.
개발자님의 노고에 감사드립니다
아래 로직의 진입방향을 바꾸고 싶습니다
매수진입을를 매도로, 매도진입를 매수로는 변경할 수 있는데 청산조건을 반대로 변경하질 못하고 있어요
감사합니다
----------
input: 진입(2),청산(13),이동평균선(10),losscnt(3);
var : hh(0),ll(0),mav(0),profit(0),loss(0),cnt(0),entrynum(0);
#손실횟수 계산
loss = 0;
if ExitDate(3) != sDate Then
loss = 0;
Else
{
for cnt = 1 to 3
{
if PositionProfit(cnt) < 0 Then
loss = loss + 1 ;
}
}
#청산
ExitLong("EL", atstop, Lowest( Low , 청산));
ExitShort("ES", atstop,Highest( High , 청산));
hh = Highest(h,진입);
ll = Lowest(l,진입);
mav = ma(C,이동평균선);
if ( stime >= 103000 and stime < 160000 ) and loss < losscnt Then
{
if c > mav and c > hh[1] Then
Buy();
if c < mav and c < ll[1] Then
Sell();
}
2020-11-18
556
글번호 143995
회원 님에 의해서 삭제되었습니다.
2020-11-18
1
글번호 143994
답변완료
수식 적용이 안돼요 도와주세요
한국투자증권 예스트레이더 쓰고있습니다.
예스랭귀지로 수식을 만들고 검증을 한 후에 수식을 적용하려고 시스템 적용창에 들어가니까
기본적으로 저장돼있는 수식만 나오고 제가 만든 수식이 전혀 나타나지 않아요. 검증 완료도 됐는데 뭐가 문제일까요..처음해보는 거라 아무리 찾아봐도 모르겠어요..도와주세요
2020-11-18
694
글번호 143993
234fsdae 님에 의해서 삭제되었습니다.
2020-11-18
18
글번호 143992