커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식변경요청

안녕하세요 아래수식은 고저점파동수식입니다 이수식을 Length2와 Length4 파동선 2개가 함께 나타나도록 수식변경부탁드립니다 감사합니다 Input:length(2),종가사용여부(0),파동선두께(2),수치표시(1) ; Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(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]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); Text_SetSize(Text1, 15); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); } 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]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 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]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 2); Text_SetSize(Text1, 15); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); } 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]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2018-08-02
235
글번호 121098
지표
답변완료

문의 드립니다.

틱차트에 해선의 일봉이평의 가격라인을 표시하고자 수식을 찾아보았는데요 input : Price1(67.60),Price2(68.20); plot1(Price1); plot2(Price2); 이와 같은 수식이 있습니다. 이 가격라인 오른쪽 끝부분에 텍스트 출력을 하려면 var : tx1(0),tx2(0); Text_Delete(tx1); Text_Delete(tx2); tx1 = Text_New(sdate,stime,Price1,"20이평"); tx2 = Text_New(sdate,stime,Price2,"60이평"); 이것을 추가하면 나오는데요 문의사항은 1. 위와같은 20이평, 60이평 등의 택스트를 input 등 외부에서 수정변경하는 방법이 있으면 일려주세요 2. 이러한 내용을 추세선 수식으로 표시하는 방법도 있던데 알려주시면 고맙겠습니다. (오른쪽 연장, 선굵기, 선색깔, 텍스트 표시 등 포함해서요)
프로필 이미지
부엉이
2018-08-02
232
글번호 121097
지표
답변완료

확인부탁드립니다

