커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
7742
글번호 230811
지표
답변완료

시스템식 개선 요청

관리자님 수고하십니다. 먼저 아래의 수식을 개선하여 주신데 감사드리며, 새해 복많이 받으세요 아래 시스템식을 붙임 그림파일과 같은 조건(2006.5.12일경 )에서도 매도가 발생하도록 수식을 개선 부탁드립니다. 아마 지그재그 파동을 표현을 변경하여 구현할 수 있을 것 같은데,,, 그리고,, 주가차트 및 macd 지표 지그재그선 및 추세선을 출력하는 지표식을 부탁드립니다. Input:전환율(7),지표전환(0.4),유효기간(50); Var:j(0),value(0),다이버전스(0),다이버전스Bar(0),상승(100),하락(-100), 상승률(0),하락률(0),추세선(0), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0), 추세(0),zz(0), 지표기준고(0),지표기준저(0),지표기준고Bar(0),지표기준저Bar(0), 지표추세(0),지표zz(0); Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0), 지표고[10](0),지표저[10](0),지표고Bar[10](0),지표저Bar[10](0); #=========================================================# # 초기처리 (Initialize Routine) #=========================================================# value = ema(MACD(12, 26),9); // MACD signal if CurrentBar > 0 then{ 상승률 = 1 + (전환율/100); 하락률 = 1 - (전환율/100); for j = 1 to 9 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; 지표저Bar[j] = 지표저Bar[j] + 1; 지표고Bar[j] = 지표고Bar[j] + 1; } 다이버전스Bar = 다이버전스Bar + 1; #=========================================================# # 주가 Zigzag 계산 #=========================================================# #---------------------------------------------------------# # 최근 고,저 갱신 #---------------------------------------------------------# if 기준고 <= H or 기준고 == 0 then { 기준고 = H; 기준고Bar = 0; } else 기준고Bar = 기준고Bar + 1; if 기준저 >= L or 기준저 == 0 then { 기준저 = L; 기준저Bar = 0; } else 기준저Bar = 기준저Bar + 1; #---------------------------------------------------------# # 파동 계산 Main #---------------------------------------------------------# if 기준고 * 하락률 > H and 기준저 * 상승률 < L then { //기준점의 인사이드일 경우 if 추세[1] == 상승 and ZZ < 기준저 then 추세 = 하락; else if 추세[1] == 하락 and ZZ > 기준고 then 추세 = 상승; } else if 기준고 * 하락률 > H then 추세 = 하락; else if 기준저 * 상승률 < L then 추세 = 상승; if 추세[1] == 상승 and 추세 == 하락 then { for j = 8 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; ZZ = 기준고; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; } if 추세[1] == 하락 and 추세 == 하락 and 고[1] < 기준고 and 기준고 * 하락률 > H then { 고[1] = 기준고; 고Bar[1] = 기준고Bar; ZZ = 기준고; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; } if 추세[1] == 하락 and 추세 == 상승 then { for j = 8 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; ZZ = 기준저; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; } if 추세[1] == 상승 and 추세 == 상승 and 저[1] > 기준저 and 기준저 * 상승률 < L then { 저[1] = 기준저; 저Bar[1] = 기준저Bar; ZZ = 기준저; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; } #=========================================================# # 지표식 Zigzag 계산 #=========================================================# #---------------------------------------------------------# # 최근 고,저 갱신 #---------------------------------------------------------# if 지표기준고 <= value or 지표기준고 == 0 then { 지표기준고 = value; 지표기준고Bar = 0; } else 지표기준고Bar = 지표기준고Bar + 1; if 지표기준저 >= value or 지표기준저 == 0 then { 지표기준저 = value; 지표기준저Bar = 0; } else 지표기준저Bar = 지표기준저Bar + 1; #---------------------------------------------------------# # 파동 계산 Main #---------------------------------------------------------# if 지표기준고 - 지표전환 > value and 지표기준저 + 지표전환 < value then { //기준점의 인사이드일 경우 if 지표추세[1] == 상승 and 지표ZZ < 지표기준저 then 지표추세 = 하락; else if 지표추세[1] == 하락 and 지표ZZ > 지표기준고 then 지표추세 = 상승; } else if 지표기준고 - 지표전환 > value then 지표추세 = 하락; else if 지표기준저 + 지표전환 < value then 지표추세 = 상승; if 지표추세[1] == 상승 and 지표추세 == 하락 then { for j = 8 downto 1 { 지표고[j+1] = 지표고[j]; 지표고Bar[j+1] = 지표고Bar[j]; } 지표고[1] = 지표기준고; 지표고Bar[1] = 지표기준고Bar; 지표ZZ = 지표기준고; 지표기준고 = value; 지표기준고Bar = 0; 지표기준저 = value; 지표기준저Bar = 0; } if 지표추세[1] == 하락 and 지표추세 == 하락 and 지표고[1] < 지표기준고 and 지표기준고 - 지표전환 > value then { 지표고[1] = 지표기준고; 지표고Bar[1] = 지표기준고Bar; 지표ZZ = 지표기준고; 지표기준고 = value; 지표기준고Bar = 0; 지표기준저 = value; 지표기준저Bar = 0; } if 지표추세[1] == 하락 and 지표추세 == 상승 then { for j = 8 downto 1 { 지표저[j+1] = 지표저[j]; 지표저Bar[j+1] = 지표저Bar[j]; } 지표저[1] = 지표기준저; 지표저Bar[1] = 지표기준저Bar; 지표ZZ = 지표기준저; 지표기준저 = value; 지표기준저Bar = 0; 지표기준고 = value; 지표기준고Bar = 0; } if 지표추세[1] == 상승 and 지표추세 == 상승 and 지표저[1] > 지표기준저 and 지표기준저 + 지표전환 < value then { 지표저[1] = 지표기준저; 지표저Bar[1] = 지표기준저Bar; 지표ZZ = 지표기준저; 지표기준저 = value; 지표기준저Bar = 0; 지표기준고 = value; 지표기준고Bar = 0; } #=========================================================# # 다이버전스 계산 #=========================================================# if ZZ[1] != ZZ or 지표ZZ[1] != 지표ZZ then { if 고[2] < 고[1] and 지표고[2] > 지표고[1] then { 다이버전스 = 하락; 다이버전스Bar = 0; } else if 저[2] > 저[1] and 지표저[2] < 지표저[1] then { 다이버전스 = 상승; 다이버전스Bar = 0; } } if 다이버전스Bar > 유효기간 then 다이버전스 = 0; #=========================================================# # 추세선 계산 #=========================================================# if 다이버전스 == 상승 then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1]) * 고Bar[2] + 고[2]; } if 다이버전스 == 하락 then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1]) * 저Bar[2] + 저[2]; } if 다이버전스 == 0 then { 추세선 = 0; } #=========================================================# # 시스템 식 #=========================================================# if 다이버전스 == 상승 and C > ma(C,20) and CrossUp(C,추세선) then Buy("매수"); if 다이버전스 == 하락 and C < ma(C,20) and CrossDown(C,추세선) then Sell("매도"); }
프로필 이미지
자아준
2011-02-08
1401
글번호 35551
시스템
답변완료

