커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

5포인트 간격2

별첨1. 국내 선물 10틱 차트입니다. 1월 20일 305.00 체결이 발생했는데 buy 진입이 없습니다. 별첨2. 국내 미니선물 1분 차트입니다. 1월 21일 305.00 체결이 발생했는데 buy 진입이 없습니다.(10틱 차트에는 진입함) 수정부분이 필요한 것인지 수식이 맞다면 차트주기의 변화나 봉완성 또는 체결방식에 따른 내용인지 설명해주세요. ********************************************************************************* 안녕하세요 예스스탁입니다. 1 var1 = Floor(NextBarOpen/5); var2 = var1*5; var3 = (var1+1)*5; if NextBarOpen <= var3 Then buy("b1",AtStop,var3); Else buy("b2",AtStop,var2); 2 var1 = Floor(NextBarOpen/5); var2 = var1*5; var3 = (var1+1)*5; if NextBarOpen >= var3 Then sell("s1",AtStop,var2); Else sell("s2",AtLimit,var3); 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 5포인트 간격 > 290.00 285.00 280.00 처럼 5인트 간격에서 체결이 발생할 경우 진입하는 수식 요청드립니다. 1)buy 전용 수식 input : 간격(5.00) ex1) 시가 279.95 상승하여 280.00 체결되면 buy ex2) 시가 280.05 하락하여 280.00 체결되면 buy ex3) 시가 280.00 이면 buy 2)sell 전용 수식 input : 간격(5.00) ex1) 시가 280.05 하락하여 280.00 체결되면 sell ex2) 시가 279.95 상승하여 280.00 체결되면 sell ex3) 시가 280.00 이면 sell
프로필 이미지
좌오비우오비
2020-01-22
338
글번호 135342
시스템
답변완료

부탁 드립니다.

도움에 감사 드립니다. 수식1)은 타주기(분)용은 정상 실행되나 같은 내용의 수식2)는 타주기(틱)용은 실행이 되지 않아 수정 부탁 드립니다. 수식1)타주기(분)용 input : ntime1(11),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0); Array : C1[50](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; } mav1 = sum1/P; if c > mav1 Then plot1(1); Else plot1(0); } } 2)타주기(틱)용 input : n(2),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0),idx(0); Array : C1[50](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; idx = 0; } Else idx = idx+1; if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = idx%n; if Bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; } mav1 = sum1/P; if c > mav1 Then plot1(1); Else plot1(0); } }
프로필 이미지
yes
2020-01-22
276
글번호 135341
지표

고나리자 님에 의해서 삭제되었습니다.

프로필 이미지
고나리자
2020-01-22
1
글번호 135340
시스템
답변완료

행복; 시스템식 작성 바랍니다

한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다 시스템식 관련입니다 어제 답변 감사합니다 기존 조건에 한가지 조건을 추가하였습니다 < 조건 > - 주기; 틱봉 ## 추가 조건 ; 매수 당일, 매수 시점에 거래량 < 10,000,000 주 이고 거래대금 < 1,000억원 일 때 ============================================================================ - 1. 전일종가가 12,345원보다 큰데, 시초가가 12,345원보다 낮거나 같게 시작을 하면 시초가와 같은 가격으로 매수하고 - 2. 전일종가가 12,345원보다 큰데, 시초가가 12,345원보다 높게 시작을 하면 12,345원의 바로 위 호가인 12,350원에 매수한다 - 3. 전일종가가 12,345원보다 작은데, 시초가가 전일종가보나 낮거나 같게 시작을 하면 시초가와 같은 가격으로 매수하고 - 4. 전일종가가 12,345원보다 작은데, 시초가가 전일종가보다 높게 시작을 하면 고가가 (전일종가 * 1.1) 보다 낮을 때만 전일종가에 매수한다 어제 답변에 거래량과 거래대금을 추가하여 주십시요 ================================================= 수고하십시요^^
프로필 이미지
행복한가방
2020-01-22
314
글번호 135339
시스템
답변완료

시스템 수식 부탁드려요~

input : P10(10),f0(0),P08(8); var : TH(0),TL(0),TR(0),CEN(0),AVGRAGE(0); var : upv(0),dnv(0); TH=IfF(C[1]>H,C[1],H); TL=IfF(C[1]<L,C[1],L); TR=TH-TL; CEN=MA(C, P10)+ ATR(P10) * F0; AVGRAGE=MA(TR,P10); UPv=CEN+(AVGRAGE*P08); DNv=CEN-(AVGRAGE*P08); plot1(upv); plot2(cen); plot3(dnv); 캔들이 UPv , DNv 사이에 있을 때 적용되며, upv 터치시 매도, dnv 터치 시 매수 포지션이 없을 경우에만 진입 진입 후 10틱 익절, 10틱 손절 하루 거래는 10회로 제한 당일 수익 틱수 30, 당일 손실틱수 50 수식 부탁드립니다~
프로필 이미지
사즉생
2020-01-22
301
글번호 135338
시스템
답변완료

종목검색식 부탁드립니다.

Band Width.값이 120일 최저인 종목을 찾고 싶습니다. 부탁드립니다.
프로필 이미지
운짱이
2020-01-22
285
글번호 135337
종목검색
답변완료

