커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

안녕하세요 하기 수식과 관련하여 문의 드립니다. 검토 부탁드립니다. nput : Period(20),dv(2); var : BBmd(0),BBdn(0),bbup(0),BandB(0),HH(0),LL(0); BBmd = ma(C,Period); BBdn = BollBandDown(Period,Dv); BBUp = BollBandUp(Period,Dv); BandB = ((C-BBDn)/(BBUp-BBdn))*100; if crossup(BandB,90) Then HH = BandB; if BandB > 90 and BandB > HH Then HH = BandB; if CrossDown(BandB,10) Then LL = BandB; if BandB < 10 and BandB < LL Then LL = BandB; if HH > 100 and CrossDown(BandB,90) and c >= bbmd-PriceScale*10 and C >= O Then sell("s4"); if LL < 0 and crossup(BandB,10) and C <= bbmd+PriceScale*10 and C <= O Then buy("b4"); 1. 상기 수식이 잘 적용되지 않고 있습니다. 발생하는 부분인데도 발생하지 않고, 넘어갑니다. 무엇이 잘못된 것인지 잘 모르겠습니다. 제가 원하는 것은 Band%B로 진입을 결정하는 것입니다. 매도 : Band%B가 90 이하로 내려올 때 매도 진입 - 조건은 100을 넘고 와서 90이하로 내려와야 합니다. 95나 98에서 90이하로 내려오면 진입하지 않습니다. 매수 : Band%B가 10 이상으로 올라올 때 매수 진입 - 조건은 0을 넘고와서 10 이상으로 올라와야 합니다. 2 나 5 에서 10 이상으로 올라오면 진입하지 않습니다. 2. 추가 조건사항으로 두가지 시간 프레임을 사용해서 적용하고 싶습니다.(data2 사용) data 1 과 data 2가 동시에 band%b의 90이하로 내려올 때 매도, 10 이상으로 올라올 때 매수 하는 수식 부탁드립니다. 조건은 1번과 같습니다. 참고로 data2 가 짧은 주기 입니다. data 1 (60분봉) 과 data 2 (30분봉) 가 동시에 신호를 발생할 때, data 2 기준으로 진입 부탁드립니다. 즉 data 1 은 경계선에 있는데, data 2는 탈출을 했으면 진입되게 부탁드립니다. 3. 추가 조건사항으로 data 1의 ADX가 1 이상이면 진입대기 하다가, 1보다 작아지면 진입합니다. 감사합니다.
프로필 이미지
softtoug
2018-02-11
223
글번호 116502
시스템
답변완료

수정 부탁드립니다.

// Asia - 17 // Europe 17 - 2330 // USA 2330 - Params : eeTIME1(170000), eeTIME2(233000); Vars : tCNT1(0), tCNT2(0), tCNT3(0); Vars : TCOND1(False), TCOND2(False), TCOND3(False); Vars : st(0), et(0); V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1); If V1 = 0 Then Value2 = 8 Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1); If V2 = 0 Then Value4 = 1 Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////////////// Vars : dIdx1(0), dIdx2(0), dIdx3(0); Vars : HH1(0), HH2(0), HH3(0); Vars : LL1(0), LL2(0), LL3(0); If condition1 Then Begin tCNT1 = 0; tCNT2 = 0; tCNT3 = 0; dIdx1 = 0; dIdx2 = 0; dIdx3 = 0; End Else If et < TIME And TIME < eeTIME1 Then dIdx1 = dIdx1 + 1 Else If eeTIME1 < TIME And TIME < eeTIME2 Then dIDx2 = dIdx2 + 1 Else If TIME < et Then dIdx3 = dIdx3 + 1; v99 = TotalTrades; If tCOND1 And v99 > v99[1] Then tCnt1 = tCnt1 + 1 Else If tCOND2 And v99 > v99[1] Then tCnt2 = tCnt2 + 1 Else If tCOND3 And v99 > v99[1] Then tCnt3 = tCnt3 + 1; If dIdx1 <> 0 And dIdx2 = 0 And dIdx3 = 0 Then Begin HH1 = Highest(H, dIdx1); LL1 = Lowest(L, dIdx1); End Else If dIdx2 <> 0 And dIdx3 = 0 Then Begin HH2 = Highest(H, dIdx2); LL2 = Lowest(L, dIdx2); End Else If dIdx3 <> 0 Then Begin HH3 = Highest(H, dIdx3); LL3 = Lowest(L, dIdx3); End; If st < eeTIME1 Then Begin If st < TIME And TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End Else Begin If st < TIME Or TIME < eeTIME1 Then TCOND1 = True Else TCOND1 = False; End; If eeTIME1 < eeTIME2 Then Begin If eeTIME1 < TIME And TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End Else Begin If eeTIME1 < TIME Or TIME < eeTIME2 Then TCOND2 = True Else TCOND2 = False; End; If eeTIME2 < et Then Begin If eeTIME2 < TIME And TIME < et Then TCOND3 = True Else TCOND3 = False; End Else Begin If eeTIME2 < TIME Or TIME < et Then TCOND3 = True Else TCOND3 = False; End; Vars : SP(0), TickSize(0); SP = SignalPosition; TickSize = OneTick * PriceScale; If SP = 0 Then Begin If TCOND1 And tCNT1 < 1 Then Begin If HH3 > H Then Buy("B_Asia", Atstop, HH3 + TickSize); If LL3 < L Then Sell("S_Asia", Atstop, LL3 - TickSize); End Else If TCOND2 And tCNT2 < 1 Then Begin If HH1 > H Then Buy("B_Eu", Atstop, HH1 + TickSize); If LL1 < L Then Sell("S_Eu", Atstop, LL1 - TickSize); End Else If TCOND3 And tCNT3 < 1 Then Begin If HH2 > H Then Buy("B_Usa", Atstop, HH2 + TickSize); If LL2 < L Then Sell("S_Usa", Atstop, LL2 - TickSize); End; End;
프로필 이미지
우와우와
2018-02-11
319
글번호 116501
시스템
답변완료