이동평균선 정배열

이동평균선 정배열이 3선이 아닌 5선일때의 산식좀 알려주십시요? 아래는 단기, 중기, 장기 3선일때 조건을 만들어 보았습니다. 그런데 5선일때는 어떻게 들어가야 하는지요? input : shortPeriod(3), midPeriod(7), longPeriod(12); var : 단기이평(0), 중기이평(0), 장기이평(0); 단기이평 = ma(C, shortPeriod); 중기이평 = ma(C, midPeriod); 장기이평 = ma(C, longPeriod); if crossup(단기이평, 중기이평) and 중기이평 > 장기이평 and 단기이평 > 중기이평 then //문장1 buy();
프로필 이미지
회원
2011-02-08
915
글번호 35550
시스템
답변완료

지표식+ 시스템식

안녕하세요? 성실한 답변때문에 날마다 공부하는 과정이 즐겁습니다. 무척 감사합니다. 혹시 베이시스을 이용한 지표식과 시스템식이 있으면 소개해주세요. 베이시스 개념은 알고 있는데, 어떻게 시스템으로 연결할지 한번 고민좀 하고 싶습니다. 보통 베이시스가 확대되면 매수, 베이시스가 축소되면 매도 아뭏튼 조언부탁드립니다.
프로필 이미지
노블레스
2011-02-08
813
글번호 35548
시스템
답변완료

수식 질문입니다~~

수식에 대한 질문 항상 답변 잘 해 주셔서 감사합니다~~~ 최근10개봉의 (기간최고치+기간최저치)의 평균값을 완성된 봉이 상향돌파하면 매수하라. 최근10개봉의 (기간최고치+기간최저치)의 평균값을 완성된 봉이 하향돌파하면 매도하라. 부탁드립니다~~ 아참~ 그리고 매수나 매도진입후 1pt가 수익이 나면 청산하고 당일 매매금지 요거 수식으로 될까요??ㅎㅎ(요건 국내선물입니다~)
프로필 이미지
1억아아자
2011-02-08
794
글번호 35547
시스템
답변완료

분할청산식을 만들어봤는데요....

