커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7257
글번호 230811
대박나라 님에 의해서 삭제되었습니다.
2018-03-02
10
글번호 117080
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
시뮬레이션에 적용할 수 있는 코드로 코딩 변환 부탁드립니다.
중간에 업데이트가 금지어라고 나와서 영어 업데이트는 한글로 바꾸었습니다. 적당한 것으로 바꿔주심 됩니다.
Function: TL_Zigzag
inputs:
Price( numericseries ),
RetraceMethod( numericsimple ), { 1 = percent, 2 = number }
retrace( numericsimple ),
LineColor( numericsimple ),
LineWidth( numericsimple ),
PlotLine( truefalse ) ;
variables:
NewSwingPrice( 0 ),
SwingPrice( Price ), { used as a convenient 2-element array }
SwingDate( Date ), { used as a convenient 2-element array }
SwingTime( Time ), { used as a convenient 2-element array }
TLDir( 0 ), { TLDir = -1 implies prev TL dn, +1 implies prev TL up }
RetraceFctrUp( 1 + retrace * .01 ),
RetraceFctrDn( 1 - retrace * .01 ),
SaveSwing( false ),
AddTL( false ),
업데이트TL( false ),
TLRef( 0 ),
ZigZagTrend( 0 ) ;
{ Candidate swings are just confirmed, 3-bar (Str=1), SwingHi’s and
SwingLo’s }
NewSwingPrice = SwingHigh( 1, Price, 1, 2 ) ;
if NewSwingPrice <> -1 then
begin
if ( RetraceMethod = 1 and TLDir <= 0 and NewSwingPrice >=
SwingPrice * RetraceFctrUp ) or ( RetraceMethod = 2 and TLDir <=
0 and NewSwingPrice >= SwingPrice + Retrace ) then
{ prepare to add new up TL }
begin
SaveSwing = true ;
AddTL = true ;
TLDir = 1 ;
end
else if TLDir = 1 and NewSwingPrice >= SwingPrice then
{ prepare to 업데이트 prev up TL }
begin
SaveSwing = true ;
업데이트TL = true ;
end ;
end
else
begin
NewSwingPrice = SwingLow( 1, Price, 1, 2 ) ;
if NewSwingPrice <> -1 then
begin
if (RetraceMethod = 1 and TLDir >= 0 and NewSwingPrice <=
SwingPrice * RetraceFctrDn) or (RetraceMethod = 2 and TLDir >= 0
and NewSwingPrice <= SwingPrice - retrace )
then
{ prepare to add new dn TL }
begin
SaveSwing = true ;
AddTL = true ;
TLDir = -1 ;
end
else if TLDir = -1 and NewSwingPrice <= SwingPrice then
{ prepare to 업데이트 prev dn TL }
begin
SaveSwing = true;
업데이트TL = true ;
end ;
end ;
end ;
if SaveSwing then
{ save new swing and reset SaveSwing }
begin
SwingPrice = NewSwingPrice ;
SwingDate = Date[1] ;
SwingTime = Time[1] ;
SaveSwing = false ;
end ;
if AddTL then
{ add new TL and reset AddTL }
begin
if Plotline then
begin
TLRef = TL_New( SwingDate, SwingTime, SwingPrice,
SwingDate[1], SwingTime[1], SwingPrice[1] ) ;
TL_SetExtLeft( TLRef, false ) ;
TL_SetExtRight( TLRef, false ) ;
TL_SetSize( TLRef, LineWidth ) ;
TL_SetColor( TLRef, LineColor ) ;
end ;
AddTL = false ;
end
else if 업데이트TL then
{ 업데이트 prev TL and reset 업데이트TL }
begin
if PlotLine then
TL_SetEnd( TLRef, SwingDate, SwingTime, SwingPrice ) ;
업데이트TL = false ;
end ;
TL_ZigZag = SwingPrice ;
Indicator: Zigzag Trend
inputs:
Price( Close ),
RetraceMethod( 1 ), { 1 = percent, 2 = number }
retrace( .75 ),
LineColor( Yellow ),
LineWidth( 1 ),
PlotLine( true ) ;
variables:
SwingPrice( Price ), { used as a convenient 2-element array }
ZigZagTrend( 0 ) ;
{ Candidate swings are just-confirmed, 3-bar (Str=1), SwingHi’s and
SwingLo’s }
SwingPrice = TL_ZigZag( Price, RetraceMethod, retrace, LineColor,
LineWidth, PlotLine ) ;
if SwingPrice > SwingPrice[1] then
begin
print( SwingPrice, " ", SwingPrice[1] ) ;
ZigZagTrend = 1 ;
end
else if SwingPrice < SwingPrice[1] then
begin
ZigZagTrend = -1 ;
end ;
Plot1( ZigZagTrend, “Zig” ) ;
print( date, " ", time, " ", SwingPrice, " ", SwingPrice[1], " ",
zigZagtrend ) ;
Strategy: Zigzag Trend Strat
inputs:
Price( Close ),
RetraceMethod( 1 ), { 1 = percent, 2 = number }
retrace( .75 ),
LineColor( Yellow ),
LineWidth( 1 ),
PlotLine( true ) ;
variables:
SwingPrice( Price ), { used as a convenient 2-element array }
ZigZagTrend( 0 ) ;
{ Candidate swings are just-confirmed, 3-bar (Str=1), SwingHi’s
and SwingLo’s }
SwingPrice = TL_ZigZag( Price, RetraceMethod, retrace, LineColor,
LineWidth, PlotLine ) ;
if SwingPrice > SwingPrice[1] then
begin
ZigZagTrend = 1;
end
else if SwingPrice < SwingPrice[1] then
begin
ZigZagTrend = -1;
end;
if ZigZagTrend =1 and ZigZagTrend[1]= -1 then
buy next bar at market
else if ZigZagTrend =-1 and ZigZagTrend[1]= 1 then
sellshort next bar at market ;
Function: CMO
inputs:
Length( numericsimple );
variables:
CMO_1(0),
CMO_2(0),
CMO_Final(0);
if C > C[1] then
begin
CMO_1 = C - C[1] ;
CMO_2 = 0 ;
end
else
begin
CMO_1 = 0 ;
CMO_2 = C[1] - C ;
end;
Value1 = Summation( CMO_1, Length );
Value2 = Summation( CMO_2, Length ) ;
CMO = ( Value1 - Value2 )/( Value1 + Value2 ) * 50 + 50 ;
Indicator: CMO
inputs:
Length( 14 ) ;
if CurrentBar > Length then
Plot1( CMO( Length ), “CMO” ) ;
Plot2( 0, “Zero” ) ;
print( plot1 ) ;
2018-03-02
461
글번호 117067
답변완료
지표값 문의 드립니다
안녕하세요 ^^
다름이 아니라 현재봉에서 이전 60봉째의 날짜를 얻고 싶습니다
날짜값을 예로 20180302 이런식으로 얻고싶은데 도움 부탁드리겠씁니다
2018-03-02
209
글번호 117066
답변완료
문의드립니다
1
주식 매수 진입후
상한가 청산식을 알고싶습니다
상한가의 -1% 되는 정도 지점에서 청산하고 싶습니다
2
주식 매수 진입후
최고가 대비 N% 하락하면 청산식
감사합니다
2018-03-02
219
글번호 117063
답변완료
문의드립니다.
질문1
5분봉에서 당일 거래량만 누적해서 나타낸 다음
전 거래일(고정값) 거래량과 비교해서 몇배인지 지표를 표현하고 싶은데 어떻게 해야하나요??
ps/ 일봉에서 비교하면 단순히 몇배인지 볼 수는 있으나 어느시점에 전 거래일 거래량을 넘어서는지 궁금해서 질문드립니다.
질문2
5분봉에서 이평 20, 60, 120선이 만족하고
당일 5분봉 이내에서만 거래량이 10만주 이상 터진 봉이 하나 이상인 종목을 검색하고 싶습니다.
2018-03-02
224
글번호 117062
답변완료
부탁드립니다
매수조건은 매일 오후2시가 되면 자동매수
매도조건은 다음날 아침 시가에 매도.
부탁드립니다
2018-03-01
209
글번호 117061
답변완료
문의
56881번 재문의입니다.
아래 답변식을 적용하여 표시를 하면 원하는결과가 되지안고 만약 직전 고점이
320.05 라하면 이와 같은 봉에서도 표시가 되어지네요
안녕하세요
예스스탁입니다.
답변내용
2
검색식으로 작성해 봉에 점을 찍어 보셔야 할것 같습니다.
data1이 N개봉 최고가일때 data2도 N개봉 최고가이면 빨간색 아니면 파란색
input : N(10);
if data1(H == highest(H,N)) Then{
if data2(H == highest(H,N)) Then
Plot1(H,"검색",red);
else
Plot1(H,"검색",blue);
}
질문내용
2번;
data1 선물 최근고점 (고점주기는 변수로입력해서 조정할수있게) 일때
참조 data2 도 최근고점 인지 고점이 아니면 수직선을 그리던지 아니면 화살표가 생기던지
어떻게 표현할수 있는 방법이 있을까요?
2018-03-02
225
글번호 117060
답변완료
수익금을 지속 반영하여 매매수량을 지속 늘리는 방법?
안녕하세요.
시스템 시뮬레이션시에 나의 계좌에서 수익나는 금액을 지속 반영하여 복리 효과를 시뮬레이션 해보고 싶습니다.
할수 있는 방법이 있는지요?
예를들어 1천만원으로 시작할때 1천원 주식 1000주를 매매했다고 가정하고,
일주일후 가격이 올라 계좌 잔고가 1200만원이 되었다고 가정하겠습니다.
다시 1000원짜리 종목을 매매할때 1200만원어치를 모두 사려고 할때 어떻게 계산하면 좋은지 예제를 부탁드립니다.
감사합니다.
2018-03-01
248
글번호 117059
답변완료
검색식 작성문의드립니다
DMI 지표와 관련해서
1. ADX는 20 이상에서 상승추세 유지(우상향)
2. D+ 는 D-보다 위에 위치
3. DMI는 20봉개중(1개월이내)에서 한번이라도 50이상 돌파
3가지 조건을 동시에 만족하는 조건식좀 부탁드립니다
2018-03-01
208
글번호 117058