커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

재문의드립니다

63510 2번 수식이 전전봉에 안 나오는데 다시한번 검토부탁드립니다
프로필 이미지
유선
2019-07-29
279
글번호 130760
지표
답변완료

수식부탁드립니다

안녕하세요 아래수식은 고저점발생파동수식입니다 이수식에서 각각의 고점이 새로이 발생될때마다 각 고점 저점이 기준선이되어 첨부그림과 같이 고점기준으로 이평선이 그려지고 반대로 저점기준으로 이평선이 그려지게 할수없을까요 부탁드립니다 Input:length(2),종가사용여부(0),파동선두께(5),파동선두께고저선(5),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),tl2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 2); Text_SetColor(Text1,RED); Text_SetSize(Text1, 15); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,RED); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,RGB(129,129,129)); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLUE); Text_SetSize(Text1, 15); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLUE); TL_SetSize(TL2,파동선두께고저선); TL_SetColor(TL2,RGB(129,129,129)); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2019-07-29
449
글번호 130740
지표
답변완료

식 문의 드립니다

크루드오일에 적용할때 쓰려고 합니다. 1. 재고발표날이 있는 수요일 23시20분까지 포지션이 들어가 있으면 모두 청산하고 23시35분까지 모든 포지션 진입을 막아놓는 수식을 구하고자 합니다. 2. 위 수식을 썸머타임 여부에 따라 자동조절하는 기능은 없겠지요?
프로필 이미지
부동여산
2019-07-29
278
글번호 130736
시스템
답변완료

문의 드립니다.

볼린져 밴드 20.2 상단선을 돌파시 매수 집입/ 상단선 아래로 내려오면 매도 청산완료 하단선을 아래로 돌파시 매도 진입/ 하단선 위로 돌파하면 매수 청산완료 부탁드립니다.
프로필 이미지
선물대장
2019-07-29
240
글번호 130735
시스템
답변완료

수식 부탁드립니다.

# 10분봉에서 현재봉 거래량 합이 이전 3개봉의 거래량 합의 1.5배 이상인 종목 검색 수식 원합니다.# 게시판 내용중 하나를 적용해 보았는데 당일 적용이라 당연히 9 시 30 분 이후로 검색되어져야 하는데... 결과가 생각한 내용대로 안나와서 제가 잘못 적용한 부분이 있는것 같아 부탁 드립니다. 감사합니다. 수고하세요.
프로필 이미지
잼스딘
2019-07-29
311
글번호 130734
종목검색
답변완료

함수요청

안녕하세요? 아래 스크립트 전략을 추가하고자 하여 스크립트를 수정요청드립니다. 세부내용은, 아래의 전략에 진입신호가 발생되었을 때 그 위치가 data1의 볼린저밴드 상하단 내에서로 진입신호를 필터링하고자 합니다. 즉, 매수신호는 기본종목이 볼린저밴드 상단 아래에서 매도신호는 기본종목이 볼린저밴드 하단 위에서 신호가 생성되게 하고자 합니다. Vars : SP(0,data1), TickSize(0,data1); Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2); var : v1(0,data2),v2(0,data2); SP = MarketPosition; TickSize = PriceScale; v1 = data2(H); v2 = data2(L); IF v1[10] > 0 Then Begin fstHH = data1(Highest(H, 5)); fstLL = data1(Lowest(L, 3)); sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]); sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]); End; IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize); IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);
프로필 이미지
흰둥이아빠
2019-07-29
256
글번호 130721
시스템
답변완료

부탁드립니다.

