커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

###아래식에서 median 선언되지않는것이사용되어다고나오는데요 사용하게해주시고 수식 설명좀부탁합니다 Inputs: LineR(255), LineG(255), LineB(0), FuzzR(255), FuzzG(0), FuzzB(0), ShowDC(1); Vars: price(0), delta(0.1), gamma(0), alpha(0), beta(0), N(0), Period(0), MaxAmpl(0), Num(0), Denom(0), DC(0), DomCyc(0), Color1(0), Color2(0), Color3(0), alpha1(0), HP(0), SmoothHP(0); Arrays: II[60](0), OldI[60](0), OlderI[60](0), Q[60](0), OldQ[60](0), OlderQ[60](0), Real[60](0), OldReal[60](0), OlderReal[60](0), Imag[60](0), OldImag[60](0), OlderImag[60](0), Ampl[60](0), OldAmpl[60](0), DB[65](0), OldDB[60](0); if Currentbar > 1 then { Price = (H+L)/2; alpha1 = (1 - Sine (360 / 30)) / Cosine(360 / 30); HP = 0.5*(1 + alpha1)*(Price - Price[1]) + alpha1*HP[1]; SmoothHP = (HP + 2*HP[1] + 3*HP[2] + 3*HP[3] + 2*HP[4] + HP[5]) / 12; } IF CurrentBar < 7 Then SmoothHP = Price - Price[1]; IF CurrentBar == 1 THEN SmoothHP = 0; delta = -0.015*CurrentBar + 0.5; If delta < 0.1 then delta = 0.1; If CurrentBar > 12 Then { For N = 12 to 60 { beta = Cosine(720 / N); gamma = 1 / Cosine(1440*delta / N); alpha = gamma - SquareRoot(gamma*gamma - 1); Q[N] = (0.5*N / 6.28318)*(SmoothHP - SmoothHP[1]); II[N] = SmoothHP; Real[N] = 0.5*(1 - alpha)*(II[N] - OlderI[N]) + beta*(1 + alpha)*OldReal[N] - alpha*OlderReal[N]; Imag[N] = 0.5*(1 - alpha)*(Q[N] - OlderQ[N]) + beta*(1 + alpha)*OldImag[N] - alpha*OlderImag[N]; Ampl[N] = (Real[N]*Real[N] + Imag[N]*Imag[N]); } } For N = 12 to 60 { OlderI[N] = OldI[N]; OldI[N] = II[N]; OlderQ[N] = OldQ[N]; OldQ[N] = Q[N]; OlderReal[N] = OldReal[N]; OldReal[N] = Real[N]; OlderImag[N] = OldImag[N]; OldImag[N] = Imag[N]; OldAmpl[N] = Ampl[N]; OldDB[N] = DB[N]; } MaxAmpl = Ampl[12]; For N = 12 to 60 { If Ampl[N] > MaxAmpl then MaxAmpl = Ampl[N]; } For N = 12 to 60 { //IF MaxAmpl <> 0 AND (Ampl[N] / MaxAmpl) > 0 THEN DB[N] = -60*Log(Ampl[N] / MaxAmpl) / Log(10); IF MaxAmpl <> 0 AND (Ampl[N] / MaxAmpl) > 0 THEN DB[N] = -10*Log(0.01 / (1 - 0.99*Ampl[N] / MaxAmpl)) / Log(10); DB[N] = 0.33*DB[N] + 0.67*OldDB[N]; If DB[N] > 20 then DB[N] = 20; } Num = 0; Denom = 0; For N = 12 to 60 { If DB[N] <= 6 Then { Num = Num + N*(20 - DB[N]); Denom = Denom + (20 - DB[N]); } If Denom <> 0 Then DC = 0.5*Num / Denom; } DomCyc = median(DC, 5); If ShowDC == True Then { Plot1(DomCyc, "DC", RGB(LineR, LineG, LineB),0,2); Plot61(DomCyc, "DC", RGB(LineR, LineG, LineB),0,2); } For N = 12 to 60 { IF DB[N] <= 10 THEN { Color1 = LineR + DB[N]*(FuzzR - LineR) / 10; Color2 = LineG + DB[N]*(FuzzG - LineG) / 10; Color3 = LineB + DB[N]*(FuzzB - LineB) / 10; } IF DB[N] > 10 THEN { Color1 = FuzzR*(2 - DB[N] / 10); Color2 = FuzzG*(2 - DB[N] / 10); Color3 = FuzzB*(2 - DB[N] / 10); } If N == 12 Then Plot60(N/2, "S12", RGB(Color1, Color2, Color3),0,5); If N == 13 Then Plot59(N/2, "S13", RGB(Color1, Color2, Color3),0,5); If N == 14 Then Plot58(N/2, "S14", RGB(Color1, Color2, Color3),0,5);
프로필 이미지
백진강
2015-01-12
248
글번호 82191
시스템
답변완료

