커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다.

3가지 부탁드립니다. 1. obv지표를 그림과 같이 위아래로 이전 고점끼리, 이전 저점끼리 자동으로 라인이 그려지도록 부탁드립니다. ----------------------------------------------------- 2. 아래 수식처럼 ovb도 가능하다면 위,아래 지표를 부탁드립니다. input : Period(10); var1 = wMA(2*wMA(C, Period/2) - wMA(C, Period), Sqrt(Period)); if var1 > var1[1] Then value1 = var1; plot1(value1,"1",RED); ------------------------------------- 3. 아래 키움수식을 사용하고 싶습니다. 부탁드립니다. 감사합니다.^^ OBV지표 상승하락 수식1 수식이름: OBV상승 A=OBV(); B=MA(OBV(), Signal, 이평종류); if(A>B,A,B) ----------------------------- 수식2 수식이름: OBV하락 if(A<B,A,B) ---------------------------- 수식3 수식이름: Signal %Signal% B ================================== 지표조건 설정 Signal 60 이평종류 단순
프로필 이미지
매일상승
2015-12-14
331
글번호 93352
지표
답변완료

시스템 신호가 재접속시 다르게 나옵니다~

안녕하세요 오랜만에 질문 올립니다. 현재 YesGlobal 로 크루드 오일 시스템을 돌리고 있는데, 재접속시 매우 빈번하게 신호가 달라지는 일이 발생하여 이 부분이 손실로 연결되고 있어 문제해결 중입니다. 첨부된 파일을 보시면, BY_1_V1_A50 전략에서 재접속 안하고 실시간전략실행차트로 돌렸을때는 크루드오일에 매도신호가 없는데, 재접속을 하면 갑자기 9시 30분에 매도신호가 있었던 것으로 나옵니다. 처음 있었던 일은 아니고, 거의 1~2일에 한번 꼴로 발생하는 일입니다. 문제를 모니터링하기 위해서, 한 pc 는 서버에서 끊어진 이후에 재접속을 안하고 한 pc 는 재접속을 해서 비교해보았습니다. 첨부된 파일 중에 봉차이의심화면.jpg 를 보시면, 재접속한 화면과 재접속하지 않고 놔둔 화면의 봉이 다른데, 09:05 분의 봉을 보시면, 재접속하지 않은 실시간차트(저희가 트레이딩한 차트)는 봉이 큰 양봉 한개로, 재접속한 차트는 작은 양봉과 그 다음의 큰 양봉 두개로 분리되어 있습니다. 재접속시 신호가 달라지는 문제를 분봉이 달라지는 문제에서 시작된것이 아닌가 일단 의심해볼 수 있을 것 같습니다. 본 전략의 신호가 다르기 위해서는 di24, hd24, ld24 값이 달라야 합니다. 실시간과 재접시 이 값이 차이가 난것일텐데, di24 함수는 아래와 같습니다. var : BarCountInDay(0); if BarIndex <= 0 or Date>Date[1] then { BarCountInDay = 0; } else { if time >=90000 and time[1] <90000 then { BarCountInDay = 0; } else if time>=0 and time<90000 Then { BarCountInDay = 0; } else { BarCountInDay = BarCountInDay + 1; } } DI24 = BarCountInDay; hd24값도 영향을 미치는데 함수는 아래와 같습니다. #Description : HD24 Inputs: DaysAgo(Numeric); Variables: Check(False); Variables: Day1Done(0); Array: HighArray[50](-1); If DataCompress <= 2 Then Begin If Date > Date[1] Then Begin Check = True; End; If Check And Time >= 91500 And Time <= 151500 Then Begin Check = False; Day1Done = Day1Done + 1; For Value1 = 50 DownTo 1 Begin HighArray[Value1] = HighArray[Value1-1]; End; HighArray[0] = High; End; If Day1Done>0 And High > HighArray[0] Then HighArray[0] = High; If DaysAgo <= 50 && HighArray[DaysAgo] != -1 Then HD24 = HighArray[DaysAgo]; End; ld24 함수는 아래와 같습니다. #Description : HD24 Inputs: DaysAgo(Numeric); Variables: Check(False); Variables: Day1Done(0); Array: LowArray[50](-1); If DataCompress <= 2 Then Begin If Date > Date[1] Then Begin Check = True; End; If Check And Time >= 91500 and Time <=151500 Then Begin Check = False; Day1Done = Day1Done + 1; For Value1 = 50 DownTo 1 Begin LowArray[Value1] = LowArray[Value1-1]; End; LowArray[0] = Low; End; If Day1Done>0 And Low < LowArray[0] Then LowArray[0] = Low; If DaysAgo <= 50 && LowArray[DaysAgo] != -1 Then LD24 = LowArray[DaysAgo]; End; 신호가 달라진다면, 봉이 분리되거나 하는 이유로 di24, hd24, ld24 값이 달라지는 이유인 것 같은데, 살펴보시고 답변 부탁드리겠습니다. 야간선물 거래시 비슷한 문제로 문의드렸을때 barindex를 index 로 고쳐보라고 하셔서 해결된 적이 있는데, 그 부분도 한번 살펴봐주십시오. 감사합니다~
프로필 이미지
괴델
2015-12-12
744
글번호 93350
시스템
답변완료

