커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5501
글번호 230811
답변완료
추가라인부탁드립니다.
안녕하세요...글번호 69918 에서 30분봉의 전봉종가라인 추가부탁드립니다.
plotno 64 30분봉의 전봉의종가라인수식 부탁드립니다.
(예) 9시~9.30분봉의종가라인은 9.31~10시까지
9.31~10시분봉의종가라인은 10~10.30분까지
이런식으로 장종료까지 그려지게요
수고하세요...꾸벅
2020-11-18
665
글번호 144004
보인다 님에 의해서 삭제되었습니다.
2020-11-18
0
글번호 144003
답변완료
종목을 참조데이터처럼 추가할 순 없나요?
시간이 없어서 이제서야 저번에 피드백 주신 실시간으로 변하는 옵션미결 만들어 보려고 했는데요 제가 착각을 했었네요 ㅠㅠ
1. 옵션 종목들을 하나의 차트에 참조데이터처럼 넣어서 접어 놓을 순 없는건가요?
현재 연결선물 30초 종목으로 외국인, 기관, 개인 현선물 데이터는 참조데이터 잘 쓰고 있는데요~ 이것처럼 종목자체의 값이나 미결을 참조데이터처럼 만들 순 없나요??
각각의 미결만 뽑아서 쓰려고 했는데.. 만약 안된다면.. 보기 불편하지만 종목을 칸 50개로 잡고 하나하나 추가해도 각각의 참조데이터 추출이 가능한가요..? 잘 몰라서 여쭈어 봅니다
2. 답변주신 식에 대한 이해가 잘 가지 않습니다 ㅠㅠ ### 써놓은 부분이 질문입니다.
여기서부터 작성해주신 답변인데요~
data1에서 data11까지 셋팅되어 있다고 가정하고 작성해 드립니다.
input : P1(5),P2(20);
var : O1(0,Data1),O2(0,Data2),O3(0,Data3),O4(0,Data4),O5(0,Data5);
var : O6(0,Data6),O7(0,Data7),O8(0,Data8),O9(0,Data9),O10(0,Data10),O11(0,Data11);
var : D1(0,Data1),D2(0,Data2),D3(0,Data3),D4(0,Data4),D5(0,Data5);
var : D6(0,Data6),D7(0,Data7),D8(0,Data8),D9(0,Data9),D10(0,Data10),D11(0,Data11);
var : A1(0,Data1),A2(0,Data2),A3(0,Data3),A4(0,Data4),A5(0,Data5);
var : A6(0,Data6),A7(0,Data7),A8(0,Data8),A9(0,Data9),A10(0,Data10),A11(0,Data11);
var : B1(0,Data1),B2(0,Data2),B3(0,Data3),B4(0,Data4),B5(0,Data5);
var : B6(0,Data6),B7(0,Data7),B8(0,Data8),B9(0,Data9),B10(0,Data10),B11(0,Data11);
###질문### 여기서 O1(0,Date1) 이라고 적어 주셨는데 이게 무슨 의미인가요?
if Data1(Bdate != Bdate[1]) Then
O1 = Data1(OI[1]);
if Data2(Bdate != Bdate[1]) Then
O2 = Data2(OI[1]);
if Data3(Bdate != Bdate[1]) Then
O3 = Data3(OI[1]);
if Data4(Bdate != Bdate[1]) Then
O4 = Data4(OI[1]);
if Data5(Bdate != Bdate[1]) Then
O5 = Data5(OI[1]);
if Data6(Bdate != Bdate[1]) Then
O6 = Data6(OI[1]);
if Data7(Bdate != Bdate[1]) Then
O7 = Data7(OI[1]);
if Data8(Bdate != Bdate[1]) Then
O8 = Data8(OI[1]);
if Data9(Bdate != Bdate[1]) Then
O9 = Data9(OI[1]);
if Data10(Bdate != Bdate[1]) Then
O10 = Data10(OI[1]);
if Data11(Bdate != Bdate[1]) Then
O11 = Data11(OI[1]);
###질문### Bdate와 sdate 차이가 무엇인가요?
D1 = Data1(OI)-D1;
D2 = Data2(OI)-D2;
D3 = Data3(OI)-D3;
D4 = Data4(OI)-D4;
D5 = Data5(OI)-D5;
D6 = Data6(OI)-D6;
D7 = Data7(OI)-D7;
D8 = Data8(OI)-D8;
D9 = Data8(OI)-D9;
D10 = Data8(OI)-D10;
D11 = Data8(OI)-D11;
###질문###
왜 D11에서 다시 D11을 빼는지요?
위에 써주신 식이 이게 당일 미결 구하는 식인가요? 이해가 잘 안가서요~
var1=oi;
var2=dayoi(1);
var3=var1-var2;
이렇게 쓰면 안되나요?
3. Plot을 고정시켜두고 Plot안에서 if문으로 변수를 바꿀 수 있나요?
ex) plot1(if(~~~~),예제,빨강)
ex) plot2(1,if(~~~~),예제,빨강)
4. 위에 plot 안에서 if문으로 변수를 바꿀 수 있다면 옵션미결을 등가기준으로 변하는 값을 볼 수 있을거 같은데요. plot4를 등가로 해서요 위아래 3개씩
plot1(7,if(~~~~),빨강)
plot1(6,if(~~~~),빨강)
plot1(5,if(~~~~),빨강)
plot1(4,if(~~~~),빨강)
plot1(3,if(~~~~),빨강)
plot1(2,if(~~~~),빨강)
plot1(1,if(~~~~),빨강)
2020-11-18
564
글번호 144002
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
564
글번호 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
601
글번호 143998
유로파54 님에 의해서 삭제되었습니다.
2020-11-18
0
글번호 143997
답변완료
문의 드립니다
안녕하세요
오늘 여쭤볼 말씀은 틱 챠트에 30분봉의 5일선을 구현할 수 있는지 입니다.
1. 현재 90틱 챠트에 30분봉의 5일선을 구현해보고 싶습니다.
그리고 틱 수치를 바꿔서도 입력이 가능한지요?
2. 90틱 챠트에 구현된 30분봉의 5일선을 15분봉등으로 변경해서 적용할 수 있는지도
궁금합니다
늘 애써주셔서 감사합니다
2020-11-18
679
글번호 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
597
글번호 143995