var1 = int(90/BarInterval); var2 = Lowest(L,var1); var3 = bids - asks ; Condition1 = ExitDate(1) == sdate; #직전청산이 당일이면 true 전일이면 false if CrossDown(c,var2[1]) and dayindex > var1 and asks > bids and c < ma(c,20) and c < ma(c,60) and (Condition1 == false or (Condition1 == true and BarsSinceExit(1) >= var1)) Then { Sell("매도",OnClose,def,4); } # 매도/매수청산 if MarketPosition == 1 Then{ ExitShort("0.5피청산",atlimit,EntryPrice+0.5,"",1,1); if CrossUp(C,ma(C,30)) and highest(H,BarsSinceEntry) >= EntryPrice+0.5 Then ExitShort("0.5피30청산",OnClose,def,"",1,1); if CrossUp(C,ma(C,30)) and highest(H,BarsSinceEntry) <= EntryPrice+0.5 Then ExitShort("30청산",OnClose,def,"",2,1); if CrossUp(C,ma(C,60)) Then ExitShort("60청산",OnClose,def,"",1,1); if CrossUp(ma(C,20),ma(C,60)) Then ExitShort("2060청산",OnClose,def,"",1,1); } --------------------------------------------------------------------------------- 위와같이 선물1분봉을 기준으로 매도를 한 후 1개씩 나눠서 청산을하는식으로 만들어봤는데요 4번에 나눠서 청산이 안되고 한번에 청산이 되네요~ 문의드립니다~
프로필 이미지
회원
2011-02-08
800
글번호 35538
시스템
답변완료

문의드립니다.

안녕하세요. 수식작성 O&A에 있는 지그제그 수식을 차트에 적용하니 지표가 생성 되지않읍니다. 무엇이 문제인가요. 감사합니다. ============================================================================= input : Hrate(3),Lrate(3); VARS: SWITCH(0); IF SWITCH == 0 THEN { IF c[1] > c[2] AND c[1]*(1-Hrate/100) > HIGH THEN { PLOT1(c[1], "ZIGUP"); SWITCH = 1; } } IF SWITCH == 1 THEN { IF c[1] < c[2] AND c[1]*(1+Lrate/100) < LOW THEN { PLOT1(c[1], "ZIGUP"); SWITCH = 0; } } 끝.
프로필 이미지
베드로
2011-02-08
794
글번호 35537
지표
답변완료

계약수 수식 문의

초기자본금 방식으로 mdd 의 1.5배와 계약당 증거금의 합만큼 자본이 증가할 경우 1계약을 늘리는 수식에서, mdd를 계약수와 함께 증가시키면서 설정하고 싶습니다. 즉, 자본이 쌓일 수록 좀더 보수적으로 더디게 계약수 증가를 하고자 하는 것이죠. 1. 최대계약수가 200개일때 아래와 같은 수식에 덧붙여 늘어나는 계약수와 연동하여 mdd가 일정비율만큼 점증하는 수식을 조언해 주시면 감사하겠습니다. 2. 또 데이시스템에서 아래와 같은 수식에서 일중에 선물가격이 크게 변할때 계약수도 일중에 증감할 수 있는 우려가 있습니다. 하루에 하나의 고정된 계약수가 장시작시점에 결정될 수 있도록 조언도 부탁드립니다. Input: fraction(0.05); Var: qty(0), capital(50000000), margin(0.15), maxqty(200), mdd(20); qty = int((capital+NetProfit*500000)/(Close*500000*margin+mdd*1.5*500000)); mdd = qty*fraction + mdd; --> 이렇게 하니까 몇일 안가서 qty가 0으로 떨어져 버렸습니다. if qty < maxqty then { qty = qty; } else { qty = maxqty; } If qty < 1 or capital+NetProfit*500000 < Close*500000*margin then { qty = 0; } else { qty = 1; }
프로필 이미지
cetvet
2011-02-08
929
글번호 35536
시스템
답변완료

수식 문의드립니다~~

100틱차트에 적용할 예정입니다~~ 최근봉 5개중의 최고가를 돌파하면 매수하라. 최근봉 5개중의 최저가를 돌파하면 매도하라. 최근봉 3개중의 최저가를 돌파하면 매수청산. 최근봉 3개중의 최고가를 돌파하면 매도청산. 매수나 매도 진입시 50핍이 이익이 나면 자동청산되는 식도 부탁드릴께요~~(fx마진 적용시) 그리고 매수나 매도 진입시 1pt이익이 나면 자동청산되는 식도 부탁드릴께요 (이건 국내선물 적용시)
프로필 이미지
1억아아자
2011-02-08
859
글번호 35535
시스템
답변완료

문의 드립니다.

선물 호가창에 매수량, 매도량 차이를 RSI처럼 한개의 선으로 표시할 수 있는 수식을 부탁드립니다. 감사합니다.
프로필 이미지
매크로
2011-02-08
922
글번호 35531
지표