새해 복 많이 받으십시오. 질문 드립니다.

예전에 주셨던 MACD를 차트 바탕에 까는 수식입니다. input&#160;:&#160;short(12),long(26),sig(9); var&#160;:&#160;MACDV(0),MACDS(0); MACDV&#160;=&#160;(ema(C,short)ema(C,long))/ema(C,long)*100; MACDS&#160;=&#160;ema(MACDv,sig); if&#160;MACDV&#160;>&#160;MACDS&#160;Then { &#160;&#160;&#160;&#160;&#160;&#160;plot1(99999999,"라인1"); &#160;&#160;&#160;&#160;&#160;&#160;plot2(0,"라인2"); } Else { &#160;&#160;&#160;&#160;&#160;&#160;plot1(0,"라인1"); &#160;&#160;&#160;&#160;&#160;&#160;plot2(99999999,"라인2"); } 첨부한 그림들의 빨간 동그라미 부분처럼 macd 변환이 딱 한틱봉에서만 발생한 경우 음성 신호를 주는 수식 가능할까요? 최종 완성이후 음성신호를 주려면 결국 다음봉까지 완료가 되어야 할텐데 그것도 좋고, 다음봉이 완성되기 전에 실시간으로 음성신호가 나와도 좋습니다. 새해 복 많이 받으십시오. 감사합니다.
프로필 이미지
견유학자
2020-01-21
316
글번호 135336
지표
답변완료

식 부탁합니다

수고 많으십니다. 아래 지표식에 검색 표시를 할 수 있도록 식 부탁합니다. 검색 표시할 내용은 아래 식중에 소리로 알려주는 If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{ PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");}을 충족하는 검색이 될 수 있도록 부탁합니다. 가능하면 과거에 발생한 것은 검색 표시되지 않도록 하고 당일만 검색 표시되도록 해주길 바랍니다. ------- 아 래 -------- If O>C[1] && C<O[1] Then var1 = O; If O<=C[1] && O>O[1] && C<O[1] Then var2 = O; If O>O[1] && C<O[1] Then var3 = O; If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{ PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");} plot1(var1, "A", RED); plot2(var2, "B", GREEN); plot3(var3, "C", YELLOW); 감사합니다.
프로필 이미지
등정
2020-01-22
285
글번호 135335
검색
답변완료

틱봉을 분봉으로 만들어서 청산하기

# 해외선물_ 틱봉 100틱 설정 # 매수 진입 후, 30분봉이 두번 연속 양봉이 나오면 이익청산 # 매도 진입 후, 30분봉이 두번 연속 음봉이 나오면 이익청산 위의 코딩 부탁드립니다. 아래처럼 여기저기 따와서 코딩했는데 안되네요.. 도움되실까 하여 아래 제가 여기저기 따온 코드를 수록하였습니다. # 진입 : 골든크로스 매수/ 데드크로스로 매도 ------------------------------------------------------------- Input : shortPeriod(5), longPeriod(20); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then { Buy("매수"); } # 매도/매수청산 If CrossDown(value1, value2) Then { Sell("매도"); } input : convert(30); var : S1(0), D1(0), TM(0), TF1(0), rng1(0), rng2(0), OOO1(0), OOO2(0), CCC1(0), CCC2(0), cnt(0); Array : OO[10](0), CC[10](0); if bdate != bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; # TM = TimeToMinutes(stime) - S1 Else TM = TimeToMinutes(stime)+1440-S1; # 아니면 TM = TimeToMinutes(stime) + 1440 - S1 TF1 = TM % convert; # TF1 = TM 나누기 convert(30)의 '나머지' if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then # TF[1]이 보다 유일하게 커질때가 30분 정각이다.(틱봉에선 반영이 잘 안되지만, 그래도 근사값을 구할수는 있다) { OO[0] = O; CC[0] = C; for cnt = 1 to 99 { OO[cnt] = OO[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } } if OO[1] != OO[2] Then { rng1 = CC[1]-OO[1]; rng2 = CC[2]-OO[2]; OOO1 = OO[1]; OOO2 = OO[2]; CCC1 = CC[1]; CCC2 = CC[2]; } // 청산<익절> --------------------------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if OOO1 > CCC1 and OOO2 > CCC2 Then # 첫번째 봉 음봉 and 두번째 봉 음봉 (2개 연속 봉 같은방향) ExitLong("2차 매수익절_1안", AtLimit, 0, "매수"); else if CurrentContracts == 1 Then ExitLong("2차 매수본절익절_1안", atstop, EntryPrice, "매수", 1, 1); } else if MarketPosition == -1 Then { if OOO1 < CCC1 and OOO2 < CCC2 Then # 첫번째 봉 양봉 and 두번째 봉 양봉 (2개 연속 봉 같은방향) ExitShort("2차 매도익절_1안", AtLimit, 0, "매도"); else if CurrentContracts == 1 Then ExitShort("2차 매도본절익절_1안", atstop, EntryPrice, "매도", 1, 1); } // 손절 SetStopLoss(10, PointStop);
프로필 이미지
퀀트드래곤
2020-01-21
312
글번호 135334
지표