수직선표시

input : 기간1(5),기간2(20); var1 = ma(c,기간1); var2 = ma(c,기간2); if crossup(var1,var2) Then value1 = var2; "수직선표시" if var2 > value1 Then value1 = var2; "수직선표시" if CrossDown(var1,var2) Then value2 = var2; "수직선표시" if var2 < value2 Then value2 = var2; "수직선표시"
프로필 이미지
외국인
2015-01-12
212
글번호 82184
지표

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2015-01-12
3
글번호 82181
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2015-01-12
3
글번호 82170
시스템
답변완료

지표식 부탁 드립니다

궁금한 지표식은 5분차트에 120분봉 5 10 20 60 실시간 이평을 구현하고 싶습니다 새해 복 많이 받으시고 만사 형통 하세요 언제나 감사 드립니다
프로필 이미지
starj5
2015-01-12
230
글번호 82164
지표
답변완료

문의드립니다.

안녕하세요. 추운 날씨에 고생이 많으십니다. 문의 드릴 사항은요... 해외선물 크루드 오일의 경우 아침 07시20분에 장이 마감되고 08시에 다시시작됩니다. 여기서 당일을 아침 08:00부터 익일 07:20까지라고 볼때,, 1. 당일 최고가격과 최저가격의 중심값 2. 당일 첫 3분봉의 (고가+저가)/2 3-1. (당일 최고가격+당일최저가격)/2 가격을 양봉으로 터치하면 그 시점부터 중심값을 파란색으로 표시, 음봉으로 터치하면 그시점부터 중심값을 빨간색으로 표시 *현재까지의 당일 중심값이 48.5라고 할때 이 라인은 중심값이 변하더라도 주가가 변한 중심값을 터치하기 전까지는 48.5 가격에 계속 그려져야 함 * 변동된 중심값을 주가가 터치하면 그 순간 48.5라인은 더이상 그려지지 않고 변동된 중심값이 그려져야 함. 3-2. 최초 중심가격 터치되어 중심라인이 그려진 이후 고가 갱신이나 저가 갱신으로 중심가격의 변동이 오고 그 변동된 중심가격을 양봉이나 음봉으로 터치시 3-1에서 생긴 중심선 라인은 표시를 멈추고 변동된 중심선 가격에 라인이 표시되도록 수식 부탁 드립니다. 이전 중심값을 터치할 경우에는 기존 중심값이 계속 나타나면 되고, 새롭게 변동된 중심값을 주가가 터치 할 때마다 새로운 중심값이 표시되도록 부탁드립니다.
프로필 이미지
하루만
2015-01-12
213
글번호 82163
지표
답변완료

문의드립니다

복합차트 분봉차트에, 정규장 일봉 이평선(5.10.20.60)값을 나타내는 수식을 부탁드립니다
프로필 이미지
해피데이m
2015-01-12
205
글번호 82161
지표
답변완료

간단한 수식 질문입니다.

항상 감사드립니다. 제가 원하는 수식이 전일 종가와 당일 시가의 차이가 1포인트 이상 차이가 나면 당일 시가를 기준으로 위아래로 선을 긋는 거구요 만약 전일 종가와 시가가 1포인트 차이가 나지 않으며 전일 종가를 기준으로 위아래로 선을 긋는 건데요.. 프로그래밍 초보라서요 막해봤는데 오류는 나지 않는데 문제는 시가가 사선으로 연결된다는 점입니다.. 그리고 if문이 잘 안됐는지 둘중 하나를 골라서 적용되는게 아니라 두가지 케이스가 차트에 다 표시가 됩니다.. 도움부탁드립니다. 아래는 제가 작성한 수식입니다. if abs(dayopen(0)-dayclose(1))>1 Then Plot1(dayOpen(0)+0, "시가",BLACK); Plot2(dayOpen(0)+1, "+1",RED); Plot3(dayOpen(0)+2, "+2",RED); Plot4(dayOpen(0)+3, "+3",RED); Plot5(dayOpen(0)+4, "+4",RED); Plot6(dayOpen(0)+5, "+5",RED); Plot7(dayOpen(0)+6, "+6",RED); Plot8(dayOpen(0)+7, "+7",RED); Plot9(dayOpen(0)+8, "+8",RED); Plot10(dayOpen(0)+9, "+9",RED); Plot11(dayOpen(0)+10, "+10",RED); Plot12(dayOpen(0)-1, "-1",BLUE); Plot13(dayOpen(0)-2, "-2",BLUE); Plot14(dayOpen(0)-3, "-3",BLUE); Plot15(dayOpen(0)-4, "-4",BLUE); Plot16(dayOpen(0)-5, "-5",BLUE); Plot17(dayOpen(0)-6, "-6",BLUE); Plot18(dayOpen(0)-7, "-7",BLUE); Plot19(dayOpen(0)-8, "-8",BLUE); Plot20(dayOpen(0)-9, "-9",BLUE); Plot21(dayOpen(0)-10, "-10",BLUe); if abs(dayopen(0)-dayclose(1))<=1 Then Plot22(dayclose(1), "시가",BLACK); Plot23(dayclose(1)+1, "+1",RED); Plot24(dayclose(1)+2, "+1",RED); Plot25(dayclose(1)+3, "+1",RED); Plot26(dayclose(1)+4, "+1",RED); Plot27(dayclose(1)+5, "+1",RED); Plot28(dayclose(1)+6, "+1",RED); Plot29(dayclose(1)+7, "+1",RED); Plot30(dayclose(1)+8, "+1",RED); Plot31(dayclose(1)+9, "+1",RED); Plot32(dayclose(1)-1, "-1",blue); Plot33(dayclose(1)-2, "-2",blue); Plot34(dayclose(1)-3, "-3",blue); Plot35(dayclose(1)-4, "-4",blue); Plot36(dayclose(1)-5, "-5",blue); Plot37(dayclose(1)-6, "-6",blue); Plot38(dayclose(1)-7, "-7",blue); Plot39(dayclose(1)-8, "-8",blue); Plot40(dayclose(1)-9, "-9",blue); Plot41(dayclose(1)-10, "-10",blue); 간단한 선긋기 인데요..
프로필 이미지
afflatus
2015-01-12
206
글번호 82159
지표
답변완료