손절 청산식 하나만 더 추가 부탁드립니다. input: 손절틱(100) 매수 개수가 5개 이상이고 진입된 전체 손익이 손절틱 이상이면 매수 전체 손절 매도 개수가 5개 이상이고 진입된 전체 손익이 손절틱 이상이면 매도 전체 손절 var : ll(0),hh(0); if index == 0 Then buy(); if index == 100 Then buy(); if index == 200 Then buy(); if index == 300 Then buy(); if index == 400 Then buy(); if MarketPosition == -1 then { if CurrentContracts > CurrentContracts[1] Then { hh = h; ll = L; } if h > hh Then hh = h; if l < ll Then ll = l; if ll <= AvgEntryPrice-(PriceScale*500)/CurrentContracts Then ExitShort("sp2",AtStop,LL+(AvgEntryPrice-LL)*0.01); //매도 진입 수가 5개 이상이고 전체 수익이 +100틱 이상이었다가 다시 0이 되면 청산 if CurrentContracts >= 5 and MaxPositionProfit >= PriceScale*100 Then ExitShort("sl2",AtStop,AvgEntryPrice); } if MarketPosition == 1 then { if CurrentContracts > CurrentContracts[1] Then { hh = h; ll = l; } if h > hh Then hh = h; if l < ll Then ll = l; #if hh >= AvgEntryPrice+(PriceScale*500)/CurrentContracts Then # ExitLong("bp2",AtStop,hh-(hh-AvgEntryPrice)*0.01); //매수 진입 수가 5개 이상이고 전체 수익이 +100틱 이상이었다가 다시 0이 되면 청산 if CurrentContracts >= 5 and MaxPositionProfit >= PriceScale*100 Then ExitLong("bl2",AtStop,AvgEntryPrice); }
프로필 이미지
라떼처럼
2019-07-29
248
글번호 130719
시스템
답변완료

함수 부탁드립니다

Easy Language입니다.예스함수와 지표식 부탁드립니다. // Function inputs: Price (NumericSeries), Length (NumericSimple); vars: TR(0), DI_Diff(0), DI_Sum(0), ma(0), pdm(0), mdm(0), pdi(0), mdi(0), DI_Factor(0), VI(0), diff(0), HHV(0), LLV(0), WeightDM(Length), WeightDI(Length), WeightDX(Length), ChandeEMA(Length), output(0); once ma=Price; if(Price>Price[1]) then begin pdm=Price-Price[1]; mdm=0; end else begin mdm=Price[1]-Price; pdm=0; end; pdm=((WeightDM-1)*pdm[1] + pdm)/WeightDM;//ema. mdm=((WeightDM-1)*mdm[1] + mdm)/WeightDM;//ema. TR=pdm+mdm; if (TR>0) then begin pdi=pdm/TR; mdi=mdm/TR; end else begin pdi=0; mdi=0; end; pdi=((WeightDI-1)*pdi[1] + pdi)/WeightDI;//ema. mdi=((WeightDI-1)*mdi[1] + mdi)/WeightDI;//ema. DI_Diff=pdi-mdi; if (DI_Diff<0) then DI_Diff= -DI_Diff;//Only positive momentum signals are used. DI_Sum=pdi+mdi; DI_Factor=0;//Zero case, DI_Diff will also be zero when DI_Sum is zero. if (DI_Sum>0) then output=DI_Diff/DI_Sum else output=0; output=((WeightDX-1)*output[1] + output)/WeightDX; HHV = HighestFC(output,Length+1); LLV = LowestFC(output,Length+1); diff = HHV - LLV; VI=0; if (diff>0) then VI=(output-LLV)/diff; ma=((ChandeEMA-VI)*ma[1]+VI*Price)/ChandeEMA;//Chande VMA formula with ema built in. ADXVMA = ma; 끝부분의 ChandeEMA 확인가능하시면 그대로 해주시고 아니라면, var : ADXVMAPeriod(Length); ma=((ADXVMAPeriod-VI)*ma[1]+VI*Price)/ADXVMAPeriod; ADXVMA = ma; 로 대체해 주십시요.
프로필 이미지
뉴스타트
2019-07-29
348
글번호 130718
사용자 함수
답변완료

(주식) 기초적인것 몇가지 문의드립니다.

1. 고점을 돌파할 때 매수한다는 조건 수식이 H <= DayHigh(0) 이게 맞는지 궁금합니다. 이 수식은 당일고가가 같거나(돌파를하진않았음) 뛰어넘었다는 의미같아서요.. 당일 고가를 뛰어넘었을때 사고싶으면 H < DayHigh(0) 이렇게 바꾸면 되나요? 2. buy("b",AtStop,DayHigh(0)+PriceScale*1); 여기서 조건에 부합할 때 현재가가 아닌 한틱 위 호가에 주문을 내려면 어떻게 변경하면 될까요? 3. 현금이 아닌 신용으로 매수가능금액의 99%로 매수하려면 수식을 어떻게 바꾸면 될까요? 4. 일봉상 3일전 고점과 저점폭보다 1일전 고저폭이 같거나 적을때 그리고, 2일전 고저폭보다 1일전 고저폭이 같거나 적을 때 당일 기준으로 전일고가 돌파시 매수한다. 라는 수식 부탁드리겠습니다.(쉽게말해서 1일전 일봉상 고저폭이 2일전,3일전 캔들보다 같거나 최저치인날을 조건으로 만들고 싶습니다.) --> 인사이드 데이처럼 전일 캔들의 고점과 저점 안에 있어야하는건 아닙니다. 5. 하루에 한번만 매수한다는 조건을 추가하려면 어떤 수식을 추가해야하는지 부탁드리겠습니다. (매수 후 스탑로스로 매도체결 뒤 다시 매수되는것 방지) 무더운 여름인데 더위조심하시고 감사합니다.
프로필 이미지
아수라발발타
2019-07-29
291
글번호 130717
시스템