커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4335
글번호 230811
답변완료
문의드립니다.
올해 수식왕 예스스탁님 덕분에 많이 배웠습니다. 앞으로도 잘 부탁드립니다. 새해 복 많이 받으세요~~
1. 기타
#ATR포인트 청산
Input : iATR기간(3), iATR길이(0);
Var: vATR(0);
vATR = ATR(iATR기간)*iATR길이;
if MarketPosition <> 0 Then
#0포인트부터 추적해서 고점대비 vATR만큼 떨어지면 청산
SetStopTrailing(vATR, 0, PointStop,1);
기존전략에 이 청산전략 추가 시킨 건데요. 첨부파일은 기존전략에 외부변수가 1,1(ATR기간1,길이1)로 나왔을 때 청산신호입니다 화면을 보면 같은 봉에서 매수와 청산도 되고 하는 것 같은데 이거 봉가정 오류인가요? 그런데 한권으로 읽는 시스템트레이딩보면 if MarketPosition <> 0 이 식 쓰면 같은 봉에서 매수매도되는 것 막아준다고 돼 있고 진입가격이 아닌 고가로 쓰면 오류 막아준다고 돼 있는데 이렇게 해도 오류가 생기는 건가요? 오류가 생겼다면 왜 오류가 생긴건 지 설명 부탁드립니다. 이전에 설명해주신 범주(수익률 봉가정 트레일링스탑오류)에는 안 속하는 것 같아서요. 어떻게 오류를 막을 수 있나요?
2. 기타
몇가지 필터 코딩 부탁드립니다.
2-1 청산 후 일정봉 갯수 내에서는 진입금지
2-2 11시 이후에는 리버스 진입금지
3. 기타
3-1 수익거래 청산 시에는 리버스 진입 금지
3-2 손절 청산 발생시 당일 추가 진입금지
4. 기타
가격이 일정봉(외부변수) 이상이 지난 뒤 손익분기 청산지점(손익이 0이 되는 시점에 청산. 여기에는 가정한 슬리피지와 수수료를 포함시킴. 가령 200포인트 매수 진입이면 200포인트+1틱(가정 슬리피지)+(200포인트*0.002(수수료))지점을 손익분기지점이라고 가정함)에 닿으면 즉시 청산.
2018-01-02
239
글번호 115359
답변완료
부탁 드립니다,
도움 주심에 감사 드립니다.
첨부 그림의 내용을 yt로 변환이 가능한지요?
미리 감사 드립니다.
2017-12-29
235
글번호 115358
답변완료
시스템 수식 부탁드립니다.
주식은 자동매매는 처음이라 어렵네요...
자동매매를 할건데...
자동으로 종목선정하여 매수하여 매도까지..자동으로 매매하는 수식부탁좀드리겠습니다.
종목선정 조건은요..일봉기준입니다.
1. 주가범위는 전일종가기준 1천원에서 5만원 사이입니다.
2. 전일봉부터 5봉까지 거래대금이 2백억이상이 1회이상 있어야 합니다.
3. 오늘의 시가는 전일종가보다 높아야합니다.
4. 오늘 시가가 볼린저 밴드 (20,2) 상단선 이상에서 시작해야합니다.
5. 오늘 주가가 엔벨로프 (20,20) 상단에 있어야합니다.
6. 볼린저밴드 (20.2)는 엔벨로프(20.20)의 상단에 위치하여야합니다.
7. 어제 종가가 4% 이상 으로 마감하여야합니다.
8. 오늘 주가는 20일선 위에 위치하여야합니다.
이 종목선정조건을 만족하여
매수조건은 주가가 오늘 시가를 돌파할때 입니다.
1종목당 매수금액은 1백만원입니다.
청산은...
손절은 매수가 대비 3%입니다.
익절도 매수가 대비 3%입니다.
오후 3시 보유종목 일괄매도입니다.
그럼 정중히 부탁드리며...수고하십쇼!
2017-12-29
226
글번호 115357
답변완료
예스스탁 트레이더 사용문의
글을 적은것 같은데 삭제된것 같네요..
예스스탁 트레이더를 사용하면 2년전 분차트까지 다 볼수 있다고 해서 가입을 했습니다.
예스스탁 트레이더를 사용하려고 프로그램을 까니 하이투자증권, 현대증권과 연계가 되어있군요.
이 시스템을 사용하려면 계좌를 개설을 해야하는지요?
그렇다면 일반 은행에서 하이투자증권이나 현대증권으로 계좌를 개설하면
예스스탁 트레이더 프로그램을 사용할수있는건가요?
분차트 2년전것 까지도 다 볼수 있나요??
2017-12-28
205
글번호 115356
답변완료
시스템 트레이딩으로 미수 거래 가능한지 궁금합니다.
드뎌 2018년 1월부터 2일부터 시스템 트레이딩 시작합니다.
우선은 ETF로 가볍게 시작하려 하는데, 레버리지 효과가 없기 때문에 선물에 비해 기대수익률이 낮습니다. 일반 증권사에서는 미수 거래를 통해 레버리지를 높히게 되는데..
혹시 시스템 트레이딩에서도 미수거래가 가능한지 궁금합니다.
즉, 100만원 가지고 있는 계좌에서 300만원 이렇게 매수가 가능하게 구현 가능할까요?
참고로 하이투자 증권 쓰고 있고
대상 종목은 kodex 레버리지와 인버스 입니다.
2017-12-28
160
글번호 115355
답변완료
수식수정 및 검토부탁드립니다.
171228 1438 질문
수고에 감사드립니다.
늘 자문과 답변(53825-SORISE)에 감사드립니다.
다른 질문과 답변을 전부 검색해도 유사한 답변도 없어, 이렇게 직접 질문드립니다.
상황1_해외선물통화(영국파운드 6b.1)을 한투에서 15분 차트 중심 거래중입니다
상황2_이 통화선물(17년 12월 28 13:36분 현재 1. 3456포인트)을 다께시부로 매매식(첨부)로 매매하려고 쩔쩔 매고 여러 시도를 했으나 적용이 안됨
(첨부_차트 하단에 지표식명만 있고, 지표표현이 안되고,
시스탬식역시 차트 상단에 시스템명만 표시됨)
부탁사항1. 전환가격을 어떻게 설정하나요
* 다께시부로는 첨부에서처럼 300 이라는 수칙을 적용하고 있으나, 저는 해외통화선물(1.3456포인트_171228현재)의 경우)에 적용하려고 전환가격 수치을 0, 10, 300 적용해도 반응이 없음(보통 해외선물의 변동폭 10틱에서 100틱 변동이 있고, 저는 20틱 변동 또는 일봉 시가을 기준 또는 참고로 하려고 는 개념이 다른가요)
부탁사항2. 다께시브로 지표식이 화면에 표현하려면 수식의 어느 부분을 수정해야 하나요(일봉, 또는 분봉(15분봉, 30분봉, 60분동 등 )적용 하고 싶습니다)
부탁사항3. 다께시브로 시스템의 적용도 안되고 있는데 어느 부분을 수정해야 하나요 (지표식을 그대로 시스탬식으로 수정 사용하고 싶습니다)
늘 빠르고 친절한 답변에 감사드립니다...
#다께사부로 분석지표식 및 시스탬식[0.1].ysg509
#유사예제_지그재그 파동선의 예
#Input:전환틱수(12);
#Var:j(0),상승(100),하락(-100),상승틱수(0),하락틱수(0),기준고(0),기준저(0),
# 기준고Bar(0),기준저Bar(0),추세(0),ZZ(0);
#Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#상승틱수 = PriceScale*전환틱수; 하락틱수 = -PriceScale*전환틱수;
#for j = 1 to 19 {
# 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1;
# 고Idx[j] = Index - 고Bar[j]; 저Idx[j] = Index - 저Bar[j]; }
#if 기준고 <= C or 기준고 == 0 then { 기준고 = C; 기준고Bar = 0; }
#else 기준고Bar = 기준고Bar + 1;
#if 기준저 >= C or 기준저 == 0 then { 기준저 = C; 기준저Bar = 0; }
#else 기준저Bar = 기준저Bar + 1;
#if 기준고 + 하락틱수 <= C[1] and 기준고 + 하락틱수 > C then
# 추세 = 하락;
#else if 기준저 + 상승틱수 >= C[1] and 기준저 + 상승틱수 < C then
# 추세 = 상승;
#if 추세[1] == 상승 and 추세 == 하락 then {
# for j = 18 downto 1 { 고[j+1] = 고[j];
# 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; }
## 고[1] = 기준고; 고Bar[1] = 기준고Bar;
# 고Idx[1] = Index - 고Bar[1];
# ZZ = 기준고; 기준고 = C; 기준고Bar = 0; 기준저 = C; 기준저Bar = 0; }
# if 추세[1] == 하락 and 추세 == 상승 then {
# for j = 18 downto 1 { 저[j+1] = 저[j];
# 저Bar[j+1] = 저Bar[j]; 저Idx[j+1] = 저Idx[j]; }
# 저[1] = 기준저; 저Bar[1] = 기준저Bar;
# 저Idx[1] = Index - 저Bar[1]; ZZ = 기준저;
# 기준저 = C; 기준저Bar = 0; 기준고 = C; 기준고Bar = 0; }
#if 추세 == 상승 Then var1 = 기준고;
#if 추세 == 하락 Then var2 = 기준저;
#if 추세 == 상승 and 추세 != 추세[1] Then buy("b");
#if 추세 == 하락 and 추세 != 추세[1] Then sell("s");
#f ZZ[1] != ZZ then Plot1(ZZ,"ZIGZAG"); //선그래프
#다께사브로 지표식 및 시스템식
Input: 전환가격(12); //다께사부로는 예제에서 300이라는 수치 사용
Var: j(0), 꺾은선(0), 기준고(0),기준저(0),방향(0),상승(100),하락(-100), 상승틱수(0),하락틱수(0), //상승틱수, 하락틱스 임의로 추가해봄
색깔(0),파랑(-1),빨강(1),전환(0),확인(0),확인표시(0),전환표시(0),천장(-10),바닥(10),
E(0),UB(0),E표시(0),UB표시(0), 대중소(0), 소중대(0), 대중소색깔(0), 진입(0), 청산(0);
Array : 고[10](0), 저[10](0);
상승틱수 = PriceScale*전환가격; 하락틱수 = -PriceScale*전환가격;
E표시=0; UB표시=0; 전환표시=0; 확인표시=0; 대중소=0; 소중대=0; 진입=0; 청산=0; //14줄
if 기준고 <= C or 기준고 == 0 then 기준고 = C; if 기준저 >= C or 기준저 == 0 then 기준저 = C; //17줄
if 방향 == 하락 and C[1] + 전환가격/3 <= C then E = 상승;
if 방향 == 상승 and C[1] - 전환가격/3 >= C then E = 하락;
if 방향 == 하락 and ma(V,50)/1.5 >= V then UB = 바닥;
if 방향 == 상승 and ma(V,50)*1.5 <= V then UB = 천장; //23L
#if 기준고 + 하락틱수 <= C[1] and 기준고 + 하락틱수 > C then
# 추세 = 하락;
#else if 기준저 + 상승틱수 >= C[1] and 기준저 + 상승틱수 < C then
# 추세 = 상승;
#if 추세[1] == 상승 and 추세 == 하락 then {
# for j = 18 downto 1 { 고[j+1] = 고[j];
# 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; }
# 고[1] = 기준고; 고Bar[1] = 기준고Bar;
# 고Idx[1] = Index - 고Bar[1];
# ZZ = 기준고; 기준고 = C; 기준고Bar = 0; 기준저 = C; 기준저Bar = 0; }
#전환가격
if 기준저[1] + 전환가격 > C[1] and 기준저[1] + 전환가격 <= C THen 방향 = 상승;
if 기준고[1] - 전환가격 < C[1] and 기준고[1] - 전환가격 >= C THen 방향 = 하락; //26
if 방향[1] == 하락 and 방향 == 상승 then { for j = 8 downto 0 { 저[j+1] = 저[j]; } //31
저[0] = 기준저;
꺾은선 = 기준저; 기준저 = C; 기준고 = C; //35줄
IF E == 상승 then E표시 = 꺾은선 - 전환가격;
if UB == 바닥 then UB표시 = 꺾은선 - 2*전환가격;
E = 0; UB=0; // 40L
if 저[1] > 저[0] then 색깔 = 파랑; //42 L
if 색깔[1] != 색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 저[1] < 저[0] then { if 저[2] >= 저[1] then 확인 = 바닥;
else 확인 = 0; } // 48 P
if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 - 3*전환가격; // 49
if 색깔[1] != 색깔 then 전환 = 0; //51줄
if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승;
if 전환 == 상승 and 전환[1] < 전환 then 전환표시 = 꺾은선 - 4*전환가격; //54
진입 = 1; } //511쪽 55줄 추가분
if 고[1]- 저[1] > 고[0]- 저[1] and 고[0]- 저[1] > 고[0]- 저[0] then {
대중소 = 꺾은선 - 5*전환가격;
대중소색깔 = 빨강; } // 61줄
if 고[1]- 저[1] < 고[0]- 저[1] and 고[0]- 저[1] < 고[0]- 저[0] then {
소중대= 꺾은선 - 5*전환가격 ;
대중소색깔 = 파랑; } //66줄
if 방향[1] == 상승 and 방향 == 하락 then { //68줄
for j = 8 downto 0 { 고[j+1] = 고[j]; } // 511쪽 71줄
고[0] = 기준고; 꺾은선 = 기준고; 기준고 = C; 기준저 = C; //511쪽 75줄
IF E == 하락 then E표시 = 꺾은선 + 전환가격;
if UB == 천장 then UB표시 = 꺾은선+ 2*전환가격;
E = 0; UB=0; // 80L
if 고[1] < 고[0] then 색깔 = 빨강; //82줄
if 색깔[1] != 색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0; //84줄
if 고[1] > 고[0] then { if 고[2] <= 고[1] then 확인 = 천장; else 확인 = 0; } //511p 88줄
if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 3*전환가격; //89
if 색깔[1] != 색깔 then 전환 = 0; if 고[1] > 고[0] and 저[1] > 저[0] then 전환 = 하락;
if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 4*전환가격; }
if 고[1]- 저[1] > 고[0]- 저[1] and 고[0]- 저[1] > 고[0]- 저[0] then {
대중소 = 꺾은선 + 5*전환가격;
대중소색깔 = 파랑 ; //512쪽 97줄
청산 = 1; } // 512쪽 98줄 추가분
if 고[1]- 저[1] < 고[0]- 저[1] and 고[0]- 저[1] < 고[0]- 저[0] then {
소중대= 꺾은선 + 5*전환가격 ;
대중소색깔 = 빨강; } //102줄
#시스템식
#if 고[2]- 저[1] < 고[1]- 저[1] and 고[1]- 저[1] < 고[1]- 저[0] then 청산 = 2;
#if MarketPosition() == 0 then {
#if 진입 == 1 then Buy("눌림목매수"); }
#if MarketPosition()==1 then {
#if 청산 == 1 then ExitLong("대중소");
#if 청산 == 2 then ExitLong("소중대");
#if 저[0] > C then ExitLong("손절매");
#if 고[1]> 고[0] then ExitLong("전고갱신실패"); } //511쪽 116줄. 끝
#지표식
if 꺾은선[1] != 꺾은선 then { //전체 -1수평이동 504 100줄
Plot1(꺾은선,"꺾은선",iff(색깔 == 빨강,RED ,BLUE)); //선그래프
if 확인표시 != 0 then Plot2(확인표시,"확인",BLACK); //점그래프 최대굵기,
if 전환표시 != 0 then Plot3(전환표시, "전환",BLACK); //점그래프 최대굵기,
if 전환표시 != 0 then Plot4(전환표시, "전환속",WHITE); //점그래프 중간굵기, } //504쪽104줄
if 대중소 + 소중대 != 0 then
Plot5(대중소 + 소중대 ,"대중소", iff(대중소색깔 == 빨강,RED,BLUE)); //최대굵기
if 소중대 != 0 then Plot6(소중대,"소중대",WHITE); } //점그래프 중간굵기 108줄
if E표시 != 0 then Plot7(E표시,"E표시",PINK); //점그래프,중간굵기
IF UB표시!=0 Then Plot8(UB표시,"U,B표시", MAGENTA); //점그래프,중간굵기 504쪽 111줄.End
답변을 기다립니다,, 예 감사합니다.
2017-12-28
381
글번호 115345
모루 님에 의해서 삭제되었습니다.
2017-12-28
0
글번호 115344
답변완료
검색식 부탁합니다
수고많습니다.
종목 검색식 부탁드립니다.
1. 장시작후 첫15분봉 기준,,, 다음봉 이후에 11시까지 장시작 첫15분봉 고가를 1틱이상
상향 돌파한 종목중 시가 이상 가격유지하고 있는 종목 검색하는식
2. 체결강도가 ( )이상인 종목 검색식
3. 종목 검색식을 설정해서 검색을 하면 검색된 종목의 최초 검색된 가격을 알수 있을까요?
즉, 시스템트레이딩을 적용응을 하면 매수시점의 매수가격이 나오듯이요...
종목 검색식에서도 알수 있는 방법 부탁드립니다.
감사합니다.
2018-01-01
196
글번호 115335
답변완료
수식 부탁합니다
수식을 부탁합니다.
1. 진입후 첫째봉, 둘쨰봉, 세쨰봉 등을 어떻게 표시하나요.
2. 진입시점의 종가는 entryprice로 표시하는데, 진입시점의 시가는
어떻게 표시하나요?
3. 10분봉을 거래할 떼, 하나의 봉에서 주가의 변동이 커서
그 봉 값내에서 로스컷하려 합니다.
예를 들어
코스피선물을 9시에
331.00로 진입,
9시30분을 지나
현재봉이
O : 330.00
L : 329.00
현재가 : 330.10를 보이고 있음
만일 현재가가 현재봉의 최저가인 329.00보다
1.50포인트 상승한 330.50에 도달한다면 바로(ATSTOP) 청산하고자 합니다.
수식을 어떻게 작성해야 하나요?
2017-12-28
178
글번호 115333