검색식부탁드립니다.

1.금일 장시작부터 현재까지 각15분봉 20볼린저밴드 상단을 양봉(몸통이 2%이상)으로 금일 최초로 돌파한 종목검색식 부탁드립니다. 2.20봉 볼린저밴드 상한선이 n봉전부터 전날까지 지속 하락하다가 금일 상승전환한 종목검색식 부탁드립니다. 3.최근 n거래일(변수)중 상승일수가 하락일수보다 많은 비율이 70%를 넘고 현재 총매도량이 총매수량보다 1.5배이상 많은 좀목 검색식 부탁드립니다. 4.N봉전 60이평선이 20볼린저밴드 하한선 아래로 크로스하고 그상태를 유지하다가 현재 60이평선이 3거래일이상 하락중인 20볼밴 하한선 위로 크로스하는 종목 검색식 부탁드립니다. 5.아래는 당일 청산라인 생성된 종목검색식이라 인덱스를 14(30분봉기준)를 사용하였는데 이것을 전일 마지막봉부터 현재까지로 변경 부탁드립니다. // Trailing Stop Line input: ATR_Factor(3); var : Loss(0),HiLo(0),HRef(0),LRef(0),HiLoHRefMax(0),HiLoHRefMaxLRefMax(0), ATRMod(0),WaitingForEntry(true),Trail(0),LineNum(0), ReturnVal(0) ; var : ATR_Period(5), Position(0), TL5(0), SearchResult(0); HiLo = iff(High - Low < 1.5 * Average(High - Low, ATR_Period), High - Low, 1.5 * Average(High - Low, ATR_Period)) ; HRef = iff(Low <= High[1], High - Close[1],(High - Close[1] ) - 0.5 * (Low - High[1])) ; LRef = iff(High >= Low[1], Close[1] - Low, (Close[1] - Low) - 0.5 * (Low[1] - High)) ; HiLoHRefMax = Maxlist(HiLo, HRef) ; HiLoHRefMaxLRefMax = Maxlist(HiLoHRefMax, LRef) ; ATRMod = ema(HiLoHRefMaxLRefMax, 2 * ATR_Period - 1) ; Loss = ATR_Factor * ATRMod; var2 = MA(Money,3); if index <= 5 then { Position = 1; Trail = Close - Loss ; } else { /*If DataCompress == 4 and sdate > 19980811 and sdate < 20010115 then { MessageLog("$RS++ Position1=%.1f, %.1f, %.1f", Position, Position[1], Trail); }*/ if Close > Trail[1] and Close[1] > Trail[2] then Trail = MaxList(Trail[1], Close - Loss); else if Close < Trail[1] and Close[1] < Trail[2] then Trail = MinList(Trail[1], Close + Loss); else if Close > Trail[1] then Trail = Close - Loss; else Trail = Close + Loss; if Position == -1 and Close > Trail and Trail > 0 then { Position = 1; If index >= 14 Then SearchResult = 1; } else if Position == 1 and Close < Trail then { Position = -1; If index >= 14 Then SearchResult = 0; } else if Trail > 0 then { } } Find(SearchResult); 감사합니다~
프로필 이미지
부양가족
2015-01-12
285
글번호 82156
종목검색