함수 문의드립니다.

항상 친절한 답변에 감사드립니다. 통합적으로 답변 주셔도 좋습니다. 1. CrossUp과 CrossDown 함수의 리턴값은 무슨형인가요? true나 false를 반환하는 논리형인가요? 2. CrossUp 함수의 수식을 알 수 있을까요?
프로필 이미지
로봇짱
2015-12-12
153
글번호 93349
사용자 함수
답변완료

수식문위드립니다

Input : short(12), long(24), sig(10); Var : MACDv(0), MACDsig(0),macdosc(0) ; MACDv = MACD(short, long); if MACDV > 0 Then PlotPaintBar(C,O,"강조",RED); Else PlotPaintBar(C,O,"강조",blue); 색갈봉 입니다 빨강 나오면 매수신호,파랑나오면 매도신호 나오게 해주세요 감사합니다
프로필 이미지
이공주7
2015-12-11
169
글번호 93348
시스템
답변완료

45440답변 관련

질문이좀문제잇엇던같습니다 condition1 = EntryDate(1) <> Date and marketposition()==0 ; Condition2 = EntryDate(2) <> Date and EntryDate(1) == Date and marketposition()==0; 한개시스템식안에 진입식1 If condition1 and 조건 then Begin buy("B1"); 진입식2 If condition2 and 조건 then Begin buy("s1"); 잇을때 주간장시스템0900-1500 에적용하는경우 항상 진입식1이먼저발생하고 청산되고 담에 진입식2가 발생하는겁니다 진입식2는 진입식1과 반대포지션 진입이구요 그런데 변경해주신식을 적용하니 진입식1이나오기전에 진입식2 신호가 먼저 나오네요 .. 여러번 질문하는데 잘좀 해결해주세요 감사합니다 cu종목에 사용할려고 합니다
프로필 이미지
CSI300
2015-12-11
140
글번호 93347
시스템
답변완료

수식부탁드립니다.

안녕하세요. 수식 부탁드립니다. 다음 수식에서 최근 20일 고가와 저가 사이 가격대의 하단 20%를 돌파시 exitlong하고 short position 진입 하고자 한다면 어떻게 하면될까요? 그리고 short position 인 상황에서 최근 20일 고가-저가 사이 가격대의 상단 80% 돌파시 exitshort 하고 싶습니다. input : P(20),ATRP(10); var1 = highest(H,P); var2 = Lowest(L,P); value1 = var1-(var1-var2)*0.2; value2 = var2+(var1-var2)*0.2; if crossup(c,value1) Then buy(); if MarketPosition == 1 Then{ exitlong("bx1",AtStop,highest(H,BarsSinceEntry)-atr(ATRP)*3); if CrossDown(c,value2) Then ExitLong(); } SetStopLoss(2);
프로필 이미지
라면의비밀
2015-12-11
153
글번호 93346
시스템
답변완료

문의드립니다.