문의드립니다.

SwingLow 이용하여 전저점을 차례대로 구할 때 SwingLow(1,L,3,3,10) SwingLow(2,L,3,3,10) SwingLow(3,L,3,3,10) ... 이런식으로.. 첫번째로 20이평 보다 낮은 값을 갖는 swinglow값 추출하는 수식 부탁드립니다. 항상 감사드립니다.
프로필 이미지
회원
2018-02-09
223
글번호 116500
시스템
답변완료

손절 청산 수식좀 부탁드립니다.

매도 진입가 대비 20틱 이상 손실이고 스톡이 상방이면 매도손절청산하라는 수식좀 부탁합니다.
프로필 이미지
천왕봉
2018-02-09
221
글번호 116499
시스템
답변완료

문의드립니다.

항상 감사합니다. 1. 기타 갭크기가 n%(전일종가대비)이상이면 진입하지 않음. 필터 코딩 부탁드립니다. 2. 시스템 외부변수 금액 1시가 되면 최초진입 금액*0.2 3개봉 지날때마다 금액*0.2씩 추가진입 최초 진입 포함 총 진입이 5번이 되면 매수 종료 다음날 시가에 전량 청산
프로필 이미지
잡다백수
2018-02-09
238
글번호 116497
시스템

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

프로필 이미지
회원
2018-02-09
9
글번호 116496
지표
답변완료

차트 적용

1분봉에 제한하지 않고 다양한 봉차트에 적용하는 수식으로 변경 부탁드립니다. *********************************** 안녕하세요 예스스탁입니다. 장시작 후 9시 27분까지 양봉갯수와 음봉갯수를 카운트하고 더많은 쪽으로 진입하는 식입니다. 선물1분차트에 적용하셔야 합니다. input: 진입(092700); if date != date[1] then { var1 = 0; var2 = 0; } #장시작후 9시 27분 까지 if stime <= 진입 then { #양봉갯수 if C > O then var1 = var1 + 1; #음봉갯수 else if C < O then var2 = var2 + 1; } #9시27분봉에 양봉갯수가 음봉갯수보다 많으면 매수 if stime == 진입 and var1 > var2 then buy(); #9시27분봉에 음봉갯수가 영봉갯수보다 많으면 매도 if stime == 진입 and var1 < var2 then sell(); 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 해석 > 아래 수식 주석부탁드립니다
프로필 이미지
목마와숙녀
2018-02-09
232
글번호 116495
시스템
답변완료

다른 시간대의 지표를 표시할수 있나요?

60분봉의 볼린저밴드를 1분봉에서 표시할수있나요?
프로필 이미지
dbs1428
2018-02-09
242
글번호 116494
지표
답변완료

수식 문의 드립이다.

안녕하세요. 당일 시스템 수식 진입은 매수, 매도 구분없이 1회로 진입횟수 제한. 1. 연결선물 분봉 틱봉 당일청산 시스템에서 당일갭을 기준으로 -> 당일갭이 +2.5P ~ +3.5P 까지일 경우 매수 진입금지, 매도 진입만 허용. -> 당일갭이 -2.5P ~ -3.5P 까지일 경우 매도 진입금지, 매수 진입만 허용. 2. 연결선물 분봉 틱봉 당일청산 시스템에서 당일갭을 기준으로 -> 당일갭이 +2.5P 이상일 경우 매수 진입금지, 매도 진입만 허용. -> 당일갭이 -2.5P 이하일 경우 매도 진입금지, 매수 진입만 허용. 3. 연결선물 분봉 틱봉 당일청산 시스템에서 -> 전일 장중(또는 종가기준) 볼린저밴드의 상단부터 하단까지의 변폭이 3.0PT 이하인 경우에만 당일진입을 허용하고, 3.0PT 이상인 경우에는 당일진입 금지하는 진입제한 수식 수식요청 드립이다. #진입수식(예제) Input : Period(12), sigPeriod(9); value1 = TRIX(Period); value2 = ema(value1, sigPeriod); If CrossUP(value1, value2) Then{ Buy(); } If CrossDown(value1, value2) Then{ Sell(); } SetStopEndofday(150000); 감사합니다.
프로필 이미지
dandy
2018-02-09
241
글번호 116493
시스템