시간내에 익절이던 손절이던 안나면 청산하게끔 하는 수식도 포함이 된건가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 부탁드립니다. > 안녕하세요 예스스탁입니다. 1 Input : shortPeriod(8); input : starttime(90000),endtime(20000); Input : 당일수익틱수(80),당일손실틱수(80); Var : value1(0), value2(0), value3(0), value4(0); var : Tcond(false),N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Tcond = true; Xcond = false; N1 = NetProfit; } if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then { Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; value1 = highest(H[25],26)+lowest(L[25],26); value2 = highest(H[25],26)+lowest(L[25],26); value3 = highest(H[25],82)+lowest(L[25],82); value4 = ma(C, shortPeriod); if Tcond == true and Xcond == false then { If CrossUp(Value4, max(value3)/2) Then buy(); If CrossDown(Value4, min(value3)/2) Then sell(); } if MarketPosition == 1 then{ ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then{ ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 2 저희가 제공하는 프로그램의 랭귀지는 모두 같습니다. 수식은 차트의 데이터를 읽어 계산을 하고 신호를 발생하는데 동일수식을 동일기간과 동일설정시 신호가 다르다면 해당 증권사/선물사의 데이터가 상이한 것입니다. 즐거운 하루되세요 > 이인 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 현재 하기와 같은 수식을 쓰고 있습니다 Input : shortPeriod(8); Var : value1(0), value2(0), value3(0), value4(0); value1 = highest(H[25],26)+lowest(L[25],26); value2 = highest(H[25],26)+lowest(L[25],26); value3 = highest(H[25],82)+lowest(L[25],82); value4 = ma(C, shortPeriod); if stime >= 090000 or stime < 020000 then { If CrossUp(Value4, max(value3)/2) Then buy(); If CrossDown(Value4, min(value3)/2) Then sell(); } 요청사항 1. 익절 50틱 달성시 거래 중단&손절 50틱 달성시 거래중단 2. 거래 시간을 오전 2시까지 했는데 그때까지 진입한 계약이 익절이던 손절이던 안될경우 2시에 시장가 청산 후 거래 중지 그리고 같은 수식이라도 증권사별 (한투랑 농협)로 동일하지 않던데 원래 그런건가요? 부탁드리겠습니다
프로필 이미지
이인
2018-08-02
293
글번호 121096
시스템
답변완료

문의드립니다

Var : cnt_total(0); Var : Entrycnt(0); Entrycnt = 0; for cnt_total = 0 to 100 { if sdate == EntryDate(cnt_total) Then Entrycnt = Entrycnt+1;} input : stime11(90000); input : stime12(95900); if MarketPosition == 0 and entrycnt <1 and Time >= stime11 and Time <= stime12 and RSI(10) > 60 Then buy("매수"); if MarketPosition == 0 and entrycnt <1 and Time >= stime11 and Time <= stime12 and RSI(10) < 40 Then sell("매도"); if MarketPosition == 1 and RSI(10) < 50 Then exitlong("매수청산"); if MarketPosition == -1 and RSI(10) > 50 Then ExitShort("매도청산"); 위식에서 매수진입시그널이 나오고 매수청산시그널이 안나왔을 조건하에 N봉후 매수진입을 늦게하고 싶습니다 만약 N=9봉 후 진입 이라면 매수진입시그널이 나오고 1봉 2봉 3봉... 이 지나고 4봉에서 매수청산 시그널이 나왔다면 매수진입이 없어야 함 매도진입도 같게 하고싶습니다 감사합니다
프로필 이미지
파인애플
2018-08-02
210
글번호 121095
시스템
답변완료

수식요청드립니다.

아래식을 아래와 같이 수정요청드립니다. 감사합니다. 진입가 대비 3% 상승하면, 최고 익절틱 대비 20% 떨어지면 청산,(매수,매도청산) 예) 1000(진입가) --> 1030(3%상승) --> 1050(최고값) --> 1040(50틱대비20%하락) 청산 if MarketPosition == 1 Then{ BH = highest(H,BarsSinceEntry); if MaxEntries == 1 Then HE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then HE = LatestEntryPrice(0); if BH >= EntryPrice+PriceScale*30 then{ ExitLong("B익절%",AtStop,BH-(BH-EntryPrice)*0.1); } ExitLong("B손절",AtStop,HE-PriceScale*30); } if MarketPosition == -1 Then{ SL = Lowest(L,BarsSinceEntry); if MaxEntries == 1 Then LE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then LE = LatestEntryPrice(0); if SL <= EntryPrice-PriceScale*30 then{ ExitShort("S익절%",AtStop,SL+(EntryPrice-SL)*0.1); } ExitShort("S손절",AtStop,LE+PriceScale*30); }
프로필 이미지
라떼처럼
2018-08-02
230
글번호 121094
시스템
답변완료

문의

디버깅 창을 참조 : 시작시 매도포지션 2개가 있었고 스팟식으로 매도1차, 2차 1개씩 청산되어 무포지션 상태인데... 인식을 못하고 매도포지션 2개를 익절 주문이 나갑니다 도무지 해결방법을 찾지 못하겠읍니다. 어떻게 해야 되나요 ?
프로필 이미지
파일럿
2018-08-02
233
글번호 121081
시스템
답변완료

예스트레이더 지표식 에러?

- 아래는 예스트레이더 지표식에 나와 있는 "Elder Ray Power" 지표식입니다. - 궁금한 것은 왜 plot1,2 각각에, bullPower를 "BEAR" 로, 또 BearPower를 "Bull"로 표현했는지 이해가 안갑니다. 확인 부탁드립니다. - 아 래 - Inputs: Period(13); Variables: BullP(0), BearP(0); BullP = HIGH - ema(Close,Period); BearP = LOW - ema(Close,Period); Plot1(BullP, "BEAR"); <-- Plot2(BearP, "BULL"); <-- PlotBaseLine1(0,"기준선");
프로필 이미지
theogo66
2018-08-02
207
글번호 121080
지표
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 지표 외부변수 -이평값 -표준편차값 -종가가 -볼린저밴드 표준편차 안에(=상단 하단 안) 있는 횟수 카운트 출력 -표준편차 밖으로 나갔을 때 0으로 초기화 2. 지표 1지표의 틱차트에서 분봉용
프로필 이미지
잡다백수
2018-08-02
221
글번호 121079
시스템
답변완료

수식문의드립니다

시스템수식내에서 추가라인 출력 문의 드립니다. 한시스템내에 여러가지 지표를 사용해서 신호를 나오게 할때 특정지표의 값을 라인으로 출력할수 있을까요? 예를들어 MACD 와 TRIX를 사용한다고하면 MACD값이랑 상관없이 TRIX의 특정값을 베이스라인처럼 출력할수있게요 답변 부탁드립니다
프로필 이미지
toal
2018-08-02
203
글번호 121078
시스템