문의드립니다. 아래 검색식은 전에 만드어주신 검색식입니다. 약간 변경하였는데 제대로 검색이 안되네요.검토부탁드립니다. 분봉상 전일 main이 검색된종목중 검색된 주가가 전일 고점일 경우 당일 양봉이면 검색되도록 수정 부탁드립니다. 좋은 주말 보내십시요~ var : price(0); var1 = ma(c,24); var2 = ma(c,48); var4 = BollBandup(20,2); var5 = BollBandup(80,2); var6 = BollBandup(240,2); var7 = ma(c,3); var8 = ma(c,6); var9 = ma(c,12); if date != date[1] Then{ Var10 = 0; var11 = var10[1]; } Condition3 = ((var5[1] < var6[1]*1.025 or countif(crossup(var5[1],var6[1]),50) >= 1) and (h >= var5*0.99 or h[1] >= var5[1]*0.99)) and ((crossup(c,var6*0.975) or (c > var6*0.975)) and h > var6*0.985); condition5 = (var7 > var8 and var8 > var9 and var9 > var1 and var1 > var2); Condition7 = var5 > var6*1.05; ####main if condition4 == false and Condition3 == true and c > o and var5 >= var5[1] and dayopen < dayclose(1)*1.045 and (c > dayclose(1)*1.015 or c > o[3]*1.015 or c > l*1.015) and Condition5 == true and countif(Condition5[1] == False,12) >= 1 then{ var10 = var10+1; price = c; } ### 현재조건문 if (var10+var11) >= 1 and var11 >= 1 then{ if price >= DayHigh(1) Then{ if c >= dayclose(1) Then find(1); } }
프로필 이미지
부양가족
2015-12-11
165
글번호 93340
종목검색
답변완료

수식문의 드립니다..

var : upi(0),upv(0),dni(0),dnv(0),T(0),HH(0),LL(0); var1 = ma(c,20); #골든크로스 발생하면 #T는 1 #고가저장 #골드구간 봉수는 초기화 0 if T <= 0 and C >= var1 Then{ T = 1; HH = H; upi = 0; } //// 여기서 "골든크로스 발생하면"은 무슨 뜻인지 모르겠네요.. 제 질문은 종가가 20일선 위에있고 첫봉이 고점을 치고 2번째봉도 3번째봉도 전고점을 넘지못하고, 내려가도 5틱이상 내려가지못하면 3번째봉부터 5틱내려오면 매수.. 이때 5틱이 내려와도 종가가 20선위에 있어야한다는 것인데 ... 이것과 수식인 같은 말인가요?
프로필 이미지
고구미
2015-12-11
156
글번호 93339
시스템
답변완료

시스템문의 골든크로스 데드크로스...

매수조건: 우선 4일이평선과 180일이평선 골든크로스 교차발생 확인하고 난뒤 20일이평선과 138일이평선 골든크로스 교차발생 이후 일목균형표의 기준선 117일선을 20일 이평선이 상방으로 교차시 매수신호 발생 이때 20일 이평선은 기울기 각도가 상방 빨강색일때 매수 조건에 부합된다. 이때 제가 쓰는 일목균형표 기준선 수식은 아래를 쓰고있습니다. 일목 (기준선) var:period7(117); Plot7((Highest(High, period7) + Lowest(Low, period7)) / 2, "기준선"); (수평25 수치 설정) 매도조건: 우선 4일이평선과 180일이평선 데드크로스 교차발생 확인하고 난뒤 20일이평선과 138일이평선 데드크로스 교차발생 이후 일목균형표의 기준선 117일선을 20일 이평선이 하방으로 교차시 매도신호 발생 이때 20일 이평선은 기울기 각도가 하방 파랑색일때 매도 조건에 부합된다. 이것이 기본적인 전제 조건이구요. 그리고 이조건에서 아래 시스템 지표수식의 골든 및 데드크로스를 조합 추가하여 아래의 조건까지 모두 포함될때 매수 및 매도신호가 발생하게 해주세요. input : Period1(150),Period2(3),Period3(3),Length1(12),Length2(6),Length3(100); var :smi1(0),smi2(0); smi1 = SMI(Period1,Period2,Period3); smi2 = SMI(Length1,Length2,Length3); if (crossup(smi1,smi2) and smi1 > 0) Or (crossup(smi1,0) and smi1 > smi2) Then buy(); if (CrossDown(smi1,smi2) and smi1 < 0) Or (CrossDown(smi1,0) and smi1 < smi2) Then sell(); ************************************************* 위의 시스템이 조건 전부 부합될때의 시스템 매매신호와. 기본전제조건인 이평선과 일목의 기준선 크로스교차 시스템 매매신호 따로 나눠서도 수식올려주시면 감사하겠습니다.
프로필 이미지
매매초보
2015-12-11
171
글번호 93338
시스템